Contribute
Register

[Success] AMD RX6000 Series working in macOS

I have a Sapphire Nitro+ 6900 XT OC and it works out of the box with no spoofing needed. Just an FYI. No SSDT-BRG0 table needed. Only a few of the newer cards need this. Some of the 6900 XT do report the proper Device ID...
Hi bro, I'm using the same card with you, sapphire 6900 XT special edition, and it makes a very loud coil whine noise somehow. And it only happens on macOS but not on Windows. Not sure if this issue is related to the power management of the graphics card or not. Are you having the same problem?

I've recorded the noise and uploaded it here:

System info:
OS: macOS 11.5.2 20G95 x86_64
Host: Hackintosh (SMBIOS: iMac19,1)
Kernel: 20.6.0
Uptime: 26 mins
Packages: 50 (brew)
Shell: zsh 5.8
Resolution: 1920x1080@2x, 1920x1080@2x, 1920x1080@2x
DE: Aqua
WM: yabai
Terminal: tmux
CPU: Intel i7-8086K (12) @ 4.00GHz
GPU: Radeon RX 6900 XT
Memory: 15339MiB / 65536MiB



Radeon RX 6900 XT:

Chipset Model: Radeon RX 6900 XT
Type: GPU
Bus: PCIe
PCIe Lane Width: x16
VRAM (Total): 16 GB
Vendor: AMD (0x1002)
Device ID: 0x73bf
Revision ID: 0x00c0
ROM Revision: 113-D4121EXT-CO1
Metal Family: Supported, Metal GPUFamily macOS 2

OpenCore 0.7.3 Release
WhateverGreen-1.5.3-RELEASE
AppleALC-1.6.4-RELEASE
VirtualSMC-1.2.7-RELEASE

boot-args:
```
<string>keepsyms=1 debug=0x100 alcid=1 agdpmod=pikera</string>
```
 
Anybody checked 11.6? it's out.

I am installing now
 
Also installing on 3 hacks right now.

P.S. Great success on all three)

Did Apple update the graphics drivers to include the 0x73af cards? I have a similar set up to @Infy but I can't seem to get the spoof working correctly. My path is identical to his system, so I used the SSDT-BRG0.aml and added the info to DeviceProperties, as he did, but no luck. It still keeps showing up as 0x73af. I'm using the latest OpenCore and WEG.
 
Is it now concluded that Apple will never support RX 6700 XT cards ?
 
Got a successful boot with ASUS ROG-STRIX-LC-RX6900XT-T16G-GAMING card device-id 73AF on z590i vision d board. I had to edit ACPI table a bit to fit my IOReg path. Super happy it worked!

P.S. The only issue so far is during the boot process as soon as apple logo appears monitor goes black for a bout 1.5 minutes. Then I get the desktop.

.
I'm studying your post here, and I was wondering if the ACPI path you used when booting from you 5500XT was the same one as your 6900XT?

Would you be able to post your SSDT-BRG0.dsl file (ie., before you compiled) so that I can study it?

I am wondering if the path to the old and new cards are the same.

Thanks

Ted
 
I guess I'm confused. It looks like your path is PCI0.GPP8.SWUS.SWDS.GFX0, or did this not end up being correct?

How did you determine your path to be PC00.PEG1.PEGP.BRG0.GFX0?

Thanks again. I'll post my attempts at this so far and ask for some help broadly at troubleshooting my system.

Ted
 
Hi all, particularly @vandroiy @byteminer @Gigamaxx and anyone who can help.

I'm trying to get this spoof thing to work on my rig, basically a Gigabyte Z390 Gaming X motherboard with a i9-9900K. The card is a PowerColor Radeon RX 6900 XT 16 GB Red Devil Ultimate (XTXH).

  • I am running Big Sur 11.6
  • OpenCore 0.7.3, with the latest stable kexts (eg., WEG 1.5.3)
  • I have the agpmod=pikera boot arg
  • I have 3 monitors, 1 is connected to the iGPU on the motherboard HDMI port (in order to allow me to connect the card and boot into macOS when the card is not outputting a signal), and the other two monitors are connected to the dGPU by DisplayPorts

My path appears to be PCI0.PEG1.PEGP.EGP0.GFX0, from the IOReg and Hackintool

gfx0 path IORegistry screenshot.jpeg


Code:
DEBUG   VID  DID  SVID SDID ASPM   Vendor Name                    Device Name                                        Class Name           SubClass Name        IOReg Name      IOReg IOName    Device Path
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
03:00.0 1002 73AF 148C 2414 Disabl Advanced Micro Devices, Inc. [ ???                                                Display controller   VGA compatible contr 0/EGP0@0/GFX0@0 display         PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

I modified the SSDT-BRG0.dsl file included in the OpenCore package to change "BRG0" to my "EGP0" using MaciASL. I then saved it as an SSDT-EGP0.aml file, and placed it into my ACPI folder of my EFI. I am attaching my SSDT-EGP0.aml file if anyone can tell if I compiled it and saved it correctly.


SSDT-EGP0.dsl MacASML screenshot.jpeg

Finally, I updated my config.plist with the agpmod=pikera boot arg, the ACPI entry specifying the SSDT-EGP0.aml, then the DeviceProperties entry to spoof the device-id to BF730000

config.plist Plistedit Pro screenshot.jpeg



When I boot, there is signal from the dGPU -- it is the primary monitor and it diplays POST, then the OpenCore boot picker, then the Apple logo and progress bar. The progress bar proceeds up to a certain point, then the iGPU takes over. The login screen is displayed on the monitor driven by the iGPU, and I can enter Big Sur. However, the monitor driven by the dGPU is frozen on the image of the Apple logo and a partial progress bar (the last image before the display driver failed to load, I presume).

When I check the IOReg, there are two device-id's, one with the original AF730000, and then the spoofed BF730000

gfx0 path IORegistry screenshot.jpeg


I don't know why there are two device-id's. I tried resetting the NVRAM, but no luck.

Any help would be appreciated!!! I feel like I'm really close to solving this puzzle.

Thanks

Ted
 

Attachments

  • SSDT-EGP0.aml
    108 bytes · Views: 119
Last edited:
@tedyun
First I would configure your iGPU to act only as accelerator for the system. Here is the DeviceProperties from my system with i9-10900k, but ig-platform-id is actually from Coffee Lake.
Also what SMBIOS are you using for your system?

View attachment 529006


Thanks, I'll try that. I used CaseySJ's framebuffer patch guide to get my iGPU working. I rarely use the output, and it only comes in useful in cases like this when I'm troubleshooting the dGPU. I normally use the dGPU for all video.

I'm using iMac19,1
 
@tedyun
Your config looks ok to me. Don't know why you see two device-ids in IOReg. I've noticed that your IOReg has a lot less info compared to my. Check what kexts you have loaded and if WEG is indeed working:

kextstat | grep -v com.apple


View attachment 529017:

I'll check if WEG is loading.

I believe the differences in the IOReg entry is because the driver for the card is not loading (due to the spoof not working correctly). Using the older dGPU (and the same ACPI path), the GFX0 entry has a lot more information.

Thanks

Ted
 
Last edited:
Back
Top