One of the most common questions we get is: “what gpu should I use for a Mac OS VM,” and it’s frankly a hard one to answer.

Nvidia is essentially out of the question at this point, assuming you want to use a new release of their operating system, and new AMD cards don’t work well with UEFI Passthrough. It’s damned if you do, damned if you don’t.

Consider supporting us if you value independent tech news and research. This site will always be free of ads and sponsored content.

Our VFIO Increments Page is generally OK to follow for macs, but as picky as OS X can be about supported cards, it’s good to err on the side of caution. This is an addendum to the Increments page specifically for Mac OS GPU Selection

So, What AMD GPUs Aren’t Safe?

As far as we can tell from our (extensive) research, Hawaii cards (The R9 290, 290X, 390, and 390X) are the first cards that shipped with the reset bug. All newer cards, including Vega and the 5700 are affected, and won’t reset properly in a VM. Apple Drivers support the RX 400 and 500 series as well as Vega/Fury Cards, but it isn’t advisable to pick one up unless you never plan on rebooting your VM.

Narrowing things down Further, we know that cards too old to support UEFI Boot won’t work either, except for the special UGA variants pulled from or made for old mac pros, but those end support in 10.14 Mojave, so they aren’t worth talking about.

So where does that leave us?

Explicitly Supported Cards

Well, Apple explicitly lists exactly 1 “metal capable” reset bug free card in their Mojave announcement:

  • The SAPPHIRE Radeon HD 7950

However, the drivers mojave ships with with support many cards out of the box as well. Mac OS is finnicky and won’t work if you don’t have an exact PCIe ID match, so, buyer beware, but generally we feel safe recommending these models:

  • Any 7950/70 or 280/X that supports UEFI boot *
  • Any 7850/70 or 270/X that supports UEFI boot *
  • Any Firepro Card Based on CGN 1.0 that supports UEFI boot **

[*] XFX Cards can cause kernel panics on some models, the brand should generally be avoided
[**] The models that fit this description are: The Firepro W7000, 8000, 9000, and D300, 500, 700 Cards. The D Series was designed specifically for Macs.

You can check if your card supports UEFI boot on the Tom’s Hardware VBIOS Archives. You may want to pass a supported rom or update to the most recent vbios as well to make sure you have a revision that will work, because some cards from this era did not ship with UEFI support.

There’s also one possible exception to the “Newer than Hawaii” rule for the reset bug: The Sapphire Radeon RX 580 Pulse (Model SKU 11265-05-20G) — these cards were shipped with the Apple eGPU dev kits and we’ve had at least a few reports of successful resets with this model. We’re not giving it a hard recommendation because of the issues with other polaris cards, but it’s definitely worth trying and reporting back to us if you do already own this model. 

The reason we don’t recommend 300 series cards is, while the apple drivers do support some of them, they seem to have PCIe ID mismatches more often than the older rebrands, so support varies on a model-by-model basis.

Lower end GCN 1.0 cards in the 7000 and 200 series can work as well, but often weren’t supported well or long enough to get a UEFI Boot bios update. If you already own one, though, it can’t hurt to look up if your model got a support update. We’ll be working on a patch guide as well, for those that already own a GCN 1.0 card with no UEFI support that still want to use their cards for Mac OS.

In addition to these conservative recommendations, Community member and MacOS-Simple-KVM Maintainer, Foxlet, Has compiled a list of explicitly supported PCI IDs in the Mac OS graphics drivers.

Some of these IDs do not match any known AMD device, so if you have a card that matches one with ??? in the model field, please contact us:

Apple Supported Device IDs

Device ID Raw (Mac) Model Identifier Notes
1002:6640 0x66401002 Saturn XT [FirePro M6100] Mobile
1002:6641 0x66411002 Saturn PRO [Radeon HD 8930M] Mobile
1002:6646 0x66461002 Bonaire XT [Radeon R9 M280X] Mobile
1002:6647 0x66471002 Saturn PRO/XT [Radeon R9 M270X/M280X] Mobile
1002:6650 0x66501002 Bonaire  
1002:6651 0x66511002 Bonaire  
1002:6780 0x67801002 Tahiti XT GL [FirePro W9000]  
1002:6790 0x67901002 ???
Firepro D 500?
1002:6798 0x67981002 Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] Mobile
1002:6800 0x68001002 Wimbledon XT [Radeon HD 7970M] Mobile
1002:6801 0x68011002 Neptune XT [Radeon HD 8970M] Mobile
1002:6806 0x68061002 Neptune Mobile
1002:6810 0x68101002 Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X] Certain cards require a GOP-patched VBIOS for operation
1002:6818 0x68181002 Pitcairn XT [Radeon HD 7870 GHz Edition]  
1002:6819 0x68191002 Pitcairn PRO [Radeon HD 7850 / R7 265 / R9 270 1024SP]  
1002:6820 0x68201002 Venus XTX [Radeon HD 8890M / R9 M275X/M375X] Mobile
1002:6821 0x68211002 Venus XT [Radeon HD 8870M / R9 M270X/M370X] Mobile
1002:6823 0x68231002 Venus PRO [Radeon HD 8850M / R9 M265X] Mobile
1002:6825 0x68251002 Heathrow XT [Radeon HD 7870M] Mobile
1002:6827 0x68271002 Heathrow PRO [Radeon HD 7850M/8850M] Mobile
1002:6835 0x68351002 Cape Verde PRX [Radeon R9 255 OEM]  
1002:6839 0x68391002 ???
Firepro D300?
1002:6860 0x68601002 Vega 10 [Radeon Instinct MI25] Reset Bug
1002:6861 0x68611002 Vega 10 XT [Radeon PRO WX 9100] Reset Bug
1002:6862 0x68621002 Vega 10 XT [Radeon PRO SSG] Reset Bug
1002:6863 0x68631002 Vega 10 XTX [Radeon Vega Frontier Edition] Reset Bug
1002:6864 0x68641002 Vega Reset Bug
1002:6867 0x68671002 Vega 10 XL [Radeon Pro Vega 56] Reset Bug
1002:6868 0x68681002 Vega 10 [Radeon PRO WX 8100/8200] Reset Bug
1002:6869 0x68691002 ???
1002:6920 0x69201002 ???  
1002:6921 0x69211002 Amethyst XT [Radeon R9 M295X] Mobile
1002:6930 0x69301002 ???
1002:6938 0x69381002 Tonga XT / Amethyst XT [Radeon R9 380X / R9 M295X] Mobile
1002:6939 0x69391002 Tonga PRO [Radeon R9 285/380] Reset Bug
1002:665C 0x665C1002 Bonaire XT [Radeon HD 7790/8770 / R7 360 / R9 260/360 OEM]  
1002:665D 0x665D1002 Bonaire [Radeon R7 200 Series]  
1002:66A0 0x66A01002 Vega 20 [Radeon Instinct] Reset Bug
1002:66A1 0x66A11002 Vega 20 Reset Bug
1002:66A2 0x66A21002 Vega 20 Reset Bug
1002:66A3 0x66A31002 Vega 20 Reset Bug
1002:66A7 0x66A71002 Vega 20 [Radeon Pro Vega 20] Reset Bug
1002:66AF 0x66AF1002 Vega 20 [Radeon VII] Reset Bug
1002:679A 0x679A1002 Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280]  
1002:679E 0x679E1002 Tahiti LE [Radeon HD 7870 XT]  
1002:67B0 0x67B01002 Hawaii XT / Grenada XT [Radeon R9 290X/390X] Reset Bug
1002:67C9 0x67C91002 ???
 
