Contribute
Register

[Success] AMD RX6000 Series working in macOS

Meh! Still wrong no matter who is using it incorrectly.
 
My sapphire vega 64 nitro+ just died on me after 5 years of use. Guess it's time to upgrade... I am planning to get a RX6800 or RX6800 XT. I know the community often recommends Sapphire but to be honest, I was never really satisfied with the Sapphire Vega. It war very hot and noisy and pretty unstable, even in windows where it would often green screen in the middle of a game with default settings... Also build quality was very plastic & shitty fans. So I would like to change brand.

It is for use in a pro music studio (not willing to spend 10k on a mac pro hahaha!) so fan noise is an important factor, with 4 screens, but also for the occasional gaming after sessions.

My system is running Big Sur on Opencore.

I have my eyes on the Powercolor Red Dragon 6800 XT which is going for 700 € on Amazon.fr

Seems like a good deal... I saw a few reviews on youtube and the consensus seems to be that Powercolor makes very good cards with good cooling and noise, and uses more metal for it's shouds than sapphire cards. Also no RGB on the red dragons model, which I prefer.

Has anyone tried this model? Is it stable?
And is it plug and play or will I need to re-install Mac OS?
MacOS should never need to be reinstalled, no matter what you're doing.

You likely would add agdpmod=pikera (google it a bit, or look around here) to nvram vars in OC, and you'll want to ensure you have the latest OC and WEG kexts, but aside from that, you're good to go.

Big Sur? Wow. If you're running vLatest (11.6) you'll be fine; I think support started in 11.4 or so. Any reason you're not running 13.1?

I would go cheap if all you need it for is multiple screens and gaming isn't the priority.
 
I'm here to ask for help with the 6900XT (XTXH variant, Asus in this case). I'm on a Asrock B660M-HDV, BIOS 10.04, using my guide (https://github.com/dclive/B660M-HDV---i5-1200F), albeit with updated OC87 versions OpenCore and all kexts, validated by OCValidate as good, and happily working with an AMD 5700 under 13.1.

Now, I've removed the 5700 and added the 6900 XT (XTXH, remember) to this system, and so I see:

  • GFXUTIL:
  • ./gfxutil -f gfx0
    03:00.0 1002:73af /PC00@0/PEG1@1/PEGP@0/pci-bridge@0/GFX0@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

  • Hackintool shows the following on PCI tab:
  • IOREG path: IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/PEG1@1/IOPP/PEGP@0/IOPP/pci-bridge@0
  • DEVICE path: PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x1)
  • BRIDGE info:
  • IOREG Path:
  • IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/PEG1@1/IOPP/PEGP@0/IOPP/pci-bridge@0
  • DEVICE path: PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
SystemInfo shows:

AMD Radeon Navi21:
Chipset Model: AMD Radeon Navi21
Type: GPU
Bus: PCIe
PCIe Lane Width: x16
VRAM (Total): 16 GB
Vendor: AMD (0x1002)
Device ID: 0x73af
Revision ID: 0x00c0
ROM Revision: 115-D412BS0-101

..in other words, the expected 73af, b/c I haven't patched it yet.

I'm happy to post a guide on my GitHub, but I am just not clear on what my next steps are - the steps I see in this thread are very abbreviated - more conceptual than anything. What must be done? I have maciasl, I've opened a ssdt-brg0 that I've downloaded, then ... not sure what's next. Here's the default ssdt-brg0:

/*
* This table provides an example of creating a missing ACPI device
* to ensure early DeviceProperty application. In this example
* a GPU device is created for a platform having an extra PCI
* bridge in the path - PCI0.PEG0.PEGP.BRG0.GFX0:
* PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
* Such tables are particularly relevant for macOS 11.0 and newer.
*/

DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
// Fix this path
External (_SB_.PC00.PEG1.PEGP, DeviceObj)

// Fix this path
Scope (\_SB.PC00.PEG1.PEGP)
{
/*
* This is a PCI bridge device present on PEGP.
* Normally seen as pci-bridge in I/O Registry.

*/
Device (BRG0)
{
Name (_ADR, Zero)

/*
* This is an actual GPU device present on the bridge.
* Normally seen as display in I/O Registry.
*/
Device (GFX0)
{
Name (_ADR, Zero) // _ADR: Address
}
}
}
}

