Trying out 6950XT and MacOS

ovenlite1

New member
Joined
Jun 22, 2020
Messages
23
As you probably know, AMD recently released its latest gpu refreshes for the RX 6000 series. Having held out all this time with a 5500XT, I went ahead and gave the AMD queue a shot. To my surprise, I scored a 6950XT! With component prices going down, I also lucked out on a deal on a lightly used 5950x a few weeks ago. Guess demand really is going down? Anyway, this evening I've started the process of trying to get this card to work in my current system:
Mobo - Asrock x570 ITX/TB3
CPU - Ryzen 5950x
GPU - AMD 6950XT reference edition

So far, results have been... mixed. My first attempt was done out of curiosity more than anything, but I popped that sucker staring into my mobo and tried to boot. Of course, that did not work. One can dream, right?

As folks had discussed across various forums, the 6950XT is in essence a souped up 6900XT so I still had hopes that this wouldn't be too hard a process. I went ahead with trying to spoof the device-id to just a vanilla 6900XT, as others have needed to do with the XTXH or whatever those were called. I'll admit, not totally sure if I did it right, but hey I booted into MacOS and I'm typing this into Safari now! I hope I won't have to flash the bios to 6900XT, but I do have experience doing that kind of thing and if worst comes to worst, I'll do it. But here's what I've observed so far:
  • In 'About This Mac' I guess I was able to get 'AMD Radeon RX 6950XT' to display properly! whoopee. it shows up.
  • ... but it also says I only have 31MB of VRAM
  • Continuing into 'System Report,' VRAM (Total): reads out to 31MB AND Device ID: 0x73a5, which if I'm not mistaken is for the 6950XT, not the 6900XT.
  • Although I'm using MacOS, it's buggy and laggy as all get out. Minimize too many things at once and the poor machine will lock up and lose its lunch. Moving objects/windows around the monitor results in tremendous amounts of stuttering.
  • Google Chrome is absolutely unusable. No images are produced at all.
  • Via HDMI, video output max was 1080p. No other resolutions available, even on my 4K panel. Switching from HDMI to Display Port on my LG 4K monitor unlocked the ability to display at 4K, but no scaling. Not sure why that made a difference.
  • Wifi cuts out sometimes? Using a replacement Broadcom card. This might be a separate issue though (ah the life of a hackintosher!)
Screen Shot 2022-05-17 at 11.12.03 PM.png
Screen Shot 2022-05-17 at 11.04.54 PM.png




Here's what I did and have tried:
  • I updated to Monterey 12.4, against my better judgment. Everything was working fine before. Damn I wish I had waited, just in case it ends up being important.
  • In my config.plist I have listed device-id as 'FF730000'
  • I do believe I'm using the latest versions of whatevergreen and Lilu, if that's relevant.
  • I did use Gfxutil to add in the correct entry for DeviceProperties (I think?!?)
  • I did compile SSDT-BRG0 and enable in my config.plist, but this is where I was the least confident in my work.
  • Not sure if this needs mentioning, but it works in windows, just fine.

If you couldn't tell, I'm relatively new at this and pretty ignorant when it comes to a lot of hackintoshing work. All in all, I'm glad that I at least got this far, though, barring apple releasing updated drivers with support for these refreshes, I hope I can find a working solution to smooth things out a bit. I'll be documenting my findings and progress here. If you have any advice or tips on what I might try, I'd be happy to give them a shot and report back. Fair warning though, between work, moving, getting married, other fun personal business, I can't promise that how quickly I'll be able to make process. Still, if you have any ideas on how I might get this to work a bit better, I'm all ears! For now, a break. Been spending too much time on this for tonight!

Thank you!
 

taoj17v

New member
Joined
May 19, 2022
Messages
12
0x73FF is pci devid for 6600XT
can you try 0x73BF for 6900XT?

In practice, BF730000 has to be put into the config.plist.

Also by looking at the screen shot it seem that your SSDT is not doing its job: we are expecting to see 0x73FF.

Here is a video tutorial one good person put up
. The only thing you need to change is using the BF730000.
 
Last edited:

ovenlite1

New member
Joined
Jun 22, 2020
Messages
23
0x73FF is pci devid for 6600XT
can you try 0x73BF for 6900XT?

In practice, BF730000 has to be put into the config.plist.

Also, with that change, you may try with or without the SSDT-BRG0.
Hey, thank you for your suggestion! I was actually going to post an update- in my original post I made a typo. I did indeed use "BF730000" for spoofing the 6900XT device-id. I did not use "FF730000." I was too tired at the time o_O

