Recently Browsing 0 members
No registered users viewing this page.
This is bothering me for a long time now: Why does Apple deliberately disables the the RX4xx, RX5xx capabilities to hardware encode HEVC and is using Intel Quicksync instead? Is it to make the iMacPro look better than it is? I stumbled over a thread at tony-mac where people are going a totally different road for Radeon graphics. Instead of hassling around with getting Quicksync to work, they proposed to activate the AMD hardware renderer for Polaris GPU's. I tried it out and it works...somewhat
I used a dummy kext from that tomato thread and edited it, so that it enables the AMDU7V4 IOGVACodec like on Vega cards, switched to iMacPro1,1 SMBIOS from iMac18,3, disabled the IGPU and the results were astonishing:
My 3:34min 4k50p film was rendered by FCP with HEVC in 2:34 minutes. Nearly half the time than with Quicksync! With the iMac18 SMBIOS and the "help" of Intel Quicksync it took FCP 4:41 minutes to get it done!
The problem is: As soon as the "wrong" IOGVACodec is enabled H.264 encoding leads to Mojave crashing at once (be it FCP, QuickTime or Videoproc). Watching H264 material is fine, though.
If anyone has any idea how to handle this, I would be very grateful. I would even accept Mojave using software encoding for H264 if I could keep this amazing speeds on HEVC!
BTW: Without IGPU on iMacPro1,1 SMBIOS no problem with DRM or iTunes, no need for Whatevergreen or Shiki. That is a bonus
if a web driver is NOT installed, what happens??
I used AMD RX560 in Sierra, but it is very unstable. usually gpu crash or window server crash occurred.
so now I attached nvidea Quadro FX1700 to my Sierra. I know FX1700 works well in High Sierra, but I haven't tried it in Mojave yet.
FX1700 works well without any additional kext, even nvidia web driver.
I plan to buy a nividia card. I would like to know if a nvidia card, especially kepler, maxwell, pascal, works without web driver.
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 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.
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.
nvram cleanup kextcache & prelinked kernel rebuild reboot 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. Save Reboot again.
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 Save 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.
Base on ASentientBot's great job.
If you want to use latest version kexts all from 10.13.6, you can patch it by yourself.
Old Method : GeforceTesla.kext from post#2125.
Find 554889e553504889fb83bb38030000007426488b03488bb3e80000004889dfff90c8050000488b03488bb3e80000004889dfff907806000031c04883c4085b5d Replace 6666666666662e0f1f8400000000006666666666662e0f1f8400000000006666666666662e0f1f8400000000006666666666662e0f1f8400000000000f1f4000 or perl patch code.
perl -pi -e 's|\x55\x48\x89\xe5\x53\x50\x48\x89\xfb\x83\xbb\x38\x03\x00\x00\x00\x74\x26\x48\x8b\x03\x48\x8b\xb3\xe8\x00\x00\x00\x48\x89\xdf\xff\x90\xc8\x05\x00\x00\x48\x8b\x03\x48\x8b\xb3\xe8\x00\x00\x00\x48\x89\xdf\xff\x90\x78\x06\x00\x00\x31\xc0\x48\x83\xc4\x08\x5b\x5d|\x66\x66\x66\x66\x66\x66\x2e\x0f\x1f\x84\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x2e\x0f\x1f\x84\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x2e\x0f\x1f\x84\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x2e\x0f\x1f\x84\x00\x00\x00\x00\x00\x0f\x1f\x40\x00|g' GeForceTesla.kext/Contents/MacOS/GeForceTesla New Method : GeforceTesla.kext from post#2529 .
Find 488b07ff90c0000000 Replace 488b07660f1f440000 or perl patch code.
perl -pi -e 's|\x48\x8b\x07\xff\x90\xc0\x00\x00\x00|\x48\x8b\x07\x66\x0f\x1f\x44\x00\x00|g' GeForceTesla.kext/Contents/MacOS/GeForceTesla the patch code is the same as ASentientBot provided 10.13.4 patched GeforceTesla.kext.
You need only one method between Old Method and New Method, each of them works fine here.
10.13.6 kexts works fine as below,
GeForceTesla.kext ..... (patched)
You can try to use NDRVShim.kext instead of replacing IONDRVSupport and IOGraphicsFamily post#1875, get NDRVShim.kext from post#1865, at /Volumes/macOS Mojave Patcher/macOS Mojave Patcher.app/Contents/Resources/macOS Post Install.app/Contents/Resources/legacynvidia/NDRVShim.kext
And need to edit NVDAResmanTesla.kext/Contents/Info.plist to add the following string.
<dict> <key>com.apple.iokit.IOGraphicsFamily</key> <string>1.5</string> <key>com.parrotgeek.NDRVShim</key> <string>1</string> <key>com.apple.iokit.IONDRVSupport</key> <string>1.5</string> <key>com.apple.iokit.IOPCIFamily</key> <string>2.4</string> <key>com.apple.kpi.bsd</key> <string>9.0.0</string> <key>com.apple.kpi.iokit</key> <string>9.0.0</string> <key>com.apple.kpi.libkern</key> <string>9.0.0</string> <key>com.apple.kpi.mach</key> <string>9.0.0</string> </dict> 10.13.6 kexts works fine as below,
GeForceTesla.kext ..... (patched)
NVDAResmanTesla.kext ..... (edit Info.plist)
NDRVShim.kext ..... (added)
If you still have troube, try the following 10.13.6 kexts too.
Refer to /Volumes/macOS Mojave Patcher/macOS Mojave Patcher.app/Contents/Resources/macOS Post Install.app/Contents/Resources/legacyGPUPatch.sh
credits to: ASentientBot, parrotgeek1, dosdude1.
And My nVidia 9300GE always need to fix reboot error with NVDAStartup.kext.310.42.25f01.zip from nawcom since 10.12.
Download all the patche kexts here. All works fine here too.
It's better to use Kext Utility.app to install kexts.
Due to Apple's QA, an update to Mojave will come when Mojave reaches its second 2nd point release (aka .2)
The H370 chipset powers 8th generation Intel Core-i CPUs. Even though the name H370 rings comparable to Z370, the H370 is based on newer silicon. This it also requires some new approaches compared to the Z370. An example would be on-die USB 3.1 and WiFi support.
Since this guide is not a "hold-your-hand-every-step" guide, I assume you know:
Clover installation and configuration How to create an install medium for MacOS Access and configure the BIOS Have heard of ACPI patching (I'm a newb at this myself)
Sleep (via DSDT edits and emulated NVRAM) On-board Audio (via CloverALC script) Native power management (without any kext or patch) All USB ports (and only those present are active) iGPU for both acceleration and display dGPU (I'm running an Nvidia GTX 1080)
NIC --> I'm using WiFi only
What doesn't work
Native NVRAM via AptioMemoryFix.efi DMVT Pre-alloc higher than 64MB (but not necessary)
Changes to the guide:
22.5.18: Added SSDT hot-patching to enable sleep, replacing DSDT static patching as an alternative.
23.5.18: Add iMac18,1 as alternative SMBIOS config for those relying on the iGPU for output
25.6.18: Added update info
28.8.18: Small changes for clarity, changed info for afps loading & updated USB patch for 13.6
04.10.18: Update to Mojave will come once Mojave is more mature
This guide heavy inspired by the work of /u/corpnewt of /r/hackintosh and his (sorta) Vanilla guide
1.1 Create the install media for MacOS
Follow this, if you are using a Mac to start off with. If you are totally new to MacOS, then please check the basic guide Creation of an installer media in windows or linux
1.2 Install Clover on the install media
Using the Clover installer, ensure you are installing to the USB medium you are using for the installer.
Chose the following options, leaving the others on default:
UEFI driver: AptioMemoryFix UEFI driver: ApfsDriverLoader UEFI booting only Install to ESP
You have to get your hands on an apfs.efi. A google search can help, or extracting it from the Installer package. Make sure you procure a version matching the MacOS version you are about to install. Place the apfs.efi in drivers64UEFI.
1.2 Adjust the config.plist for the installer
You can use the config.plist attached as a guideline, but take a look at it before and at least adjust the SMBIOS - otherwise it won't boot.
Attention: The attached plist contains audio patches introduced by a post-install step. If you run into problems, you might remove those. It also contains a manual slide value, which should normally not be needed, but works fine for me. It is also tuned for usage with an Nvidia Pascal dGPU as main GPU.
The config you create now should serve you nicely for install and running the system.
Take care of adding the following basics:
SMBIOS: iMac18,3 - You can generate a serial number via Clover Configurator. The creation of a proper SMBIOS is covered in many guides to good extend Note: If you aim at using the iGPU for output, a user reported that iMac18,1 works better - since iMac18,3 produces sever flicker. Look at the graphics section and adjust the injection for Intel to your situation
Change 0x59120003 to 0x59120000 if you don't use a dGPU as your main display Driver and instead use the iGPU for output.
Also note. SMBIOS iMac18,1 has been reported to work better in this configuration. But 18,3 works fine for me.
Kernel and Kext patches
1.3 kexts and friends
Add the supplied SSDT-UAIC.aml to "patched" - it limits the injected USB Ports to the actual number and ports valid for this board.
Required kexts on "Other":
FakeSMC.kext IntelGraphicsFixup.kext Lilu.kext When having an Nvidia card: NvidiaGraphicsFixup.kext IntelMausiEthernet.kext in case you're running Ethernet USBInjectAll.kext with the HCI-300-series-injector.kext --> These two should be installed to /L/E after install
We are leaving sound out at the moment, this is something for post-install. Please note the absence of Shiki, I don't find it necessary. Video material I tried made use of the iGPU without shiki.
1.4 Check BIOS and install
You should be ready for install. But before you reboot, please take a look at your BIOS and set it up accordingly (copied from the aforementioned guide and adapted):
Load Optimized Defaults Disable VT-d setting If your system has Secure Boot Mode, disable it Set OS Type to Windows 8/10 or OtherOS - I have not seen a difference Turn off internal Serial and Parallel port Turn off Network stack for boot Turn off wake-on-lan (for now) Set XHCI Handoff to Enabled Don't enable decode over 4G Depending on your GPU, set priority for boot Set internal GPU to enable Set DMVT pre-alloc to 64MB Set USB legacy to enabled Activate XMP profile 1 f your Ram has it (mine doesn't and I added the timings manually) Set ERP to enable, disable platform power management (I need to do more research if this could be enabled)
I've attached my current BIOS config "hack2". You can place that on a fat32 drive (the EFI partition of your install USB drive might be an idea) and see if it loads. It's made for and with the F2 BIOS.
The install itself should be like other MacOS Hackintosh installs with it several reboots and ensuring to select the correct boot device in Clover.
2.1 Install clover on target
This is a no-brainer, but install a fresh copy of Clover on your target medium.
During install select again AptioMemoryFix but also additionally
EmuVariableUefi-64.efi Install RC scripts on target volume because otherwise NVRAM doesn't seem to work
After the install, copy
config.plist contents of "Other" content of "patched" apfs.efi from drivers64UEFI to your new clover install.
2.1 Edit ACPI for slumber
Choose one option, not both. The hot-patch is experimental, but for the moment it is stable.
2.1.1 Edit DSDT
This is necessary only once on initial install and every time, you edit or upgrade the BIOS. The DSDT.aml attached to this post might work for your system or give you a file to compare to. Don't expect it to work for you, though.
I won't go into the details of DSDT extraction and patching. There are better guides (the linked guide is a rip-off of rehabman's guide from a different forum). Please follow such a guide to extract your ACPI data.
Locate and disassemble the DSDT with the newest iasl binary you can put your hands on, then open it with MacIASL in its newest version you can find (Hint: Here is a good source) You can check if the version is new enough if MacIASL doesn't throw error upon compiling a freshly extracted DSDT.aml or DSDT.dst
Add rehabmans repo (as per linked guide) and apply the following patches:
Rename _DSM to _XDSM Fix _WAK Arg0 v2 USB3 _PRW 0x6D Skylake (instant wake) Find the CNVW device and remove the _PWR function there.
Compile the DSDT and place it in "patched".
2.1.2 Use SSDT hot-patching
Instead of having to re-extract and re-patch the DSDT on every BIOS change or update, Hardware change one can also use ACPI hot-patching.
It's a combination of config.plist patches and an SSDT, which is hot-patched into the ACPI (if I understand the process correctly)
You need to add this SSDT-GPRW.aml to your Clover folder in the designated position at Clover/ACPI/patched You need to add this patch to your config.plist. It goes into the DSDT patch section
Note: This works for me, but the patch removes the _PRW method from all devices in the DSDT. This could have side-effects. So far, I have seen none. At the moment I'm also not applying any other patch, compared with the additional edits I made to the DSDT method before.
2.2 Install kexts to system
As mentioned in the install section, it's better to follow rehabman's instruction and install USBinjectAll.kext to /L/E:
sudo cp -R Release/USBInjectAll.kext /Library/Extensions sudo touch /System/Library/Extensions && sudo kextcache -u / 2.3 Enable onboard Audio
This is where I'm not so happy currently, I'd like it to work without altering AppleHDA. But currently I find no other way.
2.3.1 Install FakePCIID & FakePCIID_Intel_HDMI_Audio
Rehabman tells us to use a kext installer to install it to /S/L/E. Chose the RELEASE folder
2.3.2 Run CloverALC command
Ensure your EFI partition is mounted before running this command
Get the newest version of CloverALC command (audio_cloverALC-xxx.sh) and run it. Our Audio codec is RTL887 and I'm running with layout ID 1
2.4 Optional steps
If you have a dGPU, now it's the time to install its drivers and adjust the config.plist for it.
This is out of scope of this guide. Yet, my supplied config.plist is ready to be used with Nvidia Pascal cards and using the Nvidia web driver.
Updating inside 10.3.x point updates doesn't require much attention:
Download the update from the AppStore as any Mac would do Allow the system to reboot Before booting MacOS with Clover, make sure to disable extra drivers for dGPUs which require non-native support. If using an Nvidia dGPU: Remove "nvda_drv=1" from your boot arguments and disable Nvidia injection If using a non natively supported AMD card, do the same for AMD (I'm not using AMD, thus I cannot be specific) Boot into the newly created Install MacOS partition Repeat this process until the Install partition is gone Boot MacOS again, still following 3., and potentially install updated drivers Your Audio might require re-patching
Move away from static DSDT patching to SSDT hotpatching --> requires my work Native NVRAM --> requires developer work Audio without AppleHDA patching --> requires developer work
5. Thanks to
@MaLd0nfor helping finding the right way with the DSDT
@RehabMan, for being a legend and helping me out patching
@toleda, for audio patches for the 300 series
/u/corpnewt, for his superb vanilla guide
@wmchris for his super XPS 9550 guide and introducing me to hot-patching
all the developers of clover and it's awesomeness