I compiled this, saved it into ACPI, added it to ACPI section in config.plist.

I've already added, in config.plist, the device ID bits:
DP
Add
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
^^^ is the above line right? Do I need to use something different based on the far-above output?
and then on the right side in OCAT:
device-id data BF730000
model string AMD 6900 XT (XTXH)

I either get all black screens, permanently, when going into MacOS with these mods (this isn't a pikeradp problem; without these mods it at least goes into MacOS, albeit without accelleration) or I get no changes. Seems like my most recent change (recompiling the asl above) led to a regression sending me to black screens. The change was the PC00 bit you see above, which I changed in order to match the output from my gfxutil output.

I'm now confused.

Help!

I'm here to ask for help with the 6900XT (XTXH variant, Asus in this case). I'm on a Asrock B660M-HDV, BIOS 10.04, using my guide (https://github.com/dclive/B660M-HDV---i5-1200F), albeit with updated OC87 versions OpenCore and all kexts, validated by OCValidate as good, and happily working with an AMD 5700 under 13.1.

Now, I've removed the 5700 and added the 6900 XT (XTXH, remember) to this system, and so I see:

  • GFXUTIL:
  • ./gfxutil -f gfx0
    03:00.0 1002:73af /PC00@0/PEG1@1/PEGP@0/pci-bridge@0/GFX0@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

  • Hackintool shows the following on PCI tab:
  • IOREG path: IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/PEG1@1/IOPP/PEGP@0/IOPP/pci-bridge@0
  • DEVICE path: PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x1)
  • BRIDGE info:
  • IOREG Path:
  • IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/PEG1@1/IOPP/PEGP@0/IOPP/pci-bridge@0
  • DEVICE path: PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
SystemInfo shows:

AMD Radeon Navi21:
Chipset Model: AMD Radeon Navi21
Type: GPU
Bus: PCIe
PCIe Lane Width: x16
VRAM (Total): 16 GB
Vendor: AMD (0x1002)
Device ID: 0x73af
Revision ID: 0x00c0
ROM Revision: 115-D412BS0-101

..in other words, the expected 73af, b/c I haven't patched it yet.

I'm happy to post a guide on my GitHub, but I am just not clear on what my next steps are - the steps I see in this thread are very abbreviated - more conceptual than anything. What must be done? I have maciasl, I've opened a ssdt-brg0 that I've downloaded, then ... not sure what's next. Here's the default ssdt-brg0:

/*
* This table provides an example of creating a missing ACPI device
* to ensure early DeviceProperty application. In this example
* a GPU device is created for a platform having an extra PCI
* bridge in the path - PCI0.PEG0.PEGP.BRG0.GFX0:
* PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
* Such tables are particularly relevant for macOS 11.0 and newer.
*/

DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
// Fix this path
External (_SB_.PC00.PEG1.PEGP, DeviceObj)

// Fix this path
Scope (\_SB.PC00.PEG1.PEGP)
{
/*
* This is a PCI bridge device present on PEGP.
* Normally seen as pci-bridge in I/O Registry.

*/
Device (BRG0)
{
Name (_ADR, Zero)

/*
* This is an actual GPU device present on the bridge.
* Normally seen as display in I/O Registry.
*/
Device (GFX0)
{
Name (_ADR, Zero) // _ADR: Address
}
}
}
}

I compiled this, saved it into ACPI, added it to ACPI section in config.plist.

I've already added, in config.plist, the device ID bits:
DP
Add
PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
^^^ is the above line right? Do I need to use something different based on the far-above output?
and then on the right side in OCAT:
device-id data BF730000
model string AMD 6900 XT (XTXH)

