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 issue 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 dedicated GPU you'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.
Alternatively, you can also try one of the MacPro SMBIOSes, such as MacPro5,1 or MacPro6,1. It was tested multiple times and it showed good results.
Keep in mind that choosing these will most likely not show you an iGPU in System Report, since those machines generally (probably all of them) use Xeon CPUs with no iGPUs either.
/!\NOTE: There have been reports saying that using this method (switching SMBIOS to a MacPro one) with newer versions of MacOS may cause iTunes to crash.
So...keep that in mind and better try some of the other methods mentioned here.
A simple Lilu plugin
Thanks to vulgo for the plugin and @Matgen84 for sharing and testing it, we now have yet another possible solution to this issue. It's a Lilu plugin (which means that it requires Lilu.kext in order to work) it's called NoVPAJpeg, and it can be downloaded from here.
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.
More info can be found in this post here.
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 dedicated GPU.
For ATI GPUs (curtesy of @Cyberdevs' post here).
The discreet 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.
I removed the DSDT
Reconfigured the config.plist to and removed some flags which weren't needed because of the DSDT
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)
Added the InjectIntel + ig-platform-id for my intel HD530 (for intel HD 530 I use the 0x19120001 ig-platform-id)
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 270X on a SandyBridge rig (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.
kextcache & prelinked kernel rebuild
More info on that here.
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)
Set your BIOS to 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).
Reboot (I think you don't necessarily need to boot into the OS...but you do need to reboot at least until Clover UI)
Reboot back into BIOS and set it from PEG to IGD (integrated graphics) WITHOUT removing the cable.
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
Peripherals -> Initial Display Output -> iGFX
Chipset -> Internal Graphics -> Enabled DVMT Pre-Allocation -> default 64M. DVMT Total Gfx Mem -> default 256M
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.
Another way to activate the iGPU while having the dGPU set as primary is by going into BIOS/SAG/Graphics Configuration/iGPU and setting Multi-Monitor to [Enabled], all the rest remains on [Auto], and set Inject/Intel to [True] in Clover config.*.
Thanks to @gjw for the tip.
*Motherboard dependent. But the multi-monitor option might be the same regardless of manufacturer.
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 dGPU to iGPU and vice-versa.
I've been happily using macOS Sierra 10.12.6 (16G29) successfully for more than a year (all things working), but now I replaced my old Asus GTX 750 Ti card with a new Zotac GTX 1060 6GB, and it get stuck on boot just before going to the login screen (verbose boot screen attached).
I've updated Clover with all its kexts, and reinstalled the Nvidia Web Drivers (using nvidia-update script), but it's still stuck in the same part. I can only enter using nv_disable=1
My current Hackintosh specs:
MSI H110M Gaming (MS-7994) (LGA 1151/Intel H110/DDR4/SATA 3 & USB 3.1)
Intel Core i5-6600 6M Skylake Quad-Core 3.3 GHz LGA 1151 65W
HyperX FURY 16GB (2 x 8GB) DDR4 2133 (PC4-17000) HX421C14FBK2/16
Zotac GTX 1060 6GB
Samsung SSD 850 EVO 250GB
Western Digital Black 1TB (32MB Cache) (WDC WD1001FALS-00J7B1)
I've read that maybe it can be fixed patching the DSDT, but I don't know how to do it.
My RunMe.app generated zip file and verbose boot screen are attached.
Any kind of help is appreciated. Thanks.
Send me Coke-iMac.zip