However, I have not tried using without the SSDT-BRG0. I'll have to give that a go! I also suspect that I may not be creating SSDT-BRG0. If I update here and list the device path and what I've used in my SSDT, would you mind taking a look to see if I created it correctly?

In the meantime, I'll go ahead and try just removing SSDT-BRG0 and the reference in my config.plist to it, and just booting with device-id "BF730000."

Thanks for the comment, I appreciate your engagement!
 

taoj17v

New member
Joined
May 19, 2022
Messages
12
I think right now we do need the SSDT. But it seems that yours is not working properly. Please double check if the produced aml file is present and also the values in the config.plist is correct and of correct data type.

May be you can post the code.
 

ovenlite1

New member
Joined
Jun 22, 2020
Messages
23
I think right now we do need the SSDT. But it seems that yours is not working properly. Please double check if the produced aml file is present and also the values in the config.plist is correct and of correct data type.

May be you can post the code.
I tried without the SSDT, just to see what would happen, and as expected, no luck! So I I took a look at that video you shared, but I still don't think I'm compiling the aml correctly.

Here is the location path of the 6950XT via windows:

ACPI(SB)#ACPI(PCI0)#ACPI(GPP8)#PCI(0000)#PCI(0000)#PCI(0000)


Here is my SSDT-BRG0:

DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
External (SB.PCI0.GPP8.PEGP, DeviceObj)

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


The aml is included in my EFI folder, and I have listed the path and enabled it in my config.plist. I would appreciate if you had any feedback on my aml! Again, I'm very uncertain if I replaced the values correctly!
 

taoj17v

New member
Joined
May 19, 2022
Messages
12
Also in that video it get the gpu address, Can you post the whole output of gfxutil? I can use that to double check if the config.plist is pointing to the right device.

Edit: I meant get the gpu address in macos
 

ovenlite1

New member
Joined
Jun 22, 2020
Messages
23
I don't think there should be any issues with posting config.plist. I've seen it done so I'll post it here as well. However, if any mods deep it inappropriate, please let me know and I will promptly remove this post!

However, unfortunately the .aml file type is not supported for upload on this platform, so I will recopy and paste the compiled aml contents here:

Code:
/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20200925 (64-bit version)
 * Copyright (c) 2000 - 2020 Intel Corporation
 *
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of iASLVwfBxf.aml, Fri May 20 08:41:02 2022
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x0000006C (108)
 *     Revision         0x02
 *     Checksum         0x8C
 *     OEM ID           "ACDT"
 *     OEM Table ID     "BRG0"
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20200925 (538970405)
 */
DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
    External (_SB_.PCI0.GPP8.PEGP, DeviceObj)

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


Attached are:
Full Gfxutil output
config.plist (serial#, etc. removed)

Thank you so much for taking a look at my work, I really appreciate it!
 

Attachments

  • gfxutil_output.txt
    7.1 KB · Views: 5
  • config.plist
    43.5 KB · Views: 3

taoj17v

New member
Joined
May 19, 2022
Messages
12
can you change the config.list of the GPU name to "My AMD Radeon RX 6950XT 16GB" for debug purpose? So that we know we changed its name.

for the ssdt can you try this snippet:


Code:
DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
    External (_SB_.PCI0.GPP8, DeviceObj)

    Scope (\_SB.PCI0.GPP8)
    {
        Device (BRG0)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
            }
        }
    }
}

It seems that there is no PEGP in your windows output so I removed that.
 

ovenlite1

New member
Joined
Jun 22, 2020
Messages
23
If the above method does not work, you can also use this good documentation to verify if your injection is working: https://dortania.github.io/OpenCore-Install-Guide/extras/big-sur/#deviceproperties-injection-failing.

And post the acpi-path mentioned there. Along with new gfxutil output and just a statment about if in '"About Mac" the output becomes "My 6900xt"
Thanks so much for t
can you change the config.list of the GPU name to "My AMD Radeon RX 6950XT 16GB" for debug purpose? So that we know we changed its name.

for the ssdt can you try this snippet:


Code:
DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
    External (_SB_.PCI0.GPP8, DeviceObj)

    Scope (\_SB.PCI0.GPP8)
    {
        Device (BRG0)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
            }
        }
    }
}

It seems that there is no PEGP in your windows output so I removed that.
thanks so much for taking a look!
Yes, my original path from windows did not have it. In my first attempt I did not have it in as well. However, maybe I missed something else that time! I’m not near my machine tonight, but I will be sure to try it again tomorrow morning! If not, I’ll also take a look at the other resource you’ve shared. Hey I really appreciate you taking time to help me out!
 

