Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

macguru9999

macrumors 6502a
Aug 9, 2006
817
387
I'm seeing the 16GB cards on their ebay store, so definitely possible to make the RX 6600 and 6800 work, which is great news! The 6600 in particular is very well priced right now, and available! Just need the proper modifications to the ROM as @Syncretic has noted, and clearly the folks over at MacVidCards have already figured out.
I look forward to seeing the tests ....
 
  • Like
Reactions: OVERKILL338LM

Stex

macrumors 6502
Jan 18, 2021
280
189
NYC
Don't even waste your time. MacVidCards Europe already released RX6800 and RX6600XT cards with EFI boot screen working on Mac Pro 5,1.

well I do hope enough forum members take on @Syncretic generous proposal for what would hopefully result in an alternative open-source solution to macvidcards. @Syncretic: your work and generosity has been invaluable to many forum users, thank you!
 

TomCraft

macrumors newbie
Apr 17, 2022
1
0
Hey Guys, I have a random pixel issue with my RX 6800 XT on macOS 11.6.5 Big Sur.
Two weeks ago this pixel started to appear everywhere.

I made a screen recording of it:

This random pixel appear all over the place in MacOS GUI very random and sometimes a lot and never stopping.
In the screen recording I found a way to reliable reproduce the issue.

I tested the GPU in Windows and it works flawless no random pixel issues in the GUI or Shadow of the Tomb Rider Benchmark;
Shadow of the Tomb Rider Benchmark in MacOS also has no issue with radome pixel at all.

GFXBench on macOS, which runs Metal benchmarks produces a lot of random pixels in the tests.

I had an old disk dumb lying around from 8 month ago of my macOS. After booting it, the same pixel issue was also present there so I can rule out any update related issue.

I tested also a RX 580, which works without any issues in my macOS.

So I narrow the issue down to something with GPU and macOS/Metal related.

Anyone has advice how to proceed?
 
  • Sad
Reactions: EvilMonk

flyingmanatee

macrumors member
Jan 7, 2014
98
20
Oregon
Well it looks like someone may have parsed together the ROM fix, MacVidCards.Eu is selling them, and MacVidcards in the US is not.

I'd wager that this is real. It'll be interesting to see the results if anyone gets there hands on it as its performance in the cMP isn't much better than the Radeon VII.

 
Last edited:

EvilMonk

macrumors 6502
Aug 28, 2006
330
64
Montreal, Canada
Hey Guys, I have a random pixel issue with my RX 6800 XT on macOS 11.6.5 Big Sur.
Two weeks ago this pixel started to appear everywhere.

I made a screen recording of it:

This random pixel appear all over the place in MacOS GUI very random and sometimes a lot and never stopping.
In the screen recording I found a way to reliable reproduce the issue.

I tested the GPU in Windows and it works flawless no random pixel issues in the GUI or Shadow of the Tomb Rider Benchmark;
Shadow of the Tomb Rider Benchmark in MacOS also has no issue with radome pixel at all.

GFXBench on macOS, which runs Metal benchmarks produces a lot of random pixels in the tests.

I had an old disk dumb lying around from 8 month ago of my macOS. After booting it, the same pixel issue was also present there so I can rule out any update related issue.

I tested also a RX 580, which works without any issues in my macOS.

So I narrow the issue down to something with GPU and macOS/Metal related.

Anyone has advice how to proceed?
Maybe try to flash one of the original rom from the manufacturer website?
 

Norbert Mikołajczyk

macrumors 6502
May 26, 2016
346
171
Well it looks like someone may have parsed together the ROM fix, MacVidCards.Eu is selling them, and MacVidcards in the US is not.

I'd wager that this is real. It'll be interesting to see the results if anyone gets there hands on it as its performance in the cMP isn't much better than the Radeon VII.

I don't see the reason to update from RVII for now, maybe other detailed benchmark will change my mind.
I think with updating to 12.3.1 the performance of RVII could be a little better maybe.

1650439642900.png
 

h9826790

macrumors P6
Apr 3, 2014
16,656
8,587
Hong Kong
I don't see the reason to update from RVII for now, maybe other detailed benchmark will change my mind.
I think with updating to 12.3.1 the performance of RVII could be a little better maybe.

View attachment 1994029
That looks like CPU limiting.

Highly likely in both cases aren't really measuring the GPU's performance.
 

Norbert Mikołajczyk

macrumors 6502
May 26, 2016
346
171
That looks like CPU limiting.

Highly likely in both cases aren't really measuring the GPU's performance.
Exactly, very cpu limiting, we are at the limits of cMP gpu performance.
It might be a worthy upgrade for those without RVII or for those that need new functions and better driver support for sure.

EDIT: I wonder what the extra 0,5GHz could add to the performance. Waiting for the future benchmarks :)
 
Last edited:

Syncretic

