Contribute
Register

macOS 12.3 Update Causes Problems for 5700/6800/6900 Graphics Cards

I've had W5700X properties injection in my config.plist (opencore) for a long time. I don't experience the graphic performance problem after upgrade to 12.3 on my 5700XT card. I guess it works similar to the SSDT fix mentioned earlier.

If anyone is interested, search for "w5700x config.plist" in google and first github result has the injection in config.plist. Try at your own risk. :)
great post.. and I'd love to do this. I have IORegistryExplorer and I've found my card.. but I have NO clue where this would go in the config.plist as I don't see a reference to the GFX0 in there now. Can someone post step by step for the 5700 please? Thanks!
 
Did you add the correct PCI path to your DeviceProperties? It might be different from the posted ones because of your motherboard. If you're not sure, confirm with Hackintool or gfxutil
my PCI path is
PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

I added

<key>DeviceProperties</key>
<dict>
<key>Add</key>
<dict>
<key>PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>@0,name</key>
<string>ATY,Carswell</string>
<key>@1,name</key>
<string>ATY,Carswell</string>
<key>@2,name</key>
<string>ATY,Carswell</string>
<key>@3,name</key>
<string>ATY,Carswell</string>

</dict>
<key>Delete</key>
<dict/>
</dict>

but without success. I'm doing something wrong...
 
my PCI path is
PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

I added

<key>DeviceProperties</key>
<dict>
<key>Add</key>
<dict>
<key>PciRoot(0x2)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>@0,name</key>
<string>ATY,Carswell</string>
<key>@1,name</key>
<string>ATY,Carswell</string>
<key>@2,name</key>
<string>ATY,Carswell</string>
<key>@3,name</key>
<string>ATY,Carswell</string>

</dict>
<key>Delete</key>
<dict/>
</dict>

but without success. I'm doing something wrong...

@valvator

I think you need a </dict> after the last <string>ATY,Carswell</string>

If you want, you can upload your config.plist so we can check, but remember to scrub your serial first.
 
Hi Tedyun, Is there an easy way that you can explain why this graphic driver had issues with v12.3 and not with v12.2.1? And how (with what you did for me), corrected the issue? Just curious.

Hi tucoboy,

I just applied the framebuffer injection patch to your config.plist. If you look in the DeviceProperties section, there is a new entry with the PCIRoot path that you supplied. The patch that we've all been using is based on this information here:




I'm not exactly sure how the technique works. This was based off the discovery that mattystonnie's old method of injecting the framebuffers could boost the performance of the Vegas and early Navis:


The way I understand it is that these patches tell the macOS which drivers to load. I don't know how this is done under the hood. The framebuffer injections worked pre-Big Sur, but then after Big Sur, Apple changed the process so that the injections didn't work anymore. With this latest update, it was like the drivers were loading the incorrect drivers or something. They were loading a driver, just not the correct one. The framebuffer injection tells macOS to load the correct one.

I wish @mattystonnie or @CMMChris would pop in, but I haven't seen them around for a long time. They were the ones that wrote the SSDT or kext for Catalina, so they would understand.

Ted
 
Thanks @WaTeZHUANGJIDINGZHI

For those who are curious about the file that is linked, it is a set of OpenCore config.plist files that have the framebuffer injections for different Radeons that may have experienced graphics slowdowns.

Just for convenience, I extracted the relevant DeviceProperties sections from each plist file and will put them here.

NOTE: You will have to confirm the PciRoot path using Hackintool, gfxutil, or a similar utility in order to properly inject the framebuffer for your card. If your path doesn't match, then the framebuffer won't work.

Edit: Please use the framebuffers with caution! See this post here from @blaatschaap :


These might not be the correct framebuffers, particularly for the 6900, which might be Belknap. However, a few of us have used Carswell successfully. With the Vega, it was possible to test different framebuffers so maybe it's possible with the Navi's as well. Make sure to test these on an EFI that isn't on your primary drive!


Radeon 5500:

Code:
    <key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>@0,name</key>
                <string>ATY,Python</string>
                <key>@1,name</key>
                <string>ATY,Python</string>
                <key>@2,name</key>
                <string>ATY,Python</string>
                <key>@3,name</key>
                <string>ATY,Python</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>

Radeon 5700:

