NVIDIA Graphics 12: Legacy Kepler and Maxwell Cards on macOS 10.12–10.14
Identify which NVIDIA Kepler and early Maxwell GPUs work natively in macOS 10.12–10.14. Includes device IDs, Clover injection tips, and framebuffer patching.
When you install macOS 10.12 Sierra, 10.13 High Sierra, or 10.14 Mojave on a custom PC, the choice of NVIDIA GPU determines whether you get a seamless out-of-box experience or a frustrating cycle of kernel panics and black screens. The term "NVIDIA graphics 12" often appears in forum posts and config.plist snippets, but it is not a formal product name. It refers to the family of NVIDIA GPUs that work with the built-in drivers in macOS 10.12 through early 10.14 — specifically, most Kepler-based cards and a handful of early Maxwell cards that share the same driver architecture. This article walks through which physical cards qualify, what injection settings in Clover actually do, and how to verify your hardware before you commit to a build.
What "Graphics 12" Means in the Context of macOS Drivers
Apple ships GPU drivers as kernel extensions (kexts) inside the macOS system volume. The primary driver for NVIDIA hardware up to Mojave is NVDAStartup.kext, which loads one of three sub-drivers: NVDAResman.kext (the resource manager), GeForce.kext (the actual graphics driver), and NVDAEGPUSupport.kext (for external GPU handling). The version of these kexts inside a given macOS installer determines which GPU models are supported without third-party patches.
In the installer packages for macOS 10.12 through 10.14.6, the NVDAStartup.kext contains an Info.plist that lists supported device IDs under the key IOPCIMatch. The pattern 0x0f00&0xfff0 — often abbreviated as "0x0f00" — matches GPUs whose PCI device ID ends with 0f followed by any nibble. This covers the majority of desktop Kepler cards (GeForce 600 and 700 series) as well as the first Maxwell generation (GeForce 750 and 750 Ti). The shorthand "graphics 12" comes from the fact that macOS 10.12 was the first version to drop support for the older Tesla architecture (GeForce 8000/9000/200 series), and the supported list effectively starts at device IDs in the 0x0f range.
If you own a card with a device ID that does not match any entry in the stock NVDAStartup.kext, macOS will either fall back to VESA framebuffer (no acceleration, low resolution) or refuse to boot entirely, depending on whether the board requires UGA vs GOP UEFI output.
Supported Cards: Kepler and Early Maxwell
The following table lists common desktop NVIDIA GPUs that are natively supported in macOS 10.12–10.14 without any kext patching. All entries are verified against Apple’s shipped NVDAStartup.kext from macOS 10.14.6.
| GPU Architecture | Model | Device ID | Notes |
|---|---|---|---|
| Kepler | GeForce GT 640 (GK107) | 0x0fc1 | Works up to Mojave; no Metal 2, but full acceleration |
| Kepler | GeForce GTX 650 / 650 Ti | 0x0fc6 / 0x0fc8 | Commonly used in budget builds; stable |
| Kepler | GeForce GTX 660 / 660 Ti | 0x0fc2 / 0x1183 | Requires correct framebuffer injection for display outputs |
| Kepler | GeForce GTX 670 / 680 | 0x1189 / 0x1180 | High-end for the era; excellent macOS support |
| Kepler | GeForce GTX 760 / 770 / 780 | 0x1187 / 0x1184 / 0x1004 | 780 Ti (0x1004) is also supported |
| Kepler | GeForce GTX Titan (original) | 0x1005 | Rare but fully compatible |
| Maxwell (first gen) | GeForce GTX 750 / 750 Ti | 0x1380 / 0x1381 | Uses same driver path as Kepler in these macOS versions |
Cards not listed — such as the GTX 950, 960, 970, 980, Titan X (Maxwell), and all Pascal models — require the NVIDIA Web Driver for any macOS version. The Web Driver was last officially released for macOS 10.13.6 High Sierra. In Mojave, there is no Web Driver for Pascal or later architectures, meaning those cards are unsupported on 10.14 and later.
Clover Injection vs. Native Detection
Even with a supported GPU, macOS may not automatically enable all display outputs or correct acceleration if the system detects an unknown SMBIOS or if the GPU’s connector layout differs from Apple’s reference card. Clover’s Graphics section in config.plist provides two injection methods that affect Kepler and Maxwell cards.
Inject NVIDIA (Legacy Method)
Setting Inject to Yes under SystemParameters or Graphics forces Clover to patch the IOPCIMatch dictionary and inject a framebuffer personality. For most Kepler cards, this is unnecessary and can actually cause instability — for example, injecting the wrong connector type may disable HDMI audio or cause a black screen on a DVI-only monitor. The recommended approach is to leave Inject NVIDIA set to No and rely on the native driver detection.
NvidiaGeneric and NvidiaSingle
Two lesser-known boot arguments — NvidiaGeneric and NvidiaSingle — were used in earlier Clover versions to force the driver to treat a non-Apple GPU as a generic NVIDIA device. In macOS 10.12 and later, these flags are largely ignored by the driver because the kernel extension now reads the device ID directly. If you are troubleshooting a black screen on a known supported card, try adding nvda_drv=1 (for Web Driver scenarios) or -v to observe where the boot stalls. For native cards, removing all NVIDIA-related boot arguments often resolves the issue.
For a deeper look at how Clover handles GPU injection on older systems, including the exact plist keys and their effects on connector mapping, see the guide on Clover Injection Level 4: Fixing GPU Issues on Legacy Hackintosh Systems.
Framebuffer Patching for Connector Layout
Apple’s reference Mac Pro and iMac models use specific connector-to-port mappings. A PC Kepler card may have two DVI ports and one HDMI port, while Apple’s framebuffer expects one DVI, one HDMI, and two DisplayPorts. If macOS assigns the wrong connector type to a physical port, that port will remain black.
To diagnose this, boot with -v and look for a line like NVDA::start(NVDA) followed by a list of connectors. If you see a connector listed as DP (DisplayPort) on a port that is physically DVI, you need to patch the framebuffer. Tools like Hackintool (on a working macOS installation) can export the current connector list. You then create a Clover config.plist entry under Graphics > FB with the corrected connector types.
Common connector types:
- 0x00 0x04 0x00 0x00 — LVDS (laptop internal display; not used on desktop)
- 0x01 0x00 0x00 0x00 — DVI (single link)
- 0x02 0x00 0x00 0x00 — DVI (dual link)
- 0x04 0x00 0x00 0x00 — HDMI
- 0x00 0x08 0x00 0x00 — DisplayPort
Patching is safe as long as you keep a backup of your original config.plist. A wrong connector value cannot damage hardware, but it will produce a black screen until you revert the change from another boot device.
Sleep, Wake, and GPU Power Management
Kepler and early Maxwell cards generally sleep and wake correctly on macOS 10.12–10.14, provided ACPI tables are configured properly. The most common symptom of a misconfigured system is a wake-from-sleep that results in a grey or black screen with the mouse cursor still visible. This is almost always caused by incorrect _PTS (Prepare To Sleep) or _WAK (Wake) methods in the DSDT, or by a missing darkwake boot argument.
Try adding darkwake=0, darkwake=1, or darkwake=8 to your boot arguments. The value 0 forces a full wake sequence (most compatible but slow), while 8 enables the modern darkwake used by Macs with SSDs. If none of these resolve the issue, the problem likely lies in your ACPI patching rather than the GPU driver itself.
Risks and Backup Procedure
Before modifying any GPU-related settings in Clover or swapping kexts, create a full backup of your current EFI partition. The simplest method is to mount the EFI system partition (ESP) from within macOS using diskutil mount disk0s1 (adjust the disk number as needed) and copy the entire EFI folder to a FAT32-formatted USB drive. If your system becomes unbootable due to a wrong framebuffer patch or incorrect injection setting, boot from that USB drive and restore the original files.
Additionally, keep a separate macOS installer USB for the version you are running. If the GPU fails entirely (e.g., after an accidental Web Driver install on Mojave), you can boot into the installer, open Terminal, and delete the offending kext from /System/Library/Extensions before rebooting.
Final Check: Verify Your GPU Before Building
If you are assembling a new-to-you legacy system and have not yet purchased a GPU, check the exact model number against the table above. Avoid any card with a device ID starting with 0x13 (Maxwell 2.0) or 0x1b (Pascal) if you plan to run Mojave without Web Drivers. For High Sierra, a Pascal card with the matching Web Driver version is viable, but the driver is no longer signed by Apple and requires SIP to be partially disabled. For Sierra, stick strictly to Kepler or the GTX 750 Ti.
When you have the card in hand, boot a live Linux USB and run lspci -nn to confirm the device ID before installing macOS. This single command can save hours of troubleshooting and prevent the frustration of a black screen on first boot.