macrumors 6502
Apr 22, 2019
311
1,533
Someone asked me in PM about getting the RX6800 working on a classic (5,1) Mac Pro, so I spent a few more minutes looking at the RX6800 ROM posted by @Petri Krohn. Closer analysis makes this poorly-written code look even worse: first, they try to locate five of the HII protocols (which don't exist in the MP5,1 EFI), and save the results without checking for errors (which results in NULL pointers being stored). Later, they blindly try to call functions using those NULL pointers (which is the apparent cause of the crashes/failures to POST). Then the kicker - it looks like they don't even use the values that would have come back from a successful function call. In other words, the problem code appears to be entirely unnecessary.

It looks to me like a 2-6 byte patch of the uncompressed ROM should fix this problem (I have no idea if there might be other unrelated problems that may come to light once the card is able to POST). I don't have an RX6800 to test with, so I'd be flying blind. If someone with a flashable RX6800 is willing to experiment, I'd be willing to try creating this patch. Before you volunteer, there are a few things you should be aware of:
  • Obviously, the patch may or may not be successful. This is an experiment, positive results are not guaranteed. The patch I have in mind is based on the RX6800 ROM that was posted earlier; your particular ROM may be different, and require different patches (or it may not be workable at all).
  • You'll need to be prepared to recover from any mishaps - notably, if your flashing fails, or one of the patched ROMs fails to work properly, you'll need a way to restore the RX6800's original ROM. You should first make a backup copy of your current ROM, then flash it back to the card so you're comfortable with the procedure; you should also investigate (in advance) what methods are available to recover from a failed flash. I'm far away from you, and I don't have an RX6800, so I'll be of little help if you have flashing problems.
  • I can reconstruct the PCIr records, including compression, but there may be internal checksums/CRCs that won't work after patching. Notably, there's a Microsoft certificate embedded in the EFI ROM image; if that's associated with some hash of the ROM, any modifications may cause security issues (either warnings or errors that crop up at runtime, failure to recognize WHQL certification, or the ROM may refuse to POST because it thinks it's been compromised (which will be true in this case)). Therefore, even if the patched code would work flawlessly, it's possible that the card will refuse to operate due to the modifications. (This shouldn't affect your ability to re-flash the ROM back to the original, but I don't know that for certain.)
  • Flashing a graphics card (or, really, any device) carries an inherent risk of failure or damage. It's usually fairly safe and easy, but there's a non-zero chance that your card could end up being inoperable (aka "a brick"). If your RX6800 is precious to you, it's probably better not to experiment on it.
  • My availability is sporadic, so it's possible that there may be some delays during our testing process (assuming it takes more than one attempt to get this right). I'll try to be as responsive as I can, but I make no guarantees.
So, given all those caveats, if any brave RX6800 owner would like to try some experiments, drop me a PM and let me know.

I have created a patch that allows AMD RX6600/RX6800/RX6900 cards to work on a Mac Pro 4,1/5,1 (and maybe a 3,1? I have no idea if that's even possible). I examined ROM dumps of RX6600/6600XT and RX6800/6800XT/6900XT from various manufacturers, and every one I looked at used the same (broken) AMD reference code in the x86_64 EFI section (the manufacturer-specific differences are in the non-EFI section). While it's certainly possible that some cards won't do that, it looks like a one-size-fits-all patch may be possible here. (As with all such things, this comes without any warranty, use at your own risk, the usual caveats apply.)

I do not possess an RX6x00 card to test with. @caingraywood was generous enough to perform tests on his XFX SWFT309 RX6800XT and Sapphire Nitro+ RX6900XT cards. Many thanks to him.
(NOTE that this has been tested on RX6800XT and RX6900XT, but the RX6600/6600XT has NOT yet been tested. There is no reason it shouldn't work, but you should be aware that if you try it, you're the tester. Please let me know if you do try an RX6600/6600XT.)

Because I don't have one of these cards, I can't offer any real assistance with the flashing process. As I understand it, the ATIflash/AMDVBFlash utilities will work with the RX6x00 cards, but you'll need to investigate this on your own (and hopefully post your findings here, so others can benefit as well). (Note that @caingraywood was using a hardware flasher for his tests, so I don't think he can offer software flashing advice, either.)

Attached is a ZIP file containing a MacOS program named FixRX6x00ROM. It's a command-line program you run from a Terminal session. You should not need any special permissions; however, programs sometimes lose their executable mode bits when using ZIP, so you may need to execute chmod 755 FixRX6x00ROM after unzipping.

You'll need to acquire a dump of your current ROM, using whatever means you have available (ATIflash/AMDVBFlash/other). Once you have that, make a copy and put it somewhere safe, then you can run ./FixRX6x00ROM {filename} from a Terminal session (e.g. ./FixRX6x00ROM RX6800XT.XFX.SWFT309.original.BIN)

