[Fix] QuickLook and Preview issues opening jpg files in Mojave

arsradu

Super Moderator
Staff member
Joined
Sep 17, 2018
Motherboard
MSi Z97S SLI Krait Edition
CPU
Intel Core i5-4750
Graphics
MSI Nvidia GTX 650 OC 2GB DDR5
OS X/macOS
10.15 (Beta)
Bootloader
Clover (UEFI)
Mobile Phone
Android, iOS
Hi guys,



So, this little tutorial is meant to help people fix a new issue with Mojave: opening jpg files (looks like it happens with larger files, not so much with smaller ones) using Quick Look (on spacebar key pressed) or Preview app using the dedicated GPUs.

The issue is that, when trying to open jpg files (for some reason, it doesn't occur with pngs), the pop-up window would remain in an endless loop. And from that point forward, any other app trying to open the same file, will either become unresponsive (in the case of the Preview app) or just stay in endless loop (in case of Quick Look)


As a workaround, in case the tutorial below doesn't work for you, you can use Grab (built-in app in MacOS) to open said files.


This issues DOES NOT occur using the iGPU. So...if you're comfortable using the iGPU, just switch to that and you should be good to go. You don't need this tutorial.


This tutorial is based on @Cyberdevs' research and testing on this topic (especially useful if you're using an RX series AMD video card), and my own very limited time testing this on my rig. I just thought it would be useful to create a new thread for it so that people can discuss this particular issue here.




With that being said, I'll just move on to the actual tutorial.


New (probably better) method.


Switch your SMBIOS in Clover config in regards to the dedicatedGPUyou're using, instead of the CPU. Take a look here and choose the corresponding SMBIOS closest to your hardware.

Yeah, that's it.

In case you lose CPU PM with this method, there are multiple ways to fix that, and they do not make the object of this thread.
It worked perfectly fine for me though and I didn't need to change anything else.

NoVPAJpeg Lilu plugin
Now you can also use a new Lilu plugin, called NoVPAJpeg to accomplish (hopefully) the same result. You can give it a try here.
Don't forget to also download Lilu.kext (in case you don't already have it), since this plugin relies on it.

You use it as a regular kext, alongside Lilu. I prefer (and recommend) using it within the EFI folder, in Clover/kexts/Other. But if you want to use it in S/L/E, that should work just fine.


In case you wanna try alternative medicine
...



The main thing we need to do is actually very simple: we need to enable the iGPU (integrated GPU)by default, in BIOS, while actually being connected to the dedicatedGPU.


For AMD GPUs (curtesy of @Cyberdevs ).


The discrete GPU should be set as primary in BIOS and your displays should be connected to your discreet GPU

The iGD/iGPU/iGFX must be enabled in BIOS/UEFI as the secondary GPU.


  1. I removed the DSDT
  2. Reconfigured the config.plist to and removed some flags which weren't needed because of the DSDT
  3. added the InjectATI + Ornioco Framebuffer (I removed the Orinoco framebuffer because of some weird glitches but it might be useful for other AMD GPUs if you inject the correct framebuffer according to your GPU. No need to inject anything for nVidia GPUs unless your GPU needs it)
  4. Added the InjectIntel + ig-platform-id for my intel HD530 (for intel HD 530 I use the 0x19120001 ig-platform-id)
  5. Removed com.apple.finder.plist
  6. Removed com.apple.QuickLookDaemon.plist
  7. rebuild the kextcache and reset the nvram


Steps 5 to 7 might not be necessary I just did them anyway, if anyone succeeded to get quicklook working without those steps let me know so I can exclude those steps.

Also confirmed to work with AMD R9 270Xon aSandyBridgerig (without an iGPU) using WhateverGreen + Lilu kexts, which also helped to solve the transparency issue along with the Quick Look problem, it also resolved the buggy Screen Capture (Command+Shift+5) issue as well.



Also, do:
  1. nvram cleanup
  2. kextcache & prelinked kernel rebuild
  3. reboot


For NVIDIA GPUs

This is what I needed for my NVIDIA rig and the MSI motherboard in the signature. Your milage may vary, depending on your hardware. But, the idea should be the same regardless.


For MSi motherboads(check out my motherboard details in the signature)

  1. Set your BIOSto use PEG (dedicated GPU) so you can boot.
    Since you're reading this, chances are that you're already connected to the dedicated GPU and the BIOS is set to PEG. So just go into BIOS and see if you're using the iGPU or the dedicated (PEG) graphics device by default.
    If you're already using this, skip to Step 3 (the part AFTER Reboot).
  2. Reboot (I think you don't necessarily need to boot into the OS...but you do need to reboot at least until Clover UI)
  3. Rebootback into BIOS and set it from PEG to IGD (integrated graphics) WITHOUT removing the cable.
  4. Save
  5. Rebootagain.


The result should be that the OS is tricked into thinking you're booting with the IGPU when in fact you're using the dedicated GPU.


For Gigabyte motherboards


Set:
  1. Peripherals -> Initial Display Output -> iGFX
  2. Chipset -> Internal Graphics -> Enabled
    DVMT Pre-Allocation -> default 64M.
    DVMT Total Gfx Mem -> default 256M
  3. Save
  4. Reboot

You should do this with the cable connected to the dedicated GPU.


You will also need to patch the iGPU from Clover config.

1. Graphics -> Inject Intel (UNCHECK Inject Nvidia or ATI if it's checked).​
2. ig-platform-id (in my case for Intel HD 4600 Desktop) it was: 0x0d220003​


And use IntelGraphicsFixup.kext (now included into WhateverGreen.kext) in Clover/kexts/Other. In my particular case, without the kext, I would get freezes in Safari.

This might be a bug with Mojave and it could be fixed by Apple in the future. but in the meantime, feel free to use this if it helps you fix the issue.

For HP motherboards(including laptops), so far no solution, unless the BIOS somehow allows to switch from eGPU to iGPU and vice-versa.


Cheers!
 
Last edited:
  • Like
Reactions: Cyberdevs