NVIDIA Graphics on macOS 10.15 Catalina: A Legacy GPU Guide

Detailed guide to NVIDIA GPU compatibility on macOS 10.15 Catalina for Hackintosh. Covers Kepler, Fermi, Maxwell, Pascal, Web Driver limits, and patching.

When macOS 10.15 Catalina was released in late 2019, it marked a turning point for Hackintosh builders who relied on NVIDIA GPUs. Apple had already stopped including NVIDIA Web Driver support for newer cards after High Sierra, but Catalina introduced a stricter driver ecosystem—Metal 2 requirements, the deprecation of legacy kexts, and the removal of support for many pre-Maxwell GPUs. For owners of GeForce GTX 600, 700, and 900 series cards, or even older Fermi and Tesla architectures, getting a stable, hardware-accelerated desktop on Catalina requires understanding exactly which GPUs still work, which do not, and what workarounds exist when native drivers fall short.

Native Support vs. Web Drivers in Catalina

Apple’s built-in GPU drivers for Catalina only support a narrow set of NVIDIA chips. The following list covers the cards that boot to a fully accelerated GUI without any third-party kexts:

  • GeForce GT 710, GT 720, GT 730 (GK208 / GK107) – fully supported via the NVDAGK100Hal.kext.
  • GeForce GT 740 (GM107) – supported, though some OEM variants with odd VRAM configurations may require a device-id injection.
  • GeForce GTX 750 / 750 Ti (GM107) – work OOB, but only the GM107 versions; the GM206-based GTX 950/960 are not supported natively.
  • GeForce GT 640 (GK107) – supported, but the GK106-based GT 640 is not.
  • Quadro K600, K2000, K4000 (Kepler) – native support in Catalina.

All Maxwell and Pascal cards (GTX 900, GTX 1000 series) require the NVIDIA Web Driver to achieve hardware acceleration. Because Apple stopped signing Web Drivers for macOS versions after 10.13.6 High Sierra, no official Web Driver exists for Catalina. This means GTX 960, GTX 970, GTX 980, GTX 1050, GTX 1060, GTX 1070, GTX 1080, and Titan X (Pascal) will boot to a black screen or fall back to unaccelerated VESA mode on Catalina—unless you apply specific patches that are experimental and not guaranteed to work.

Fermi and Tesla: The Cutoff Line

Catalina drops support for all GPUs based on the Fermi architecture (GeForce 400 and 500 series) and earlier Tesla-based cards (GeForce 200 series and older). If you try to boot a GTX 480, GTX 570, or GT 520 in Catalina, the system will either hang at the IOConsoleUsers: gIOScreenLockState 3 message or show a garbled screen after the Apple logo. There is no reliable patch to bring these cards back. The NVDANV50Hal.kext and NVDAGF100Hal.kext have been removed from the /System/Library/Extensions folder entirely. Attempting to copy them from Mojave or High Sierra will likely cause a kernel panic because the IOKit framework in Catalina no longer exposes the required interfaces for those hardware generations.

If you own a Fermi or Tesla card, your only macOS option is to stay on High Sierra (10.13.6) or, at most, Mojave (10.14.6) with the legacy kexts manually injected via Clover or OpenCore. For a detailed walkthrough of injecting older GPUs into later macOS versions, see the guide How to Inject Legacy GPUs in macOS Big Sur (AMD & Nvidia)—the same principles apply to Catalina, though the kext versions differ slightly.

Kepler Cards: The Safe Choice for Catalina

Kepler-based GeForce 600 and 700 series GPUs (excluding the GK208-based GT 710/720/730, which are already supported) are the most reliable option for a Catalina Hackintosh. Cards like the GTX 650, GTX 660, GTX 760, and GTX 770 work out of the box with full Metal 1 support. They do not need any injection, boot flags, or shader patches. However, note that Apple removed the NVDAGK100Hal.kext payload for GK104 and GK106 chips in some Catalina security updates; if you update to 10.15.7 Supplemental Update or later, you may need to re-inject the kext from an earlier build.

To verify your Kepler card is recognized correctly, boot with -v and look for the line NVDAStartup: Official NVIDIA OpenGL / OpenCL. If you see NVDAStartup: Legacy instead, the system is falling back to the NVDAResman.kext without proper acceleration. In that case, add shikigva=80 to your boot-args (if using WhateverGreen) to force the correct GPU detection path.

Maxwell and Pascal: Workarounds and Limitations

Despite the lack of official Web Drivers, the community has developed two experimental approaches for running Maxwell and Pascal GPUs on Catalina. Neither is recommended for a production system, but they are worth documenting for archival purposes.

1. The Lilu + WhateverGreen + NvidiaGraphicsFixup Legacy Patch