FixRX6x00ROM does the following:
  • Reads the dump of your current ROM, verifies that it's of the expected format
  • Searches the dump of your current ROM for the AMD Reference code (6600 or 6800/6900).
  • If the AMD Reference code is found, replaces it with the correct (6600 or 6800/6900) patched code.
  • Creates a patched file named the same as the original, but with ".PATCHED" appended (e.g. RX6800XT.XFX.SWFT309.original.BIN.PATCHED). Your original ROM dump file is left unmodified.

If your current ROM does not appear to be properly formatted, or it does not contain the AMD Reference code, FixRX6x00ROM will display an appropriate message and do nothing else. If the patcher fails for your ROM, please zip up the ROM dump and PM it to me. I'll take a look at it when I can.

If FixRX6x00ROM successfully patches your ROM, you can then flash the patched ROM back to your video card (again, using whatever means you determine to be appropriate), and it should then work with MacOS. IMPORTANT NOTE: apparently, for the RX6x00(XT) to work with MacOS, you'll need to be running OpenCore, WhateverGreen, Lilu, and include agdpmod=pikera in your boot-args. Failure to do this will almost certainly result in a black screen after booting. (Again, I don't have a card to play with, so any questions regarding the boot-args or the specific configuration of OpenCore, WhateverGreen, and/or Lilu need to be asked of someone else.)

The patch itself is only five bytes. The EFI code in the ROM is compressed, though, so making any change causes the entire EFI section to change - that's why, if you compare your original ROM file and the patched ROM file, you'll see a lot more than 5 bytes changed.

IMPORTANT: This patch does not attempt to provide pre-boot support (e.g. it won't let you see the native Apple boot picker). If you require that, MVC apparently provides that functionality. This patch simply fixes the bug in the AMD code that prevented the card from booting properly. With the patch, these cards should behave just like any other non-Mac video card - black screen until either OpenCore initializes or the MacOS drivers load.
ALSO: The patch does not modify clock speeds, temperature thresholds, timing data, or anything other than the EFI initialization process - if you've tweaked your card, the tweaks should still be there after patching (alternatively, you can tweak the card after patching as well, assuming your tweak program doesn't overwrite the patch).

The patched ROMs have also been tested on a non-Mac system. The nature of the patch is such that it shouldn't affect operation on non-Mac systems (i.e. it should work just fine on a Windows or Linux system), and small-scale testing supports that. I'm interested to hear if anyone finds an exception where a non-Mac doesn't work properly.

And before anyone asks: even though patching the Mac Pro BootROM seems like the cleaner solution (which would allow these cards to work unmodified), that's a much larger project that creates some new problems of its own. In this case, patching individual cards is actually the better solution, at least IMHO.

[EDIT: to cut down on the back-and-forth between MacOS and Windows during this process, in a later post I attached both a Windows (command-line) version of the patcher program and copies of various RX6x00 ROMs from TechPowerUp, already pre-patched.]

Courtesy of @caingraywood:

1650536306200-png.1994480

1650524931122-png.1994432

1650524963695-png.1994433


And now, back to the AVX integration problem that's been driving me up the wall...

[EDIT (for clarity): that last sentence refers to my AVX emulator, which is an entirely separate project that has nothing to do with the RX6x00 patch. I only detoured into the RX6x00 code because I was frustrated with the AVX project.]
 

Attachments

  • FixRX6x00ROM_011.zip
    84.7 KB · Views: 1,860
Last edited:

Norbert Mikołajczyk

macrumors 6502
May 26, 2016
346
171
I have created a patch that allows AMD RX6600/RX6800/RX6900 cards to work on a Mac Pro 4,1/5,1 (and maybe a 3,1? I have no idea if that's even possible). I examined ROM dumps of RX6600/6600XT and RX6800/6800XT/6900XT from various manufacturers, and every one I looked at used the same (broken) AMD reference code in the x86_64 EFI section (the manufacturer-specific differences are in the non-EFI section). While it's certainly possible that some cards won't do that, it looks like a one-size-fits-all patch may be possible here. (As with all such things, this comes without any warranty, use at your own risk, the usual caveats apply.)

I do not possess an RX6x00 card to test with. @caingraywood was generous enough to perform tests on his XFX SWFT309 RX6800XT and Sapphire Nitro+ RX6900XT cards. Many thanks to him.
(NOTE that this has been tested on RX6800XT and RX6900XT, but the RX6600/6600XT has NOT yet been tested. There is no reason it shouldn't work, but you should be aware that if you try it, you're the tester. Please let me know if you do try an RX6600/6600XT.)

Because I don't have one of these cards, I can't offer any real assistance with the flashing process. As I understand it, the ATIflash/AMDVBFlash utilities will work with the RX6x00 cards, but you'll need to investigate this on your own (and hopefully post your findings here, so others can benefit as well). (Note that @caingraywood was using a hardware flasher for his tests, so I don't think he can offer software flashing advice, either.)

