For anyone who suffer from the flickering with the HD7950 Mac Edition. I would like to introduce a work around for this problem. You may use it until Apple fix the driver.
How it works?
There are 3 profiles in the 7950 Mac Edition card. GPU/VRAM clock at 300/150, 501/1250, and 800/1250. The follow procedure is the way to virtually disable the 501/1250 state. In my own test, by disabling one of the low performance profile, there will be no flickering occur (disable 300/150), or greatly reduced to a level that may be one flickering per few days (disable 501/1250).
However, if we disable the 300/150 profile, we will make the card idle at 501/1250. Which will draw much more power than 300/150 (~18W vs ~52W), and make the card warmer (~55C) which cause the PCIe fan higher at idle(~830RPM). So I decided to disable the 501/1250 state, and make it only run at either 300/150 or 800/1250. Even though this can only alleviate the problem but not really fix it.
Please read carefully before you try this fix, it may brick your card!!!
Software Required
A)
GPU-Z, only works in Windows.
B) For hex editing, I personally use
HexMiner (a free software from AppStore).
C) To flash the card. I use
AtiWinFlash. This tools ONLY works in Windows (NOT working in any VM e.g. Parallel). You may use AtiFlash in DOS.
This ONLY works for the 7950 Mac Edition, and use at your own risk!
1) Boot your Mac into Windows
2) Use GPU-Z to save the ROM image
3) Make sure it's size is 128k
4) Backup this ROM image x2 (this is your native Mac EFI ROM image, we won't touch this ROM as a safe precaution).
5) Open the case, flip the switch on the card to the UEFI BIOS. I did that without shutdown the computer. However, if you want to play safe. Shut it down, flip the switch, and then boot into Windows again (no boot screen).
6) Use GPU-Z to save the ROM image again + check 128k + backup x2 (this is the UEFI ROM, we will flash our custom ROM to cover it).
-------------------------------------
7) Boot into OSX (no bootscreen)
8) Download HexMiner from Appstore.
9) Open the Mac EFI ROM image by HexMiner.
10) On the top left, enter location B005, you should see something like this. If not, make sure it's in "hex" mode, not "txt" mode (upper right corner).
11) click "update" (next to the windows you enter "b005").
12) edit the 1st 8 pairs of the numbers of the first and second row, make it exactly the same as the 3rd row (ONLY the 1st 8 pairs of the number, should looks like the following image).
13) save this image to a NEW rom file (e.g. fixed.rom)
14) reboot into Windows (still no bootscreen yet)
N.B. You may use any Hex editior to finish the same job between procedure 7-14 in Windows, and no need to boot into OSX (or reboot) through out the whole procedure.
---------------------------------------------------
15) Open AtiWinFlash (as admin if applicable)
16) click "load image" to open fixed.rom in AtiWinFlash
17) Click "program"
18) Wait and DO NOT TOUCH anything until it finish (may take up to few minutes)
N.B. At this point, the procedure is done. If you want to do some test, you may do the following. Otherwise, you can boot back to OSX and the card should be flickering free.
19) reboot in to Windows after the flash completed (Should have bootscreen)
20) Open GPU-Z to monitor the graphic card.
21) Check the GPU frequency is at 300
22) Load it up by furmark, and check the GPU frequency switch to 800.
23) open IE and scroll through facebook, make sure the GPU either idle at 300 or switch to 800 and NEVER get into 501MHz.
If your card perform as expected. You may now reboot back to OSX, and may have a flickering free HD7950 Mac Edition card (or much less flickering).
-----------------------------------------------
For anyone who only want the ROM image file. Here you are.
View attachment 7950_var_clock.rom.zip
However, this ROM image MAY NOT fit your card. It's because apart from the above modification, I further lower the voltage to 0.981V and made a custom fan profile to minimise the fan noise (this will make your card run cooler and quieter). Even though this voltage should be good for almost all 7950 Mac Edition card. I still recommend that you use Afterburner in Windows to manually set the voltage to 0.981V, and run some tests to make sure your card is stable for that (e.g. a 5min OCCT error test).
If you just want a quick fix, you may simply download this ROM image file and flash it to your card (recommended you backup the UEFI ROM and cover it, but NOT cover the native Mac ROM).
-----------------------------------------------
Last but not least, if you prefer to run the card only at 501/1250 and 800/1250 (disable the 300/150 state), here is the ROM image. This ROM should 100% fix the problem, but consume more power when idle.
View attachment 7950_fix_clock.rom.zip
or
Hex edit your own ROM image address B008 with "E8 01"
In this case, you can check if the GPU idle at 501/1250 in GPU-Z right after reboot.
--------------------------------
If you want to go back to the stock setting, you can simply flip the switch back to the native Mac ROM and reboot the machine.
Again, I personally recommend to try disable the 501/1250 state first. Even though it may not able to entirely solve the problem. It's a more balanced solution between reduce flickering and minimise the power consumption. Only if it doesn't work, then fix the VRAM at 1250MHz. This is a 100% working solution, but will make the card consume ~200% more power at idle.
N.B. This flickering will only occur in single monitor setup. For those who has multiple monitors connected to the card. Your 7950 will automatically disable the 300/150MHz profile. That means your card won't suffer from the flickering issue, but also has higher idle power consumption.