Contribute
Register

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

Looking at the above, we see your device-id is 7340 (shown under the Compatible key). If I were to add it to the device properties under the card's PCI root address (in the config.plist) it would be need to be shown as device-id 40730000. You will also need to add a framebuffer-fbmem value of 00009000.
 
I have created a SSDT which forces my RX 6800 XT to use the Belknap framebuffer. This brings the Metal score back to normal (from 30k to 160k). HEIC glitch remains.

View attachment 544171
I have attached the basic idea as aml, but you have to specify the correct ACPI path.

@Gaulomatic

Nice job! How did you find the name for the 6800 framebuffer? Can you also find the name for the 6900 framebuffer?
 

Attachments

  • ioreg.txt
    10.5 KB · Views: 63
@tedyun There are three framebuffers defined in AMDRadeonX6000Framebuffer.kext:
1647488147295.png

It would have been guess work if not for this post: https://www.tonymacx86.com/threads/...-i7-12700k-amd-rx-6800-xt.318311/post-2307877

1647488275938.png


I am not entirely sure, but 6900 XT could be Carswell.
 
1. It's not just initial release. It's just minor update of OS. Why I should wait?
2. It brings blender cyclesX support. I start to upgrade immediately for professional using.
3. A lot of other stuff (Universal Control and other) that was advert a lot of time ago and people would like to start use after official release as soon as it released.

Nobody could imagine that somebody could broke Metal balls in absolutely empty room : )
(1) Well, I don't think MacOS 12.3 is a "minor" update in any sense. As you said it brings back many of the promised features like Universal Control, and it is quite a substantial update.

If you don't want to wait and want to install the update immediately, it is your call. I certainly won't do that if I were running Monterey myself. Now knowing about this performance degradation (and other issues like with VMware Fusion) I would stay away from Monterey for as long as I can.

It seems that this issue is already a known problem in the betas, and Apple did not address it before release :

Having been burned myself by "immediately" installing new OS updates (macOS / Windows) in the past, I now adopt a strict waiting policy on new OS updates. I will wait for as long as I can (even weeks / months) until I can be reasonably sure the new OS updates won't cause significant issues before I attempt to update.

(2) Noted. I don't need it myself so I don't need 12.3 right now.
 
@tedyun There are three framebuffers defined in AMDRadeonX6000Framebuffer.kext:
View attachment 544177
It would have been guess work if not for this post: https://www.tonymacx86.com/threads/...-i7-12700k-amd-rx-6800-xt.318311/post-2307877

View attachment 544178

I am not entirely sure, but 6900 XT could be Carswell.
Call me strange but I've just been looking at what you've posted here and somehow think I've come up with a likely solution on how to enable the RX6700 on Monterey!

AMDRadeonX6000Framebuffer.kext seems to be the key behind this. When we check it with the PCI IDs listing for the RX6700 we know that 73df is the device-id and that it is a Navi 22 chipset. However it is not present in the Info.plist of the X6000 kext, so we will likely need to add that in manually by adding another IOKitPersonality but as AMDNavi22GraphicsAccelerator (just dupe and rename from one of the other keys listed). Then under the IOPCIMatch we will need to add 0x73DF1002 on the end, plus add the device-id and other GPU relevant info under the PCI root of the OC config.plist such as model of RX 6700. That will likely work IMHO.
 
maybe it is this:
Code:
<key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x3,0x1)/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>
                <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>hda-gfx</key>
                <string>onboard-1</string>
                <key>model</key>
                <string>Radeon Pro W5700X</string>
                <key>name</key>
                <string>ATY_GPU</string>
            </dict>
        </dict>
        <key>Delete</key>
        <dict/>
    </dict>
Tested with my AMD Radeon RX 5700 XT 50th Anniversary. It works.
 

Attachments

  • screenshot about this mac.jpg
    screenshot about this mac.jpg
    361.6 KB · Views: 149
Yes Me Too
Screenshot 2022-03-17 at 07.25.18.png
 
Last edited:
I tested both injecting Carswell and Belknap framebuffers for my XFX Radeon RX 6900. **Both** fix the lags but Carswell seems to perform better. Didn't test Deepbay.
Geekbench Metal Compute:
Belknap: 155932
Carswell: 174384


However, the Metal Device name is bodged now:
Screenshot 2022-03-17 at 12.29.14.png


This is what I injected using OpenCore. Determine your own device path for "GFX0" using gfxutil:

XML:
<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>ATY,EFIVersion</key>
        <data>AQABJw==</data>
        <key>device_type</key>
        <string>ATY,CarswellParent</string>
        <key>model</key>
        <string>AMD Radeon PRO W6900X</string>
        <key>name</key>
        <data>CgDKAAAA</data>
    </dict>
</dict>
 
I can confirm if anyone is using RX6800 you could try BF730000 (73BF):

View attachment 544161
I have an RX 6800 (not XT), but only a vague idea what's involved in the testing being done in this thread :(

I do know that in my config.plist (OC 0.7.9), the only device-id that has ever worked to get my iGPU enabled for VDA acceleration is the one seen in the attached screenshot. It causes a significant delay in boot-up (>1 min.) during which my monitor goes completely off, but afterwards the monitor turns back on and the system finishes booting.

I put 12.3 on a separate partition of an internal SATA drive just to test. The Geekbench Metal numbers from my normal 12.2.1 (on an SSD) and the 12.3 test (on the SATA drive) are attached here. There's about 33% difference: bad, but not as severe as some people here have reported.
 

Attachments

  • 12.2.1 Metal.jpg
    12.2.1 Metal.jpg
    91 KB · Views: 79
  • 12.3 Metal.jpg
    12.3 Metal.jpg
    100.4 KB · Views: 76
  • OC 0.7.9.jpg
    OC 0.7.9.jpg
    106 KB · Views: 81
Back
Top