Attached is a ZIP file containing a MacOS program named FixRX6x00ROM. It's a command-line program you run from a Terminal session. You should not need any special permissions; however, programs sometimes lose their executable mode bits when using ZIP, so you may need to execute chmod 755 FixRX6x00ROM after unzipping.

You'll need to acquire a dump of your current ROM, using whatever means you have available (ATIflash/AMDVBFlash/other). Once you have that, make a copy and put it somewhere safe, then you can run ./FixRX6x00ROM {filename} from a Terminal session (e.g. ./FixRX6x00ROM RX6800XT.XFX.SWFT309.original.BIN)

FixRX6x00ROM does the following:
  • Reads the dump of your current ROM, verifies that it's of the expected format
  • Searches the dump of your current ROM for the AMD Reference code (6600 or 6800/6900).
  • If the AMD Reference code is found, replaces it with the correct (6600 or 6800/6900) patched code.
  • Creates a patched file named the same as the original, but with ".PATCHED" appended (e.g. RX6800XT.XFX.SWFT309.original.BIN.PATCHED). Your original ROM dump file is left unmodified.

If your current ROM does not appear to be properly formatted, or it does not contain the AMD Reference code, FixRX6x00ROM will display an appropriate message and do nothing else. If the patcher fails for your ROM, please zip up the ROM dump and PM it to me. I'll take a look at it when I can.

If FixRX6x00ROM successfully patches your ROM, you can then flash the patched ROM back to your video card (again, using whatever means you determine to be appropriate), and it should then work with MacOS. IMPORTANT NOTE: apparently, for the RX6x00(XT) to work with MacOS, you'll need to be running OpenCore, WhateverGreen, Lilu, and include agdpmod=pikera in your boot-args. Failure to do this will almost certainly result in a black screen after booting. (Again, I don't have a card to play with, so any questions regarding the boot-args or the specific configuration of OpenCore, WhateverGreen, and/or Lilu need to be asked of someone else.)

The patch itself is only five bytes. The EFI code in the ROM is compressed, though, so making any change causes the entire EFI section to change - that's why, if you compare your original ROM file and the patched ROM file, you'll see a lot more than 5 bytes changed.

IMPORTANT: This patch does not attempt to provide pre-boot support (e.g. it won't let you see the native Apple boot picker). If you require that, MVC apparently provides that functionality. This patch simply fixes the bug in the AMD code that prevented the card from booting properly. With the patch, these cards should behave just like any other non-Mac video card - black screen until either OpenCore initializes or the MacOS drivers load.
ALSO: The patch does not modify clock speeds, temperature thresholds, timing data, or anything other than the EFI initialization process - if you've tweaked your card, the tweaks should still be there after patching (alternatively, you can tweak the card after patching as well, assuming your tweak program doesn't overwrite the patch).

The patched ROMs have also been tested on a non-Mac system. The nature of the patch is such that it shouldn't affect operation on non-Mac systems (i.e. it should work just fine on a Windows or Linux system), and small-scale testing supports that. I'm interested to hear if anyone finds an exception where a non-Mac doesn't work properly.

And before anyone asks: even though patching the Mac Pro BootROM seems like the cleaner solution (which would allow these cards to work unmodified), that's a much larger project that creates some new problems of its own. In this case, patching individual cards is actually the better solution, at least IMHO.

Courtesy of @caingraywood:

1650536306200-png.1994480

1650524931122-png.1994432

1650524963695-png.1994433


And now, back to the AVX integration problem that's been driving me up the wall...
Awesome work, thanks! Waiting for the benchmarks, I have RVII and I wonder if it would be any gains if I will upgrade
 

Stex