Early in Catalina’s lifecycle, some users reported partial success by combining Lilu.kext, WhateverGreen.kext, and a legacy version of NvidiaGraphicsFixup.kext (the latter is now deprecated and merged into WhateverGreen). The patch injects a fake device-id of 0x0FE0 (GT 730) into the IORegistry for Maxwell and Pascal cards, fooling the NVDAGK100Hal.kext into loading. In practice, this enables basic 2D acceleration and a correct resolution, but 3D rendering and video encoding remain broken. OpenCL performance is near zero. This approach is only viable for desktop navigation and light web browsing.

2. Manual Framebuffer Patching with NVCAP

For users who need multi-monitor support on a Maxwell card, manually editing the NVCAP value in the GPU’s device properties can force the system to recognize external displays. This does not add 3D acceleration, but it prevents the black screen issue on secondary monitors. The typical NVCAP value for a single DVI + HDMI setup is 04000000 00000300 0C000000 00000007 00000000. Inject it via a DeviceProperties block in OpenCore or an SSDT. Without the Web Driver, however, sleep/wake cycles will still cause a kernel panic on most Maxwell and Pascal cards.

Ethernet and Audio Considerations for Catalina

When building a Catalina system around an NVIDIA GPU, do not overlook the other components. Many legacy motherboards that pair well with Kepler cards (e.g., Z77, Z87, H61) have Realtek ALC887 or ALC892 audio codecs and Realtek RTL8111E or Intel I217-V Ethernet controllers. These work in Catalina with AppleALC.kext (layout-id 1, 2, 5, or 7 depending on your board) and IntelMausi.kext or RealtekRTL8111.kext. For boards with Atheros AR8161 Ethernet, you will need AtherosE2200Ethernet.kext version 2.2.2 or later—older versions panic on Catalina.

If you are using a GPU that requires the NVCAP or fake-ID patches, be aware that any kext update from Apple may reset your injected properties. Always keep a backup of your working config.plist and a copy of the kexts on the EFI partition before applying system updates.

ACPI and Bootloader Configuration

Catalina is more sensitive to ACPI errors than earlier macOS versions. When using an NVIDIA GPU, two ACPI patches are particularly relevant:

  • _DSM to _DSM rename for GPU injection – if you use Clover’s Graphics > Inject > NVidia, Clover searches for a device named NVDA in the ACPI tables. On many Z77 boards, the GPU is listed as PEGP or GFX0. A rename from GFX0 to IGPU (for the iGPU) or PEGP to GFX0 (for the dGPU) can resolve injection failures. In OpenCore, this is handled automatically by WhateverGreen, but only if the RenameGFX0 quirk is enabled in the Kernel > Quirks section.
  • FixShutdown_0004 – some NVIDIA GPUs prevent the system from fully powering off after shutdown. Adding the _PTS to ZPTS patch or using the FixShutdown option in Clover’s ACPI section can resolve this. Without it, the GPU fan may keep spinning after macOS appears to shut down.

For a deeper look at how device properties are injected for legacy GPUs, the article Graphics Card Injection for Legacy Hackintosh: Clover, OpenCore, and WhateverGreen covers the exact plist entries needed for both NVIDIA and AMD cards.

Diagnosing Common Catalina GPU Problems

If your system boots to a black screen, the first step is to check whether the GPU is being initialized at all. Boot with -v debug=0x100 keepsyms=1. Look for the string NVDA in the verbose output. If you see NVDAStartup: Unsupported, the kext has rejected your card. If you see NVDAStartup: Official but still get a black screen, the issue is likely the framebuffer or connector configuration—try adding agdpmod=pikera to boot-args (this is a common fix for black screen on many NVIDIA cards in Catalina).

For sleep/wake issues, check the console log for IOGraphics errors after wake. A typical fix is to add darkwake=0 or darkwake=8 to boot-args. If the system reboots instead of sleeping, disable PowerNap and Wake for network access in System Preferences.

Preserving a Working Configuration

Once you have a stable Catalina setup with an NVIDIA GPU, document every step. Save the exact version of Lilu, WhateverGreen, and AppleALC you used, along with the config.plist. Create a disk image of the entire EFI partition. Because Catalina is no longer receiving security updates (Apple ended support in November 2022), there is no reason to update the system—any future change risks breaking the GPU configuration permanently. Keep the machine offline or behind a firewall if you are concerned about security.

For those who want to experiment with newer macOS versions on the same hardware, note that Big Sur (11) and Monterey (12) drop support for all NVIDIA GPUs except the GK107/GK208-based cards. The Kepler GTX 600/700 series that works so well in Catalina will not accelerate graphics in those later releases without the same experimental patches described here—and the success rate is even lower. If you plan to eventually move to a newer macOS, consider replacing your NVIDIA card with a compatible AMD Radeon RX 560 or RX 580, which have native support up through Ventura.