As with flashing anything; please do this at your own risk. The instructions below have worked splendidly on my Sapphire Vapor-X Radeon HD 5870 1GB. I read about the .xml editing for Catalyst profiles and tried several other workarounds and/or fixes. This to me is the final say; the definitive solution for the notorious flicker bug on dual monitor setups while running a 5800 series GPU. As of this writing, I am running the latest drivers from AMD; Catalyst 11.8.
Tools needed: GPU-Z, RBE - Radeon BIOS editor, ATIFlash, and a bootable USB flash drive
1. Run GPU-Z and click on the button with the green arrow on the "BIOS Version" row. This will save your current BIOS. Name it "5870_original.bin" or anything you please.
2. Create a bootable USB flash drive and copy "5870_original.bin" onto it.
3. Run Radeon BIOS editor, click File, then Load BIOS, and select the BIOS you recently backed up. This will bring up all the necessary information of the original BIOS.
4. Click on "Clock settings" at the top and then head over to "Powerplay states structure" near the bottom in the middle of the application.
5. You will see "UVD". This is the culprit we want to tweak. Click on "UVD" and you will notice one of the clock infos light up at the top. In my case it was "Clock info 04" and it lit up neon green. We need to change the RAM MHz speed to match the stock memory clock. For example: my Sapphire Vapor-x 5870 has a stock memory clock of 1250 MHz (factory overclocked). Thus, we need to set my UVD memory clock to exactly 1250 MHz. If not sure of your stock speeds, go to the "AMD Overdrive" section of the Catalyst Control Center and find your memory clock under "High Performance Memory clock settings." The memory clock cycles to different states during 3D tasks or watching hardware accelerated videos. It drops down to 900 MHz on dual monitor setups when watching flash videos for example. This drop causes the infamous flicker. Preventing the drop to 900 MHz by forcing the stock memory speed (in this case 1250 MHz) in the UVD state, will stop this annoying flicker.
Here is how it looked before I changed the UVD clock:

After:

6. Once you have changed the memory clock for UVD, save the bios. Click the 2nd button on the bottom of the application and name it "5870_fix.bin" or anything other than the original name. You can save it as .rom as well.
7. Copy the newly edited BIOS file onto the boot flash drive. Copy “atiflash” to the flash drive as well.
8. Restart your system and boot into the flash drive and run:atiflash -p 0 5870_fix.bin
9. Once the flash has successfully completed, restart your machine. You should now have a flicker-free 5870.

Edited by Duknov007 - 3/26/13 at 10:15pm
Tools needed: GPU-Z, RBE - Radeon BIOS editor, ATIFlash, and a bootable USB flash drive
1. Run GPU-Z and click on the button with the green arrow on the "BIOS Version" row. This will save your current BIOS. Name it "5870_original.bin" or anything you please.
2. Create a bootable USB flash drive and copy "5870_original.bin" onto it.
3. Run Radeon BIOS editor, click File, then Load BIOS, and select the BIOS you recently backed up. This will bring up all the necessary information of the original BIOS.
4. Click on "Clock settings" at the top and then head over to "Powerplay states structure" near the bottom in the middle of the application.
5. You will see "UVD". This is the culprit we want to tweak. Click on "UVD" and you will notice one of the clock infos light up at the top. In my case it was "Clock info 04" and it lit up neon green. We need to change the RAM MHz speed to match the stock memory clock. For example: my Sapphire Vapor-x 5870 has a stock memory clock of 1250 MHz (factory overclocked). Thus, we need to set my UVD memory clock to exactly 1250 MHz. If not sure of your stock speeds, go to the "AMD Overdrive" section of the Catalyst Control Center and find your memory clock under "High Performance Memory clock settings." The memory clock cycles to different states during 3D tasks or watching hardware accelerated videos. It drops down to 900 MHz on dual monitor setups when watching flash videos for example. This drop causes the infamous flicker. Preventing the drop to 900 MHz by forcing the stock memory speed (in this case 1250 MHz) in the UVD state, will stop this annoying flicker.
Here is how it looked before I changed the UVD clock:
After:
6. Once you have changed the memory clock for UVD, save the bios. Click the 2nd button on the bottom of the application and name it "5870_fix.bin" or anything other than the original name. You can save it as .rom as well.
7. Copy the newly edited BIOS file onto the boot flash drive. Copy “atiflash” to the flash drive as well.
8. Restart your system and boot into the flash drive and run:atiflash -p 0 5870_fix.bin
9. Once the flash has successfully completed, restart your machine. You should now have a flicker-free 5870.

Edited by Duknov007 - 3/26/13 at 10:15pm