macrumors 6502
Jan 18, 2021
280
189
NYC
I have created a patch that allows AMD RX6600/RX6800/RX6900 cards to work on a Mac Pro 4,1/5,1 (and maybe a 3,1?

Heartfelt thanks @Syncretic! Indeed amazing work!

I don't have an RX6xxx card at the moment, but I am hoping to trade/exchange one of my PC cards (RTX3060) with a RX6xxx card equivalent at some point soon. Whenever this happens I will be more than happy to test your new patch on the cMP!
 

mattspace

macrumors 68040
Jun 5, 2013
3,344
2,975
Australia
IMPORTANT: This patch does not attempt to provide pre-boot support (e.g. it won't let you see the native Apple boot picker). If you require that, MVC apparently provides that functionality.
Forgive me a bit of cluelessness, but if OpenCore is necessary to run a MacOS version which supports that card, and OpenCore provides provides pre-boot functionality, what is the MVC(E) "bootscreen" mod actually doing?
 
  • Like
Reactions: Ashok.Vardhan

startergo

macrumors 603
Sep 20, 2018
5,021
2,283
I have created a patch that allows AMD RX6600/RX6800/RX6900 cards to work on a Mac Pro 4,1/5,1 (and maybe a 3,1? I have no idea if that's even possible). I examined ROM dumps of RX6600/6600XT and RX6800/6800XT/6900XT from various manufacturers, and every one I looked at used the same (broken) AMD reference code in the x86_64 EFI section (the manufacturer-specific differences are in the non-EFI section). While it's certainly possible that some cards won't do that, it looks like a one-size-fits-all patch may be possible here. (As with all such things, this comes without any warranty, use at your own risk, the usual caveats apply.)

I do not possess an RX6x00 card to test with. @caingraywood was generous enough to perform tests on his XFX SWFT309 RX6800XT and Sapphire Nitro+ RX6900XT cards. Many thanks to him.
(NOTE that this has been tested on RX6800XT and RX6900XT, but the RX6600/6600XT has NOT yet been tested. There is no reason it shouldn't work, but you should be aware that if you try it, you're the tester. Please let me know if you do try an RX6600/6600XT.)

Because I don't have one of these cards, I can't offer any real assistance with the flashing process. As I understand it, the ATIflash/AMDVBFlash utilities will work with the RX6x00 cards, but you'll need to investigate this on your own (and hopefully post your findings here, so others can benefit as well). (Note that @caingraywood was using a hardware flasher for his tests, so I don't think he can offer software flashing advice, either.)

Attached is a ZIP file containing a MacOS program named FixRX6x00ROM. It's a command-line program you run from a Terminal session. You should not need any special permissions; however, programs sometimes lose their executable mode bits when using ZIP, so you may need to execute chmod 755 FixRX6x00ROM after unzipping.

You'll need to acquire a dump of your current ROM, using whatever means you have available (ATIflash/AMDVBFlash/other). Once you have that, make a copy and put it somewhere safe, then you can run ./FixRX6x00ROM {filename} from a Terminal session (e.g. ./FixRX6x00ROM RX6800XT.XFX.SWFT309.original.BIN)

FixRX6x00ROM does the following:
  • Reads the dump of your current ROM, verifies that it's of the expected format
  • Searches the dump of your current ROM for the AMD Reference code (6600 or 6800/6900).
  • If the AMD Reference code is found, replaces it with the correct (6600 or 6800/6900) patched code.
  • Creates a patched file named the same as the original, but with ".PATCHED" appended (e.g. RX6800XT.XFX.SWFT309.original.BIN.PATCHED). Your original ROM dump file is left unmodified.

If your current ROM does not appear to be properly formatted, or it does not contain the AMD Reference code, FixRX6x00ROM will display an appropriate message and do nothing else. If the patcher fails for your ROM, please zip up the ROM dump and PM it to me. I'll take a look at it when I can.

If FixRX6x00ROM successfully patches your ROM, you can then flash the patched ROM back to your video card (again, using whatever means you determine to be appropriate), and it should then work with MacOS. IMPORTANT NOTE: apparently, for the RX6x00(XT) to work with MacOS, you'll need to be running OpenCore, WhateverGreen, Lilu, and include agdpmod=pikera in your boot-args. Failure to do this will almost certainly result in a black screen after booting. (Again, I don't have a card to play with, so any questions regarding the boot-args or the specific configuration of OpenCore, WhateverGreen, and/or Lilu need to be asked of someone else.)

The patch itself is only five bytes. The EFI code in the ROM is compressed, though, so making any change causes the entire EFI section to change - that's why, if you compare your original ROM file and the patched ROM file, you'll see a lot more than 5 bytes changed.

IMPORTANT: This patch does not attempt to provide pre-boot support (e.g. it won't let you see the native Apple boot picker). If you require that, MVC apparently provides that functionality. This patch simply fixes the bug in the AMD code that prevented the card from booting properly. With the patch, these cards should behave just like any other non-Mac video card - black screen until either OpenCore initializes or the MacOS drivers load.
ALSO: The patch does not modify clock speeds, temperature thresholds, timing data, or anything other than the EFI initialization process - if you've tweaked your card, the tweaks should still be there after patching (alternatively, you can tweak the card after patching as well, assuming your tweak program doesn't overwrite the patch).

The patched ROMs have also been tested on a non-Mac system. The nature of the patch is such that it shouldn't affect operation on non-Mac systems (i.e. it should work just fine on a Windows or Linux system), and small-scale testing supports that. I'm interested to hear if anyone finds an exception where a non-Mac doesn't work properly.

And before anyone asks: even though patching the Mac Pro BootROM seems like the cleaner solution (which would allow these cards to work unmodified), that's a much larger project that creates some new problems of its own. In this case, patching individual cards is actually the better solution, at least IMHO.

Courtesy of @caingraywood:

1650536306200-png.1994480

1650524931122-png.1994432

1650524963695-png.1994433


And now, back to the AVX integration problem that's been driving me up the wall...

[EDIT (for clarity): that last sentence refers to my AVX emulator, which is an entirely separate project that has nothing to do with the RX6x00 patch. I only detoured into the RX6x00 code because I was frustrated with the AVX project.]
Good job. There is a similar tool and it keeps getting updated. This seems to be the latest update, but I am not sure if it includes ROM's GOP update for AMD 6000 cards.
 
  • Like
Reactions: Ashok.Vardhan

Stex

macrumors 6502
Jan 18, 2021
280
189
NYC
Forgive me a bit of cluelessness, but if OpenCore is necessary to run a MacOS version which supports that card, and OpenCore provides provides pre-boot functionality, what is the MVC(E) "bootscreen" mod actually doing?

That's a good question and I asked myself the same. So I looked at MVC(E) website and they state, first:
Native EFI boot screen. You no longer need any software patches to see boot picker or boot screen.

But then right after that, they state:
Patcher is only need for macOS installation. Only our modified cards are able to work normally in these models. Standard PC cards won't even boot inside Mac Pro. Supports macOS Big Sur 11.4 or later and macOS Monterery 12.0.1 or later (12.2.1 recommended). Also supports Windows 10/11 in UEFI mode.

So, there is some additional "patch" that is "only" needed for macOS installation. We can only assume that such patch is unrelated to the patched GPU ROM itself? They don't specify what that "patch" is. I don't really know and the following is speculation only, but I can only guess that such patch is some form of OpenCore embedded within a plain looking installer that then sits silently in the background, while the "flashed" card apparently/supposedly boots "normally" cMPs while running macOS 11.x.x/12.x.x. If so, then let's at least hope they give credit to all the genrerous OC developers who made/make that happen, and why not, also share some of the pie with them too.
 

iAssimilated

Contributor
Apr 29, 2018
1,286
6,421
the PNW
For someone wanting to upgrade to a RX 6800 XT, is Big Sur or Monterey the best choice? I would be using it in a Razor Core X eGPU connected to a 2018 Mac mini. I am currently using a RX Vega 56 with Big Sur and everything has been great.
 

Spacedust

macrumors 65816
May 24, 2009
1,005
160
I don't see the reason to update from RVII for now, maybe other detailed benchmark will change my mind.
I think with updating to 12.3.1 the performance of RVII could be a little better maybe.

View attachment 1994029
This benchmark doesn't work well under macOS. If you use the same benchmark in the same resolution under Windows there is a much better result. It's so old it even cannot detect Windows 10 properly showing it as Windows 8.

valley.jpg
 

macsoundsolutions

macrumors regular
Jan 12, 2010
205
101
Forgive me a bit of cluelessness, but if OpenCore is necessary to run a MacOS version which supports that card, and OpenCore provides provides pre-boot functionality, what is the MVC(E) "bootscreen" mod actually doing?

Oops I see this was answered by Stex already. A QUOTE from MacVdCards Europe "Native EFI boot screen. You no longer need any software patches to see boot picker or boot screen. Patcher is only need for macOS installation." Check out their add here. https://www.ebay.com/itm/284769834426?_trkparms=ispr=1&hash=item424d9ad5ba:g:hioAAOSw2EtiWumO&amdata=enc:AQAGAAAA4DJGFUCg2U2MT4dmTGN1CAFwdyDti45ja9tUqLet7x0WdpNq0/LQeS8E14kRaU42cthRTbu1RyeZ2TEuC1y4zlcqGWAU2Oxyho4RiC3+SZp9bY9bbZjo3lCyq5D6Lkx2JgkgpGwYd6Q+lhnQtetkxi5kBjV83PPbh+ln9HoXhEHBeOhcqTlQEX1GHoe21D12/wq94P+uZSbOVgC3tFbVZWldAFc8Tx56oDzduc0z0ZHpwxbpdnX3ZuXeQhSEgfFZhk1pWTZXJPO2V0ldxyXGJ3huelc3oAIsFHrkKOr9fCxj|tkp:BFBMsrmiqIpg
 
Last edited:

macsoundsolutions

macrumors regular
Jan 12, 2010
205
101
I have created a patch that allows AMD RX6600/RX6800/RX6900 cards to work on a Mac Pro 4,1/5,1 (and maybe a 3,1? I have no idea if that's even possible). I examined ROM dumps of RX6600/6600XT and RX6800/6800XT/6900XT from various manufacturers, and every one I looked at used the same (broken) AMD reference code in the x86_64 EFI section (the manufacturer-specific differences are in the non-EFI section). While it's certainly possible that some cards won't do that, it looks like a one-size-fits-all patch may be possible here. (As with all such things, this comes without any warranty, use at your own risk, the usual caveats apply.)

I do not possess an RX6x00 card to test with. @caingraywood was generous enough to perform tests on his XFX SWFT309 RX6800XT and Sapphire Nitro+ RX6900XT cards. Many thanks to him.
(NOTE that this has been tested on RX6800XT and RX6900XT, but the RX6600/6600XT has NOT yet been tested. There is no reason it shouldn't work, but you should be aware that if you try it, you're the tester. Please let me know if you do try an RX6600/6600XT.)

Because I don't have one of these cards, I can't offer any real assistance with the flashing process. As I understand it, the ATIflash/AMDVBFlash utilities will work with the RX6x00 cards, but you'll need to investigate this on your own (and hopefully post your findings here, so others can benefit as well). (Note that @caingraywood was using a hardware flasher for his tests, so I don't think he can offer software flashing advice, either.)

Attached is a ZIP file containing a MacOS program named FixRX6x00ROM. It's a command-line program you run from a Terminal session. You should not need any special permissions; however, programs sometimes lose their executable mode bits when using ZIP, so you may need to execute chmod 755 FixRX6x00ROM after unzipping.

You'll need to acquire a dump of your current ROM, using whatever means you have available (ATIflash/AMDVBFlash/other). Once you have that, make a copy and put it somewhere safe, then you can run ./FixRX6x00ROM {filename} from a Terminal session (e.g. ./FixRX6x00ROM RX6800XT.XFX.SWFT309.original.BIN)

FixRX6x00ROM does the following:
  • Reads the dump of your current ROM, verifies that it's of the expected format
  • Searches the dump of your current ROM for the AMD Reference code (6600 or 6800/6900).
  • If the AMD Reference code is found, replaces it with the correct (6600 or 6800/6900) patched code.
  • Creates a patched file named the same as the original, but with ".PATCHED" appended (e.g. RX6800XT.XFX.SWFT309.original.BIN.PATCHED). Your original ROM dump file is left unmodified.

If your current ROM does not appear to be properly formatted, or it does not contain the AMD Reference code, FixRX6x00ROM will display an appropriate message and do nothing else. If the patcher fails for your ROM, please zip up the ROM dump and PM it to me. I'll take a look at it when I can.

If FixRX6x00ROM successfully patches your ROM, you can then flash the patched ROM back to your video card (again, using whatever means you determine to be appropriate), and it should then work with MacOS. IMPORTANT NOTE: apparently, for the RX6x00(XT) to work with MacOS, you'll need to be running OpenCore, WhateverGreen, Lilu, and include agdpmod=pikera in your boot-args. Failure to do this will almost certainly result in a black screen after booting. (Again, I don't have a card to play with, so any questions regarding the boot-args or the specific configuration of OpenCore, WhateverGreen, and/or Lilu need to be asked of someone else.)

