Contribute
Register

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

I am using the 10900k with active iGPU and iMac20,2 and the glitches are gone after doing the W5700X config patch.
 
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!

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 5700: (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,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)

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:
After update to 12.3 I get a black screen and monitors go to energy saving off mode when 12.3 tries to switch to the userspace after open core and kernel boot starts. Worked fine on 12.2.1
The same USB key boots 12.2.1 with no issues; I updated opencore to 0.7.9 and the plugins to their latest versions with no change in behavior. Still boots on 12.2.1 but not 12.3. I have validated my config.plist as having no errors.
I have -agdpmod=pikera in my bootargs.
Does anyone have this issue or know of a fix?

I have a 5700XT on Coffee Lake z390 w/ i9-9900k CPU.
 
After update to 12.3 I get a black screen and monitors go to energy saving off mode when 12.3 tries to switch to the userspace after open core and kernel boot starts. Worked fine on 12.2.1
The same USB key boots 12.2.1 with no issues; I updated opencore to 0.7.9 and the plugins to their latest versions with no change in behavior. Still boots on 12.2.1 but not 12.3. I have validated my config.plist as having no errors.
I have -agdpmod=pikera in my bootargs.
Does anyone have this issue or know of a fix?

I have a 5700XT on Coffee Lake z390 w/ i9-9900k CPU.

it's
agdpmod=pikera

not
-agdpmod=pikera

without the dash (-)
 
I downgraded to 12.2.1, waiting a few weeks to see if they fix this sh*t! In case they don't I'll apply patches. Do these patches compromise proper functioning of AMD (non Apple MPX) cards? I mean frequencies / thermals etc... you know ---> MPX cards share the same die / GPU / silicon but frequencies / clocks I think are different!
 
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.


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:

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,Deepbay</string>
                <key>@1,name</key>
                <string>ATY,Deepbay</string>
                <key>@2,name</key>
                <string>ATY,Deepbay</string>
                <key>@3,name</key>
                <string>ATY,Deepbay</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:

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>
Fantastic post, thanks! One quick question: are these config.plist edits equally valid for both the XT and non-XT versions of their respective cards?
 
Fantastic post, thanks! One quick question: are these config.plist edits equally valid for both the XT and non-XT versions of their respective cards?

Yes. Non XT and XT share the same Framebuffer.
 
I downgraded to 12.2.1, waiting a few weeks to see if they fix this sh*t! In case they don't I'll apply patches. Do these patches compromise proper functioning of AMD (non Apple MPX) cards? I mean frequencies / thermals etc... you know ---> MPX cards share the same die / GPU / silicon but frequencies / clocks I think are different!

I think the frequencies, etcs, are set in the card's BIOS. The framebuffer injections shouldn't affect those, I think. To change those parameters (ie overclock), you can inject PowerPlay tables to override the BIOS parameters
 
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.


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:

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,Deepbay</string>
                <key>@1,name</key>
                <string>ATY,Deepbay</string>
                <key>@2,name</key>
                <string>ATY,Deepbay</string>
                <key>@3,name</key>
                <string>ATY,Deepbay</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:

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>
several things wrong with this. 6900 should use Belknap too, Carswell is the framebuffer used with W6800X Duo mpx modules that have two navi cores. Deepbay isn't for 6600, but - I think - for navi 21 gpus with no connectors (used only for compute, unsure if such a device even exists for apple platform right now tho)
 
@maxxx I'm using a Sapphire Radeon RX 5700 XT 8 GB NITRO+ SE so I think I would need to use the ATY,Adder instead of Carswell .... but I'm not sure where I would add those 4 lines? I know you said VGA path so would that be under the first PciRoot part right after no-hda-gfx?

Screen Shot 2022-03-17 at 6.28.57 PM.png
 
Back
Top