Contribute
Register

[Success] AMD RX6000 Series working in macOS

Joined
Dec 19, 2019
Messages
8
Motherboard
asrock z390 pro4
CPU
i7 8700
Graphics
asus vega64
My XFX Merc 319 RX 6800 XT has Device ID 0x73BF, works great on macOS and the card itself next to silent when fully loaded. Recommended - if you can find one.
How do you make it run at full load? My 6900xt hardly works in FCPX
 
Joined
May 29, 2012
Messages
834
Motherboard
Gigabyte Z390 Gaming X
CPU
i9-9900K
Graphics
6900XT
Mac
  1. iMac
Classic Mac
  1. LC
  2. Power Mac
  3. PowerBook
Mobile Phone
  1. iOS
How do you make it run at full load? My 6900xt hardly works in FCPX

I haven't really looked into this, but there have been discussions in the past about getting FCPX to use the dGPU. I think one of the major factors is the SMBIOS. If you use an SMBIOS of a Mac that doesn't have an iGPU, like a MacPro, you can get the dGPU to do most of the functions. If you use an SMBIOS of a Mac that has an iGPU, it will split the workload between the iGPU and dGPU.

However, if you change the SMBIOS while you may gain a function, you may lose another. For example Sidecar will only work on an SMBIOS with an iGPU, like an iMac. Similarly, watching DRM protected videos seem to require a specific SMBIOS (I don't recall what the specifics are; I don't watch videos on my Hack).

Other than that, there are tutorials on the web that describe how to offload the work onto the dGPU. I haven't used FCPX in a while, but I seem to remember last year there was a setting in the Preferences where you could specify to use the dGPU for encoding.

See if there is something useful in this thread:

 
Last edited:
Joined
Oct 20, 2021
Messages
38
Motherboard
Apple MacBookPro16,1 - 1715.40.15.0.0 - OpenCore
CPU
i9-9980HK
Graphics
UHD 630 + Radeon Pro 5500M
Mac
  1. MacBook Air
  2. MacBook Pro
Mobile Phone
  1. iOS
SUCCESS: My Sapphire RX 6900XT Toxic Extreme Edition (Device ID 0x73AF) now works !!!!!!

I would like to thank the CaseySJ for providing the files needed to get my video card working.
These files and explanations are located at:
https://www.tonymacx86.com/threads/success-radeon-rx-6800-xt-big-sur.306736/post-2244068
and
https://www.tonymacx86.com/threads/success-radeon-rx-6800-xt-big-sur.306736/post-2244286
Also FakePCIID.kext is needed.

My EFI is attached.

Before EFI Changes:

View attachment 521904


View attachment 521906
My System: Using gfxutil:
03:00.0 1002:73af /PCI0@0/D0A0@1,1/D0A7@0/pci-bridge@0/GFX0@0 = PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

I modified \ACPI\SSDT-Change-GPU-Device-ID.dsl to match my system and compiled with MaciASL.app to create SSDT-Change-GPU-Device-ID.aml. (This was to fake out the PCI-Bridge).

I used \Kexts\FakePCIID.kext & \Kexts\FakePCIID_RX6000_Graphics.kext with no changes.

After EFI changes:


View attachment 521908


View attachment 521909
IORegistryExplorer.app

View attachment 521910
I'm trying to use a XTHX gpu with my MacBook Pro. Are the two FakePCIID... kexts enough? I have a bootloader (Kryptonite) that uses the same EFI except very slimmed down.
 

Gigamaxx

Moderator
Joined
May 15, 2016
Messages
6,558
Motherboard
GIGABYTE X470 Arous Gaming 7 WiFi
CPU
Ryzen R9 3900X
Graphics
RX 480
Mac
  1. iMac
I'm trying to use a XTHX gpu with my MacBook Pro. Are the two FakePCIID... kexts enough? I have a bootloader (Kryptonite) that uses the same EFI except very slimmed down.
The latest WEG, device properties device ID, and SSDT-BRG0.aml.
 
Joined
Oct 20, 2021
Messages
38
Motherboard
Apple MacBookPro16,1 - 1715.40.15.0.0 - OpenCore
CPU
i9-9980HK
Graphics
UHD 630 + Radeon Pro 5500M
Mac
  1. MacBook Air
  2. MacBook Pro
Mobile Phone
  1. iOS
The latest WEG, device properties device ID, and SSDT-BRG0.aml.
I added the two FakePCIID... kexts as well as WhateverGreen.kext to EFI/OC/Kexts & to info.plist. I wasn't able to find "SSDT-BRG0.aml." Is it the same as "SSDT-Change-GPU-Device-ID.aml"? If so, are there any device specific changes needed (ignoring the cosmetic name change)? Furthermore, I don't know what you mean by "device properties device ID" as my device ID is the same as the one used in the post I originally replied to. Is "device properties" a separate item on your list from "device ID"? Lastly, is WhateverGreen.kext redundant/conflicting with Kryptonite.kext? I haven't tested this yet.
 