The patch itself is only five bytes. The EFI code in the ROM is compressed, though, so making any change causes the entire EFI section to change - that's why, if you compare your original ROM file and the patched ROM file, you'll see a lot more than 5 bytes changed.

IMPORTANT: This patch does not attempt to provide pre-boot support (e.g. it won't let you see the native Apple boot picker). If you require that, MVC apparently provides that functionality. This patch simply fixes the bug in the AMD code that prevented the card from booting properly. With the patch, these cards should behave just like any other non-Mac video card - black screen until either OpenCore initializes or the MacOS drivers load.
ALSO: The patch does not modify clock speeds, temperature thresholds, timing data, or anything other than the EFI initialization process - if you've tweaked your card, the tweaks should still be there after patching (alternatively, you can tweak the card after patching as well, assuming your tweak program doesn't overwrite the patch).

The patched ROMs have also been tested on a non-Mac system. The nature of the patch is such that it shouldn't affect operation on non-Mac systems (i.e. it should work just fine on a Windows or Linux system), and small-scale testing supports that. I'm interested to hear if anyone finds an exception where a non-Mac doesn't work properly.

And before anyone asks: even though patching the Mac Pro BootROM seems like the cleaner solution (which would allow these cards to work unmodified), that's a much larger project that creates some new problems of its own. In this case, patching individual cards is actually the better solution, at least IMHO.