I either get all black screens, permanently, when going into MacOS with these mods (this isn't a pikeradp problem; without these mods it at least goes into MacOS, albeit without accelleration) or I get no changes. Seems like my most recent change (recompiling the asl above) led to a regression sending me to black screens. The change was the PC00 bit you see above, which I changed in order to match the output from my gfxutil output.

I'm now confused.

Help!
Hi,

Yo resolved problem to 6900XT? I can't work correctly... not acelerated... Not read SSDT :(

I Have Big Sur and before to 6800XT never have problems, but now updated Asus Tuf Gaming Top Edition 6900XT and is impossible working correctly, very very slow system... :(

Help please...

Can you upload EFI correctly for work 6900XT?

Sorry for my english..

Thanks
 
Hola Luis,

The problem is the fix varies according to your motherboard.

ssdt-brg0.aml follows:

DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
External (_SB_.PC00.PEG1.PEGP, DeviceObj)

Scope (\_SB.PC00.PEG1.PEGP)
{
Device (BRG0)
{
Name (_ADR, Zero) // _ADR: Address
Device (GFX0)
{
Name (_ADR, Zero) // _ADR: Address
}
}
}
}


You need to find the appropriate bridge values on your PC, with your AMD 6900XT installed, for the PC00.PEG1 values. Compare your gfxutil output and your Hackintool PCIe tab's outputs to mine, and you can see what you must change. Then, add the ssdt-brg0.aml to the config.plist and you're done.

Oh and in DP / Add / you'll have the following added (see attached graphic), same as I wrote above.
 

Attachments

  • 6900XT OC.png
    6900XT OC.png
    31.7 KB · Views: 63
Last edited:
Hola Luis,

The problem is the fix varies according to your motherboard.

ssdt-brg0.aml follows:

DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
External (_SB_.PC00.PEG1.PEGP, DeviceObj)

Scope (\_SB.PC00.PEG1.PEGP)
{
Device (BRG0)
{
Name (_ADR, Zero) // _ADR: Address
Device (GFX0)
{
Name (_ADR, Zero) // _ADR: Address
}
}
}
}


You need to find the appropriate bridge values on your PC, with your AMD 6900XT installed, for the PC00.PEG1 values. Compare your gfxutil output and your Hackintool PCIe tab's outputs to mine, and you can see what you must change. Then, add the ssdt-brg0.aml to the config.plist and you're done.

Oh and in DP / Add / you'll have the following added (see attached graphic), same as I wrote above.
Thanks for your response :)

My motherboard is Asus Z590F
My CPU is Intel Core i7 11700K
My RAM Kingston Fury 64GB 3600 DDR4 CL16

Then, i write all in config list, but not work :(

Can you help me please? Thank you very very much!
 
Last edited:
What is “all“ that you did?
What’s your gfxutil output?
 
I'll tell you, I've tried to load the SSDT by adding the line in the config.plist, I've tried many times other lines that would fix the problem, but it's impossible...

Could you help me with an EFI like you have and I'll remove it the lines of your plate so that it does not affect mine? Thanks very much friend. Upload my Efi.

Gfx:

IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/PEG1@1/IOPP/PEGP@0/IOPP/pci-bridge@0/IOPP/GFX0@0

View attachment IMG_20221227_120123.jpgView attachment IMG_20221227_095236.jpg
 

Attachments

  • Efi con SSDT-BRG0-1.zip
    5.2 MB · Views: 52
I'll tell you, I've tried to load the SSDT by adding the line in the config.plist, I've tried many times other lines that would fix the problem, but it's impossible...

Could you help me with an EFI like you have and I'll remove it the lines of your plate so that it does not affect mine? Thanks very much friend. Upload my Efi.

Gfx:

IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/PEG1@1/IOPP/PEGP@0/IOPP/pci-bridge@0/IOPP/GFX0@0

View attachment 560811View attachment 560812
Made some Alterations to your EFI to try
 

Attachments

  • Efi con SSDT-BRG0.zip
    6.5 MB · Views: 106
Also, fix your USB on your motherboard. Just use USBTOOLBOX to map it in Windows, copy the 2 KEXTs in place, and you're all done. It's super-easy now.

And remove some of those Ethernet KEXTs that you aren't using; assumedly you only have the Intel 2.5GB NIC.
 
Made some Alterations to your EFI to try

I can't be more grateful, you have completely saved my life, I've been having this problem for weeks and you have achieved it in a few minutes...

My intelligence is minimal from what I see

One question, what was the problem that the graphics card was not detected? I am so curious. Thank you so much for all the real help.
 
Back
Top