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
-wegnoegpu
to 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
S3
powerstate. - 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 ofDGPU
and confirm the existence of the_ON
and_OFF
methods. - 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
DGPU
and confirm the existence of_PS0
,_PS3
and_DSM
methods - 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