Courtesy of @caingraywood:

1650536306200-png.1994480

1650524931122-png.1994432

1650524963695-png.1994433


And now, back to the AVX integration problem that's been driving me up the wall...

[EDIT (for clarity): that last sentence refers to my AVX emulator, which is an entirely separate project that has nothing to do with the RX6x00 patch. I only detoured into the RX6x00 code because I was frustrated with the AVX project.]
Very cool! I am a bit confused on the flashing process though. Do you dump your GPUs rom in windows then bring it over to Mac OS and run the terminal program, then bring the new rom back into Windows to Flash the GPU?
 
Last edited:

prefuse07

Suspended
Jan 27, 2020
895
1,073
San Francisco, CA
I have created a patch that allows AMD RX6600/RX6800/RX6900 cards to work on a Mac Pro 4,1/5,1 (and maybe a 3,1? I have no idea if that's even possible). I examined ROM dumps of RX6600/6600XT and RX6800/6800XT/6900XT from various manufacturers, and every one I looked at used the same (broken) AMD reference code in the x86_64 EFI section (the manufacturer-specific differences are in the non-EFI section). While it's certainly possible that some cards won't do that, it looks like a one-size-fits-all patch may be possible here. (As with all such things, this comes without any warranty, use at your own risk, the usual caveats apply.)

I do not possess an RX6x00 card to test with. @caingraywood was generous enough to perform tests on his XFX SWFT309 RX6800XT and Sapphire Nitro+ RX6900XT cards. Many thanks to him.
(NOTE that this has been tested on RX6800XT and RX6900XT, but the RX6600/6600XT has NOT yet been tested. There is no reason it shouldn't work, but you should be aware that if you try it, you're the tester. Please let me know if you do try an RX6600/6600XT.)

Because I don't have one of these cards, I can't offer any real assistance with the flashing process. As I understand it, the ATIflash/AMDVBFlash utilities will work with the RX6x00 cards, but you'll need to investigate this on your own (and hopefully post your findings here, so others can benefit as well). (Note that @caingraywood was using a hardware flasher for his tests, so I don't think he can offer software flashing advice, either.)

