Contribute
Register

[Success] AMD RX6000 Series working in macOS

It defines everything from, and including, TRP0 :eek:
OK, maybe this is just "the safest, fool-proof, way" to ensure that there's a fully named ACPI path. No error message with this one?

I trust you have the spoofing information as DeviceProperties in config.plist. Is this applied?
Yes, and I've finally found a workaround to make it boot correctly. I've (reluctantly) had to change the SMBIOS from MacbookPro16,4 to MacPro7,1 and both displays (laptop + monitor) boot up fine.

TL;DR - I've managed to successfully drive two laptops (XPS 9360 and XPS 9520) using Monterey to use the eGPU to their full potential, but would like to keep the laptop smbios profile to keep things like power management, USB ports etc fully working. The RX580 worked fine off the MBP16,4 profile - so to keep this smbios what else needs to change (I'm assuming eg: framebuffer) to make the RX6650XT work off the MBP16,4 profile?
 
TL;DR - I've managed to successfully drive two laptops (XPS 9360 and XPS 9520) using Monterey to use the eGPU to their full potential,
Ah! It was an eGPU! That explains the unusual number of bridges and the error message: The external enclosure is not yet initialised when ACPI tables are loaded.

You've found the solution to a problem which had escaped us so far.
Which SSDT is working? My half-desperate SSDT-BRG? The one from SSDTTime? Both?
 
Ah! It was an eGPU! That explains the unusual number of bridges and the error message: The external enclosure is not yet initialised when ACPI tables are loaded.

You've found the solution to a problem which had escaped us so far.
Which SSDT is working? My half-desperate SSDT-BRG? The one from SSDTTime? Both?
The correct SSDT was the SSDTTime-generated one, which didn't end up defining TRP0, but instead just passed a series of bridges from PCI0 to GFX0. All I needed to do next was to add some basic properties under DeviceProperties and change the SMBIOS to MacPro7,1.

What would be really neat now is to understand what are the changes between MBP16,x and MP7,1 to be able to retroactively apply them to the laptop SMBIOS profile.
 
The automatically generated SSDT does define bridge TRP0 at address 0x7. It just calls it "BRG0", but ACPI names are essentially arbitrary: Anything goes as long as there is no collision.
 
Update: So I've successfully managed to use one laptop's SMBIOS profile (MBP16,2) and power the 6650XT correctly. The other laptop (MBP16,4) has not been able to drive the Radeon with the original SMBIOS profile and only the MacPro7,1 profile has worked. Before I commit everything to github (and publish the final configuration), I'll try and compare the two configurations in some scientific way, just in case I'm missing something trivial that can easily be fixed...
 
The MBP 16,2 SMBIOS working better than the MBP 16,4 SMBIOS is a bit strange.

The MBP 16,2 has an Iris Plus IGPU. The 16,4 MBP uses a UHD 630 IGPU and a Radeon Pro 5600M dGPU. So I would expect the MBP 16,4 to work better than the MBP 16,2 IGPU only system, even with a newer RX6000 series dGPU.
 
That's what I thought too - MBP16,4 would have been the more stable profile. Go figure :)

A final change in the ACPI script - had to insert a status function to ensure this mapping worked only under macOS as it was disconnecting under Windows and Linux.
 

Attachments

  • SSDT-BRG.aml
    183 bytes · Views: 34
How are you connecting the display to the GPU?
  • DP to DP, HDMI to HDMI?
  • Are you using any adapters or adapter cables?

Do you have the agdpmod=pikera boot argument in your config.plist?

Have you tried agdpmod=ignore boot argument in place of the pikera argument?
What does the ignore do?
 
I'm one of the unlucky guys who got a RX 6700 XT, which is not supported by macOS. I dual boot Windows (for gaming) and macOS (for work). Thus, I also bought a secondary GPU just for macOS a RX 560. Back then (in March 2021), it was the only option. Now with the introduction of the 7900 XT in Germany, the GPU prices are significantly dropping:

RX 6600 XT: 265€
RX 6800 XT: 600€
RX 6900 XT: 690€
Bought a RX 6900 XT for 630€, added agdpmod=pikera, works like charm.
 
Back
Top