There are two main methods for disabling incompatible external GPUs.
The easiest way to disable an incompatible discrete GPU is via your config.plist. You can use either DeviceProperties or a boot argument to do so (both require WhateverGreen.kext).
- Option 1: using
DeviceProperties. - Option 2: using boot-arg
- In
NVRAM/Add/7C436110-AB2A-4BBB-A880-FE41995C9F82 - Add
-wegnoegputo boot-args (disables all external GPUs!) - Add
WhateverGreen.kext(if not present already)
- In
- Option 3: Multiple GPUs
- In case you are using more than one GPU but only one of them is compatible with macOS, disable the incompatible GPU via SSDT (→ see Method 2), don't use the boot-arg!
- Disables the dGPU during initialization phase.
- Enables dGPU during sleep to prevent the system from crashing when it enters
S3powerstate. - Disables dGPU again after the machine wakes up.
- SSDT-PTSWAK
- GPU blocking patch: either SSDT-NDGP_OFF or SSDT-NDGP_PS3
- Add SSDT-PTSWAK. See Comprehensive Sleep and Wake Patch for details
- Add eiher/or:
- SSDT-NDGP_OFF
- In
DSDT, find the name and path ofDGPUand confirm the existence of the_ONand_OFFmethods. - Refer to the example and change the name and path to match the device name and patch used in the
DSDT.
- In
- SSDT-NDGP_PS3
- Find the name and path of
DGPUand confirm the existence of_PS0,_PS3and_DSMmethods - Refer to the example and change the name and path to match the query result.
- Find the name and path of
- SSDT-NDGP_OFF
Note: if this doesn't work either, you can try your luck with Rehabman's SSDT-DGPU (See instructions inside the .dsl file)
→ Follow this guide by Dortania.
- For Method 2, SSDT-PTSWAK and SSDT-NDGP_OFF [or SSDT-NDGP_PS3] must be combined to make the whole construct work.
- If both SSDT-NDGP_OFF and SSDT-NDGP_PS3 meet the requirements, SSDT-NDGP_OFF is preferred.
- The name and path of the GPU in the example is:
_SB.PCI0.RP13.PXSX. Correct the name and path according to the name used in your ACPI tables if necessary. - The SSDT method was developed by RehabMan