Attached is a ZIP file containing a MacOS program named FixRX6x00ROM. It's a command-line program you run from a Terminal session. You should not need any special permissions; however, programs sometimes lose their executable mode bits when using ZIP, so you may need to execute chmod 755 FixRX6x00ROM after unzipping.

You'll need to acquire a dump of your current ROM, using whatever means you have available (ATIflash/AMDVBFlash/other). Once you have that, make a copy and put it somewhere safe, then you can run ./FixRX6x00ROM {filename} from a Terminal session (e.g. ./FixRX6x00ROM RX6800XT.XFX.SWFT309.original.BIN)

FixRX6x00ROM does the following:
  • Reads the dump of your current ROM, verifies that it's of the expected format
  • Searches the dump of your current ROM for the AMD Reference code (6600 or 6800/6900).
  • If the AMD Reference code is found, replaces it with the correct (6600 or 6800/6900) patched code.
  • Creates a patched file named the same as the original, but with ".PATCHED" appended (e.g. RX6800XT.XFX.SWFT309.original.BIN.PATCHED). Your original ROM dump file is left unmodified.

If your current ROM does not appear to be properly formatted, or it does not contain the AMD Reference code, FixRX6x00ROM will display an appropriate message and do nothing else. If the patcher fails for your ROM, please zip up the ROM dump and PM it to me. I'll take a look at it when I can.

If FixRX6x00ROM successfully patches your ROM, you can then flash the patched ROM back to your video card (again, using whatever means you determine to be appropriate), and it should then work with MacOS. IMPORTANT NOTE: apparently, for the RX6x00(XT) to work with MacOS, you'll need to be running OpenCore, WhateverGreen, Lilu, and include agdpmod=pikera in your boot-args. Failure to do this will almost certainly result in a black screen after booting. (Again, I don't have a card to play with, so any questions regarding the boot-args or the specific configuration of OpenCore, WhateverGreen, and/or Lilu need to be asked of someone else.)

The patch itself is only five bytes. The EFI code in the ROM is compressed, though, so making any change causes the entire EFI section to change - that's why, if you compare your original ROM file and the patched ROM file, you'll see a lot more than 5 bytes changed.

IMPORTANT: This patch does not attempt to provide pre-boot support (e.g. it won't let you see the native Apple boot picker). If you require that, MVC apparently provides that functionality. This patch simply fixes the bug in the AMD code that prevented the card from booting properly. With the patch, these cards should behave just like any other non-Mac video card - black screen until either OpenCore initializes or the MacOS drivers load.
ALSO: The patch does not modify clock speeds, temperature thresholds, timing data, or anything other than the EFI initialization process - if you've tweaked your card, the tweaks should still be there after patching (alternatively, you can tweak the card after patching as well, assuming your tweak program doesn't overwrite the patch).

The patched ROMs have also been tested on a non-Mac system. The nature of the patch is such that it shouldn't affect operation on non-Mac systems (i.e. it should work just fine on a Windows or Linux system), and small-scale testing supports that. I'm interested to hear if anyone finds an exception where a non-Mac doesn't work properly.

And before anyone asks: even though patching the Mac Pro BootROM seems like the cleaner solution (which would allow these cards to work unmodified), that's a much larger project that creates some new problems of its own. In this case, patching individual cards is actually the better solution, at least IMHO.

Courtesy of @caingraywood:

1650536306200-png.1994480

1650524931122-png.1994432

1650524963695-png.1994433


And now, back to the AVX integration problem that's been driving me up the wall...

[EDIT (for clarity): that last sentence refers to my AVX emulator, which is an entirely separate project that has nothing to do with the RX6x00 patch. I only detoured into the RX6x00 code because I was frustrated with the AVX project.]

Syncretic, many thanks for your hard work! I hope you can get your hands on an RX-6800XT or 6900XT, so that you may be able to enjoy your own work!

I am thinking of giving this a shot, so will be in touch if I do end up acquiring a suitable card, and am able to get this working correctly.

Thanks again for your hard work!!!! This community owes you a debt of gratitude!
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.