Code:
    <key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>@0,name</key>
                <string>ATY,Adder</string>
                <key>@1,name</key>
                <string>ATY,Adder</string>
                <key>@2,name</key>
                <string>ATY,Adder</string>
                <key>@3,name</key>
                <string>ATY,Adder</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>

Radeon 6600 (Edit: This was changed from Deepbay to Henbury)

Code:
    <key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>@0,name</key>
                <string>ATY,Henbury</string>
                <key>@1,name</key>
                <string>ATY,Henbury</string>
                <key>@2,name</key>
                <string>ATY,Henbury</string>
                <key>@3,name</key>
                <string>ATY,Henbury</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>

Radeon 6800:

Code:
    <key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>@0,name</key>
                <string>ATY,Belknap</string>
                <key>@1,name</key>
                <string>ATY,Belknap</string>
                <key>@2,name</key>
                <string>ATY,Belknap</string>
                <key>@3,name</key>
                <string>ATY,Belknap</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>

Radeon 6900 (Edit: This should be Belknap but people have had success with Carswell):

Code:
    <key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>@0,name</key>
                <string>ATY,Carswell</string>
                <key>@1,name</key>
                <string>ATY,Carswell</string>
                <key>@2,name</key>
                <string>ATY,Carswell</string>
                <key>@3,name</key>
                <string>ATY,Carswell</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>
I'm not entirely sure about the penultimate <dict/> command. Shouldn't it be </dict>?
Sorry, ignore this, my mistake.
 
Last edited:
@valvator

I think you need a </dict> after the last <string>ATY,Carswell</string>

If you want, you can upload your config.plist so we can check, but remember to scrub your serial first.
Hi @tedyun. I tried editing my config.plist as you showed under "Advanced Tools: Text Mode" in OC Configurator with the specific entries you under "Device Properties" for my 5500 XT but after I save the .plist, it reverts back to the previous version when I open it back up to double-check it, none of the changes are saved. It runs fine (previous to Monterey 12.3) and I have no problem editing it otherwise (kext entries, quirks, etc). I can't figure out what the issue is so I've attached it for you to see what you might be able to find with it. Thanks in advance.
 

Attachments

  • config5500XT.plist
    21.4 KB · Views: 45
Hi @tedyun. I tried editing my config.plist as you showed under "Advanced Tools: Text Mode" in OC Configurator with the specific entries you under "Device Properties" for my 5500 XT but after I save the .plist, it reverts back to the previous version when I open it back up to double-check it, none of the changes are saved. It runs fine (previous to Monterey 12.3) and I have no problem editing it otherwise (kext entries, quirks, etc). I can't figure out what the issue is so I've attached it for you to see what you might be able to find with it. Thanks in advance.
@Superbogey

Try this -- I use PlistEdit Pro. OCConfigurator gave me a lot of problems in the early versions. That sounds familiar, where I thought I made changes, and it didn't actually "take" after saving. I think sometimes it helps to rename the file, then after you get the final version, to rename it manually in the Finder. I don't know ... that's why I switched to the Plist editors. The code is more confusing at first but you get used to it....
 

Attachments

  • Superbogey - config5500XT.plist.zip
    4.5 KB · Views: 37
@Superbogey

Try this -- I use PlistEdit Pro. OCConfigurator gave me a lot of problems in the early versions. That sounds familiar, where I thought I made changes, and it didn't actually "take" after saving. I think sometimes it helps to rename the file, then after you get the final version, to rename it manually in the Finder. I don't know ... that's why I switched to the Plist editors. The code is more confusing at first but you get used to it....
why do you have 2 platform ids?
 
@Feartech

Are you asking me or @Superbogey ? I just added the framebuffers. I didn't touch his other entry, so that was there from before.
umm... not sure... :)

whomever done this:

Code:
<key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>@0,name</key>
                <string>ATY,Python</string>
                <key>@1,name</key>
                <string>ATY,Python</string>
                <key>@2,name</key>
                <string>ATY,Python</string>
                <key>@3,name</key>
                <string>ATY,Python</string>
                <key>AAPL,ig-platform-id</key>
                <data>
                QHMAAA==
                </data>
            </dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                AwASWQ==
                </data>
            </dict>
I suppose! :)

also XhciPortLimit needs to be disabled :)
 
Back
Top