Contribute
Register

[Guide] How to fix Navi card slowdown in the Monterey 12.3 update

Status
Not open for further replies.
Joined
May 29, 2012
Messages
884
Motherboard
Gigabyte Z390 Gaming X
CPU
i9-9900K
Graphics
RX 6900 XT
Mac
  1. iMac
  2. MacBook Pro
Classic Mac
  1. LC
  2. Power Mac
  3. PowerBook
Mobile Phone
  1. iOS
Edit 2022-03-31: The MacOS 12.3.1 update fixes the graphics issue with the OEM Navi cards! Update your OS! It obviates the need for the framebuffer injection method described below, so you can remove the extra bits of code from your config.plist.

Hi all

As most of us Navi card owners experienced after updating to 12.3, the performance slowed dramatically. The community has been hard at work at solving this issue and it appears that specifying the framebuffers for your card in your config.plist will solve the problem. This post is a consolidation of the information that we've gathered on the specific framebuffers for your specific card. In particular, I've been updating this post as users have been experimenting and refining. I think we're at the point to make this a dedicated guide.

For a walkthrough of how to add the framebuffer injections using OCConfigurator, see this post.

Please post your experiences, and I'll update as important information comes forward!

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!

Edit 2022-03-27: People are having better results with the injection by adding the device_type key. The following code was changed to reflect.

Edit 2022-03-27: Some people have solved the graphics glitch issue with some HEIC images. See here and here for some solutions.

Radeon 5500:
(2022-03-26 Edit: updated code to the
following, which works for most people)

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>
                <key>ATY,EFIVersion</key>
                <string>01.01.231</string>
                <key>device_type</key>
                <string>ATY,PythonParent</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>

Radeon 5600, Radeon 5700:
(2022-03-28 Edit: updated code to streamline, according to this post
2022-03-30 Edit: This code can be used with the 5600)

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>
                <key>device_type</key>
                <string>ATY,AdderParent</string>
            </dict>
        </dict>
    </dict>

Code:
(2022-03-26 Edit: updated code to the following, which works for most people)
    <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>
                <key>AAPL00,DualLink</key>
                <data>
                AQAAAA==
                </data>
                <key>ATY,Card#</key>
                <string>102-D32200-00</string>
                <key>ATY,Copyright</key>
                <string>Copyright AMD Inc. All Rights Reserved. 2005-2019</string>
                <key>ATY,DeviceName</key>
                <string>W5700X</string>
                <key>ATY,EFIVersion</key>
                <string>01.01.190</string>
                <key>ATY,FamilyName</key>
                <string>Radeon Pro</string>
                <key>ATY,Rom#</key>
                <string>113-D3220E-190</string>
                <key>CAIL_EnableLBPWSupport</key>
                <integer>0</integer>
                <key>CAIL_EnableMaxPlayloadSizeSync</key>
                <integer>1</integer>
                <key>CFG_CAA</key>
                <integer>0</integer>
                <key>CFG_FB_LIMIT</key>
                <integer>0</integer>
                <key>CFG_FORCE_MAX_DPS</key>
                <integer>1</integer>
                <key>CFG_GEN_FLAGS</key>
                <integer>0</integer>
                <key>CFG_NO_MST</key>
                <integer>0</integer>
                <key>CFG_NVV</key>
                <integer>2</integer>
                <key>CFG_PAA</key>
                <integer>0</integer>
                <key>CFG_PULSE_INT</key>
                <integer>1</integer>
                <key>CFG_TPS1S</key>
                <integer>1</integer>
                <key>CFG_TRANS_WSRV</key>
                <integer>1</integer>
                <key>CFG_UFL_CHK</key>
                <integer>0</integer>
                <key>CFG_UFL_STP</key>
                <integer>0</integer>
                <key>CFG_USE_AGDC</key>
                <integer>1</integer>
                <key>CFG_USE_CP2</key>
                <integer>1</integer>
                <key>CFG_USE_CPSTATUS</key>
                <integer>1</integer>
                <key>CFG_USE_DPT</key>
                <integer>1</integer>
                <key>CFG_USE_FBC</key>
                <integer>0</integer>
                <key>CFG_USE_FBWRKLP</key>
                <integer>1</integer>
                <key>CFG_USE_FEDS</key>
                <integer>1</integer>
                <key>CFG_USE_LPT</key>
                <integer>1</integer>
                <key>CFG_USE_PSR</key>
                <integer>0</integer>
                <key>CFG_USE_SCANOUT</key>
                <integer>1</integer>
                <key>CFG_USE_SRRB</key>
                <integer>0</integer>
                <key>CFG_USE_STUTTER</key>
                <integer>1</integer>
                <key>CFG_USE_TCON</key>
                <integer>1</integer>
                <key>PP_DisableDIDT</key>
                <integer>1</integer>
                <key>PP_DisablePowerContainment</key>
                <integer>1</integer>
                <key>PP_DisableVoltageIsland</key>
                <integer>0</integer>
                <key>PP_FuzzyFanControl</key>
                <integer>1</integer>
                <key>device_type</key>
                <string>ATY,AdderParent</string>
                <key>hda-gfx</key>
                <string>onboard-1</string>
                <key>model</key>
                <string>Radeon Pro W5700X</string>
                <key>name</key>
                <string>ATY_GPU</string>
            </dict>
        </dict>
    </dict>

Radeon 6600
(Edit: This was changed from Deepbay to Henbury;
2022-03-27 Edit: It sounds like people are having better results when adding the device_type string
2022-03-28 Edit: Most 6600 and 6600XT users report that the 12.3 update does not impact performance)


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>
                <key>device_type</key>
                <string>ATY,HenburyParent</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>

Radeon 6800
(2022-03-27 Edit: It sounds like people are having better results when adding the device_type string
:

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>
                <key>device_type</key>
                <string>ATY,BelknapParent</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>

Radeon 6900
(Edit: This should be Belknap but people have had success with Carswell;
2022-03-27 Edit: It sounds like people are having better results when adding the device_type string)
:

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>
                <key>device_type</key>
                <string>ATY,CarswellParent</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>
 
Last edited:
I posted in the previous thread on this topic that I've had success with the Radeon 5700 config you've provided about on the Pro W5700 (workstation) card. This still stands, so above is ok.

I've since pared away all the config except the @0–@3 "Adder" plus device type, like the other models, and this also works fine. IOW, for me, the W5700 config does not need the additional details listed above the distinguish it from the other models.

As to the usefulness of the additional config for others in certain circumstances, I haven't been tracking this... I'm just saying I simplified my previous config report and it's fine.

In general, I recommended following a Occam-like rule of preferring minimum config to make things work.

(Another good thing is to understand why things work! But for me laziness justifies that getting them working is enough. Unless they are part of the Boeing jetliner I am riding in.)
 
Thank you for the workaround, working on my RX 5700 XT. Huge difference !
 
@tedyun
Good summary!!!
Maybe it can be useful to add that most users of 6600 and 6600 XT are not suffering the Monterey 12.3 problem.
 
The 5600 series are also Navi 10 based so the fix for the 5700 series also works for them.
 
Status
Not open for further replies.
Back
Top