Joined
Dec 11, 2016
Messages
44
Motherboard
Asrock TRX40 Creator
CPU
AMD 3970x
Graphics
Sapphire RX 6900XT Toxic Extreme Edition (Device ID 0x73AF)
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
The attached file is the SSDT-BRG0.aml, only named differently. I chose to name mine SSDT-GFX0.aml. The .dsl file is what is used before compiling with MaciASL.app. Also, the two FakePCIID files can go away if you use WhateverGreen.kext. Also, you will need to add the latest boot-arg to your config.plist: agdpmod=pikera
 

Attachments

  • SSDT-GFX0.aml
    108 bytes · Views: 46
  • SSDT-GFX0.dsl
    2.2 KB · Views: 41
Joined
Oct 20, 2021
Messages
38
Motherboard
Apple MacBookPro16,1 - 1715.40.15.0.0 - OpenCore
CPU
i9-9980HK
Graphics
UHD 630 + Radeon Pro 5500M
Mac
  1. MacBook Air
  2. MacBook Pro
Mobile Phone
  1. iOS
The attached file is the SSDT-BRG0.aml, only named differently. I chose to name mine SSDT-GFX0.aml. The .dsl file is what is used before compiling with MaciASL.app. Also, the two FakePCIID files can go away if you use WhateverGreen.kext. Also, you will need to add the latest boot-arg to your config.plist: agdpmod=pikera
Do I need to modify SSDT-BRG0 for my specific card (Powercolor Red Devil 6900 XT Ultimate)?
 
Joined
Dec 11, 2016
Messages
44
Motherboard
Asrock TRX40 Creator
CPU
AMD 3970x
Graphics
Sapphire RX 6900XT Toxic Extreme Edition (Device ID 0x73AF)
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
You will probably need to modify the script to match your PCI bus. For example, when I run Hackintool or IORegistry, under PCI ->Display, I see something that looks like this:
03:00.0 1002:73af /PCI0@0/D0A0@1,1/D0A7@0/pci-bridge@0/display@0 = PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

Using this, I only had to change these two lines:

External (_SB_.PCI0.D0A0.D0A7, DeviceObj)

Scope (\_SB.PCI0.D0A0.D0A7)

When I was done, IORegistry showed my display as:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0A0@1,1/IOPP/D0A7@0/IOPP/BRG0@0/IOPP/GFX0@0

I hope this helps, because I realize this stuff is cryptic.
 

Gigamaxx

Moderator
Joined
May 15, 2016
Messages
6,558
Motherboard
GIGABYTE X470 Arous Gaming 7 WiFi
CPU
Ryzen R9 3900X
Graphics
RX 480
Mac
  1. iMac
You will probably need to modify the script to match your PCI bus. For example, when I run Hackintool or IORegistry, under PCI ->Display, I see something that looks like this:
03:00.0 1002:73af /PCI0@0/D0A0@1,1/D0A7@0/pci-bridge@0/display@0 = PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

Using this, I only had to change these two lines:

External (_SB_.PCI0.D0A0.D0A7, DeviceObj)

Scope (\_SB.PCI0.D0A0.D0A7)

When I was done, IORegistry showed my display as:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0A0@1,1/IOPP/D0A7@0/IOPP/BRG0@0/IOPP/GFX0@0

I hope this helps, because I realize this stuff is cryptic.
This is the hardest part matching your system IOReg to the SSDT.
AMD hacks need to edit it as well.
IOPP/GPP1/GFX0, or IOPP/GP07/GFX0 etc….
You need to use IOReg and Hackintool PCI tab or equivalent to find and replace the nomenclature and the Devices/Properties as well.
 
Joined
Oct 20, 2021
Messages
38
Motherboard
Apple MacBookPro16,1 - 1715.40.15.0.0 - OpenCore
CPU
i9-9980HK
Graphics
UHD 630 + Radeon Pro 5500M
Mac
  1. MacBook Air
  2. MacBook Pro
Mobile Phone
  1. iOS
You will probably need to modify the script to match your PCI bus. For example, when I run Hackintool or IORegistry, under PCI ->Display, I see something that looks like this:
03:00.0 1002:73af /PCI0@0/D0A0@1,1/D0A7@0/pci-bridge@0/display@0 = PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

Using this, I only had to change these two lines:

External (_SB_.PCI0.D0A0.D0A7, DeviceObj)

Scope (\_SB.PCI0.D0A0.D0A7)

When I was done, IORegistry showed my display as:
IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/D0A0@1,1/IOPP/D0A7@0/IOPP/BRG0@0/IOPP/GFX0@0

I hope this helps, because I realize this stuff is cryptic.
Let me know if this is correct:

Using gfxutil:
48:00.0 1002:73af /PCI0@0/PEG2@1,2/UPSB@0/DSB1@1/UPS0@0/pci-bridge@1/pci-bridge@0/pci-bridge@0/display@0 = PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

So:

External (_SB_.PCI0.PEG2.UPSB.DSB1.UPS0, DeviceObj)

Scope (\_SB.PCI0.PEG2.UPSB.DSB1.UPS0)

And then I just compile it and add it to EFI/OC/ACPI (already added to the plist of course).

You need to use IOReg and Hackintool PCI tab or equivalent to find and replace the nomenclature and the Devices/Properties as well.

Gigamaxx mentioned something about "Device/Properties." Is there something further I still need to do?
 
Top