Contribute
Register

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

someone sends me his EFI folder and he told that it work... i will try and report...tnx for yor time
if its daydog that sent the efi that's for nuc 10 rx 5700 xt not 6900 xtxh
 
i do not have 6900xtxh but 6900xt.. and my main problem is not how to use framebuffer injection but when i reboot/restart my nuc my nuc start with iGpu and not eGpu
if you use that efi that was sent you it as the switch-to-external-gpu. so if you got igpu and egpu at same time it should automatically switch to just egpu only hope it helps.
 
i hope to.. because i lost my main:(
can you exp. me more, how to do it
switch-to-external-gpu .. use data or string and what i need to do..please
Yes DeviceProperties/Add/PciRoot(0x0)/Pci(0x2,0x0)<--this is where your IGPU is so you add switch-to-external-gpu Data 01000000-->because you can't boot with just EGPU ON Mac Min --> so you boot with both attached then just before.Mac Osx desktop --> switch-to-external-gpu kicks in and your left with just EGPU--> And no IGPU
 
None I only need the switch-to-external-gpu to switch off IGPU
 
Bro.. why, when reboot/restart or shoutdown nuc my disp. setting do not stay the same.. like position of displ changes, my desktop wallpaper changes like i didn’t do nothing?
I get the same when I'm just running on IGPU. but not on EGPU also I found out that on my Nuc, when I tick both EFI and Legacy box in the BIOS Boot menu. I can boot into Monterey without IGPU HDMI attached and don't need the switch-to-external-gpu or disable-gpu...
 
I think I found something interesting...

I've been wondering if injecting the framebuffer for the W6900X was resulting in loading of the PowerPlay Table for that card. I've long suspected that Apple underclocks or undervolts their CPUs and GPUs to balance power consumption and thermal properties. That could account for why this framebuffer patch doesn't result in 100% restoration of performance.

I tried injecting the Soft PowerPlay Table for my card and it seemed to have restored performance back to my 12.2.1 level. I would consistently score around 180K-200K in GB Metal before, and now with the W6900X framebuffer patch, I'm getting around 140K-160K. With the SPPT, it is back up to 180K.

Further testing is required.

Over in my Windows boot, I basically dumped the GPU ROM with GPU-Z, and using various utilities, I extracted the PowerPlay Table from the ROM file. This is usually done when overclocking the card, but I just wanted the stock PPT.

More testing is required, and I wanted to know if anyone else could try and confirm with their cards.

Edit: @gandem successfully applied the SPPT to his setup, and noticed improved scores.

Before SPPT:

View attachment 544368


After SPPT:
View attachment 544371
This is the entry in my config.plist

View attachment 544370

This is my SPPT (in hexadecimal format):

Cautionary Notes - Please read before you attempt this!

1. You should only use the BIOS that was extracted from your card's ROM. If you use the wrong PPT, you could damage your card. Note that most cards have 2 BIOS settings, controlled by a physical switch on the card -- one is for overclocking or performance, and the other is for silence or powersaving. To get the optimal performance from your card, you want to dump the BIOS from the overclocking/performance setting.

2. If you don't want to dump your BIOS, you could go to TechPowerUp to find the ROM dumps for many cards. Be mindful that you should try to match your card exactly, but there is a risk that there could be minor differences.

This is only for use with the PowerColor Red Devil RX6900XT Ultimate (XTXH)!! You should use the SPPT from the ROM extracted from your card! You can find the ROM dumps for many cards over in TechPowerUp.


Code:
A6 09 0F 00 02 22 03 EE 09 00 00 9E 42 00 00 80 00 18 00 00 00 1C 00 00 00 00 00 00 76 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 0D 00 00 00 9F 0A 00 00 B0 04 00 00 E8 03 00 00 94 07 00 00 C9 04 00 00 78 05 00 00 C9 04 00 00 78 05 00 00 B0 04 00 00 C1 04 00 00 C1 04 00 00 2A 03 00 00 C1 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F4 01 00 00 E0 01 00 00 61 00 00 00 26 02 00 00 3D 01 00 00 6B 01 00 00 3D 01 00 00 6B 01 00 00 A2 01 00 00 E7 01 00 00 E7 01 00 00 2C 01 00 00 E7 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81 00 00 00 10 00 00 00 1E 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A0 0F 00 00 A0 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A0 0F 00 00 20 05 00 00 20 05 00 00 0F 00 00 00 E4 0C 00 00 E4 0C 00 00 64 00 00 00 6E 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F4 01 00 00 F4 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F4 01 00 00 A2 02 00 00 A2 02 00 00 0A 00 00 00 FA 00 00 00 E8 03 00 00 19 00 00 00 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 00 00 00 0A 00 00 00 19 00 00 00 0A 00 00 00 19 00 00 00 0A 00 00 00 19 00 00 00 0A 00 00 00 19 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 00 00 06 00 57 00 5A 00 5F 00 5A 00 DC 05 A4 06 D0 07 D0 07 D0 07 D0 07 D0 07 CA 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 FF FD 7F A3 63 37 00 00 2F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 01 37 00 00 00 00 00 64 00 6E 00 64 00 73 00 73 00 73 00 73 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B8 0B 48 0D D8 0E 68 10 C0 12 00 00 FE 38 00 00 73 0F 00 00 64 00 64 00 E4 0C E4 0C 00 00 00 00 00 00 00 00 10 0E 48 0D C0 12 F8 11 40 00 00 01 32 00 3C 00 80 0C 80 0C 80 0C 80 0C 14 00 14 00 00 00 02 00 00 00 80 3F 00 00 00 00 B5 37 B8 3E EF 1B 67 BF 4F 40 A7 3F 8B 04 00 00 00 00 02 00 EE 7C 8F 3F A6 9B 84 3E 44 34 9A 3E 43 AD 09 BE 3D 0F 36 3F F1 00 00 00 00 01 04 00 CD CC AC 3F E3 A5 9B BD 6F 81 E4 3E CA A6 CC BE 04 21 49 3F C0 01 00 00 00 00 02 00 00 00 80 3F 00 00 00 00 72 C4 7A 3E 4C 89 84 BE DC BA 43 3F 11 02 00 00 00 00 02 00 09 8A AF 3F 29 5C 0F BD 85 CE EB 3E 10 CC C1 BE 47 20 46 3F 9B 01 00 00 00 00 02 00 6A DE 89 3F B8 1E 05 3E 8E 75 91 3E 28 49 57 BE E4 2C 3C 3F 73 01 00 00 00 00 02 00 09 8A AF 3F 29 5C 0F BD 85 CE EB 3E 10 CC C1 BE 47 20 46 3F 9B 01 00 00 00 00 02 00 6A DE 89 3F B8 1E 05 3E 8E 75 91 3E 28 49 57 BE E4 2C 3C 3F 73 01 00 00 00 00 02 00 7D 3F 95 3F DD 24 06 3E 1D 77 AA 3E EE 77 68 BE C9 1F 3C 3F 55 01 00 00 00 00 02 00 6A BC 74 3F AE 47 61 3E 73 2E 65 3E 52 ED 13 BE D7 2F 38 3F 43 01 00 00 00 00 02 00 6A BC 74 3F AE 47 61 3E 73 2E 65 3E 52 ED 13 BE D7 2F 38 3F 43 01 00 00 00 00 02 00 0E 2D 12 3F 9A 99 D9 3E 27 83 A3 3D 8D 28 ED BC E7 E3 32 3F B6 00 00 00 00 00 02 00 6A BC 74 3F AE 47 61 3E 73 2E 65 3E 52 ED 13 BE D7 2F 38 3F 43 01 00 00 F4 01 9F 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6B 01 C5 05 00 00 00 00 00 00 00 00 00 00 00 00 3D 01 F2 04 00 00 00 00 00 00 00 00 00 00 00 00 E0 01 B0 04 00 00 00 00 00 00 00 00 00 00 00 00 61 00 C9 01 A2 02 E8 03 A2 01 B0 04 00 00 00 00 00 00 00 00 00 00 00 00 E7 01 C1 04 00 00 00 00 00 00 00 00 00 00 00 00 E7 01 C1 04 00 00 00 00 00 00 00 00 00 00 00 00 2C 01 2A 03 00 00 00 00 00 00 00 00 00 00 00 00 E7 01 C1 04 00 00 00 00 00 00 00 00 00 00 00 00 26 02 94 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2A 6F 4F 3F 49 BA E6 3D 9C 33 22 3C 2A 6F 4F 3F 49 BA E6 3D 9C 33 22 3C 2A 6F 4F 3F 49 BA E6 3D 9C 33 22 3C 90 BD B2 3F 7B 31 34 3E 5F 98 2C BF 90 BD B2 3F 7B 31 34 3E 5F 98 2C BF 9F 0A 00 00 B0 04 00 00 E8 03 00 00 94 07 00 00 F2 04 00 00 C5 05 00 00 F2 04 00 00 C5 05 00 00 B0 04 00 00 C1 04 00 00 C1 04 00 00 2A 03 00 00 C1 04 00 00 00 02 03 03 78 05 00 00 4C 01 FA 01 F0 0A 80 0C 8C 0A 80 0C 48 0D 48 0D 88 13 18 15 18 15 18 15 F4 01 20 03 F4 01 01 00 01 02 5D 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A8 16 52 16 FC 15 A7 15 51 15 FB 14 A5 14 4F 14 F9 13 A4 13 4E 13 F8 12 0C 12 20 11 34 10 48 0F 00 00 00 00 03 02 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 01 06 36 01 6B 02 37 00 3C 00 90 01 90 01 90 01 90 01 90 01 90 01 90 01 00 00 00 00 90 01 23 00 08 07 98 08 B8 0B 00 00 59 00 F4 01 00 00 01 00 01 02 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0D 54 86 3D BC 05 D2 BD 1F 80 14 3E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9A 99 99 3E 00 00 C0 3F 33 33 13 40 00 00 20 40 66 66 46 40 0A D7 23 3D DD 24 86 3D A2 45 B6 3D 39 B4 C8 3D C7 4B B7 3E 00 00 00 00 00 00 00 00 00 00 00 00 E5 61 21 BD 04 56 8E 3E C5 72 2B BE E8 00 E8 00 01 01 00 00 00 00 00 00 E8 00 E8 00 19 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 B8 0B 90 01 00 00 34 80 37 3B 9F AB CD 3E ED 0D 3E 3C 75 93 F8 3E 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1E 06
Here is an automated flow for testing:

Download and cd to upp
Code:
git clone https://github.com/sibradzic/upp.git && cd upp
Code:
python setup.py build

python setup.py install

upp --pp-file=extracted.pp_table extract -r AMD.RX6900XT.16384.201104.rom

thefile=/Users/mbp114/Downloads/upp-0.1.3/extracted.pp_table \
printf  "\tPP_PhmSoftWTTable,\n\t\tBuffer (0x%X)\n\t\t{\n" $(stat -f %z "$thefile")
xxd -u -g 1 < "$thefile" | \
perl -nE '
    if ( m|^0000([0-9A-Za-z]+): (([0-9A-Z]{2} )+)( +)(.*)| ) {
        $o = $1; $b = $2; $s = $4; $c = $5;
        print "\t\t\t/* " . (uc $o) . " */  " . $b =~ s/(..) /0x$1, /gr . $s =~ s/   /      /gr . "// " . $c . "\n"
    }
'
printf  "\t\t},\n"

The file
Code:
extracted.pp_table
is a hex file with the extracted table, which can be inserted in the device properties. Printf at the end of the code will print the same file for insertion into SSDT. Thanks @joevt for the perl code.
 
It's the same Navi 21 core, so all should be dual link.
Binary data is written little endian in config.plist so it should be the right sequence for a SSDT (same as 0xBF730000 for spoofing RX 6900 XTXH to RX 6900 XT).

Here is a putative SSDT for RX 6800 and RX 6900 cards according to the post by @MysticalOS, but using the Belknap framebuffer since Carswell is supposed to be for a dual MPX module. The ACPI path should be adapted as required, and RX 6900 XTXH users can uncomment a part in the .dsl file to spoof their card.
What is this for?
Code:
 "AAPL00,DualLink",
                Buffer (0x04)
                {
                    0x0A, 0xAA, 0xAA, 0x00
                },
 
What are your results in 12.4?
I haven't really checked in the same manner as I did the previous tests. Performance is essentially back to normal. I don't think the sPPT makes a difference with the correct framebuffer injected. I don't run serious games on the Mac side, and I don't do serious video work, so I haven't really bothered to squeeze any extra performance out of it.
 
I haven't really checked in the same manner as I did the previous tests. Performance is essentially back to normal. I don't think the sPPT makes a difference with the correct framebuffer injected. I don't run serious games on the Mac side, and I don't do serious video work, so I haven't really bothered to squeeze any extra performance out of it.
But how about the GB5 tests? I have BS11.6.6 on another drive and when comparing GB5 results they are better in 11.6.6 compared to 12.4. Also 12.3.1 was better than 12.4. For me it dropped again.
 
Last edited:
Back
Top