1002:67CA 0x67CA1002 Ellesmere [Polaris10] Reset Bug
1002:67CC 0x67CC1002 Ellesmere [Polaris10] Reset Bug
1002:67CF 0x67CF1002 Ellesmere [Polaris10] Reset Bug
1002:67D0 0x67D01002 Ellesmere [Radeon Pro V7300X / V7350x2] Reset Bug
1002:67DF 0x67DF1002 Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] Reset Bug
1002:67E0 0x67E01002 Baffin [Radeon Pro WX 4170] Reset Bug
1002:67E1 0x67E11002 Baffin [Polaris11] Reset Bug
1002:67E3 0x67E31002 Baffin [Radeon Pro WX 4100] Reset Bug
1002:67E7 0x67E71002 ???
Reset Bug
1002:67E8 0x67E81002 Baffin [Radeon Pro WX 4130/4150] Reset Bug
1002:67E9 0x67E91002 Baffin [Polaris11] Reset Bug
1002:67EB 0x67EB1002 Baffin [Radeon Pro V5300X] Reset Bug
1002:67EF 0x67EF1002 Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] Reset Bug
1002:67FF 0x67FF1002 Baffin [Radeon RX 550 640SP / RX 560/560X] Reset Bug
1002:682B 0x682B1002 Venus LE / Tropo PRO-L [Radeon HD 8830M / R7 M465X]  
1002:682D 0x682D1002 Chelsea XT GL [FirePro M4000] Mobile
1002:682F 0x682F1002 Chelsea LP [Radeon HD 7730M] Mobile
1002:683B 0x683B1002 ???
Firepro D700?
1002:683D 0x683D1002 Cape Verde XT [Radeon HD 7770/8760 / R7 250X]  
1002:683F 0x683F1002 Cape Verde PRO [Radeon HD 7750/8740 / R7 250E]  
1002:686A 0x686A1002 ???
1002:686B 0x686B1002 ???
1002:686C 0x686C1002 Vega 10 [Radeon Instinct MI25 MxGPU] Reset Bug
1002:686D 0x686D1002 ???
1002:686E 0x686E1002 ???
1002:687F 0x687F1002 Vega 10 XL/XT [Radeon RX Vega 56/64] Reset Bug
1002:69A0 0x69A01002 Vega 12 Reset Bug
1002:69A1 0x69A11002 Vega 12 Reset Bug
1002:69A2 0x69A21002 Vega 12 Reset Bug
1002:69A3 0x69A31002 Vega 12 Reset Bug
1002:69AF 0x69AF1002 Vega 12 [Radeon Pro Vega 20] Reset Bug
1002:7300 0x73001002 Fiji [Radeon R9 FURY / NANO Series] Reset Bug, Present in late High Sierra Builds
1002:730F 0x730F1002 ???  

 

Just because your GPU has the same Identifier as one of the IDs listed here does NOT necessarily mean it will work out of the box. Check to make sure the id matches by running lspci -nnk | grep VGA and cross referencing its output by searching for it in this document (ctrl +f.)

Even a matching ID does not guarantee functionality. Laptop GPUs will be difficult to set up and probably won’t work on the laptop’s built in monitor, because Apple uses custom muxing hardware in their implementations of those devices. In addition, cards with the reset bug or without UEFI Boot support out of the box will be a lot more trouble.

We’ll be working on populating this list with known good SKUs, so if you try one and have success, be sure to let us know in the discord or via email.


Consider Supporting us on Patreon if you like our work and want a say in what we cover and access to early content. We provide RSS feeds as well as regular updates on Twitter if you want to be the first to know about the next part in this series or other projects we’re working on. If you need help or have questions about any of our articles, you can find us on our Discord.

Images via Pixabay, special thanks to Foxlet for his tremendous help in Compiling the ID table