taoj17v

New member
Joined
May 19, 2022
Messages
12
According to the windows path, there are 5 nodes after SB

ACPI(SB)#ACPI(PCI0)#ACPI(GPP8)#PCI(0000)#PCI(0000)#PCI(0000)


So in dsl we should have 5 nodes after SB
Code:
DefinitionBlock ("", "SSDT", 2, "ACDT", "BRG0", 0x00000000)
{
    External (_SB_.PCI0.GPP8.XXXX, DeviceObj)

    Scope (\_SB.PCI0.GPP8.XXXX)
    {
        Device (YYYY)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)  // _ADR: Address
            }
        }
    }
}

Then this should be the actual format we want. But we do not know XXXX YYYY. One way to look that is using IORegistryExplorer in macos
.
 

ovenlite1

New member
Joined
Jun 22, 2020
Messages
23
I reverted my back to _SB.PCI0.GPP8, still no luck. No acceleration available. I did change the model name in the plist, as you can see below...
So disappointing! Feel like I'm so close. I did see a YouTube video from a Chinese Hackintosher who had a similar method. Unfortunately, the aml files were stored on a Chinese site, Baidu, and I am unable to create an account here in the United States.


I do have IORegistryExplorer already installed! Here is the full ACPI-path listed there:
IOACPIPlane:/_SB/[email protected]/[email protected]

Should I try adding that 3001 after GPP8? It's my understanding that shouldn't be necessary...


I have run out of time to try things for today, but I should be able to continue these efforts tomorrow! Worst case scenario, I'll need to flash to 6900xt VBIOS. Not ideal, but coming from my much older and much less powerful GPU, I am willing to compromise.


Screen Shot 2022-05-21 at 7.18.12 PM.png
 

Shaneee

The AMD Guy
Staff member
Administrator
Joined
Mar 13, 2020
Messages
1,851
You shouldn't need a SSDT to get it working. Have you tried using AE730000 as BF73000 didn't work? I'm assuming you're using the correct PCI path in the config.
 

ovenlite1

New member
Joined
Jun 22, 2020
Messages
23
You shouldn't need a SSDT to get it working. Have you tried using AE730000 as BF73000 didn't work? I'm assuming you're using the correct PCI path in the config.
Hello, thanks so much for chiming in! I had seen around others have spoofed without ssdt, just changing device id worked for them, but when I tried it, it did not. However, I have only been using BF730000 and I haven’t tried AE730000! In terms of the PCI path, that’s the one part that I feel the most certain about at this point haha.

I’ll give that device id a shot tomorrow and report back! Appreciate the suggestion!
 

taoj17v

New member
Joined
May 19, 2022
Messages
12
I do have IORegistryExplorer already installed! Here is the full ACPI-path listed there:
IOACPIPlane:/_SB/[email protected]/[email protected]

Should I try adding that 3001 after GPP8? It's my understanding that shouldn't be necessary...
Thanks for trying.

No, any number after @ is not of interest so 30001 does not matter. You have to find the path deep enough so that it contains GFX0. Another way to do this is to read it from your vanilla dsdt (all patches off, you may post that or analyse yourself).

Code:
2c:00.0 1002:73a5 /[email protected]/[email protected],1/[email protected]/[email protected]/[email protected] = PciRoot(0x0)/Pci(0x3,0x1)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

this is your gfxutil output, there are 2 pci-brdges that we need to decipher into 4 letter XXXX YYYY and replace into the dsl file.
 

taoj17v

New member
Joined
May 19, 2022
Messages
12
You shouldn't need a SSDT to get it working. Have you tried using AE730000 as BF73000 didn't work? I'm assuming you're using the correct PCI path in the config.
By looking at the first post second picture, the devid is not changed.

Also the posted gfxutil output also has non-changed devid: 73af. We need to first fix that.
 

ovenlite1

New member
Joined
Jun 22, 2020
Messages
23
Try with this please.
Thanks for putting this together! No luck yet. I used this config.plist, added in my machine's personal details, ROM, etc in multiple different configurations, all to no success with acceleration.
Here are the combos I tried:
-Straight from download
-Straight from download, but enabled ssdt
-Used the downloaded plist but switched device-id to BF730000 from before
-Used the downloaded plist but switched device-id to BF730000 from before AND enabled SSDT

Again, no luck with any of them. I'm beginning to think maybe some of the other required components may not be as correct as I had thought. Perhaps I'll need to take another look at my PCI paths.

Some good news though, the new plist did fix shutdown for me, where previously I needed to manually power off the machine! So thanks for that! :)
 
Top Bottom