Possible Driver Bug on HD69xx cards - Timing and "clip" instruction
Couldn't find a developer relations contact like there used to be at ATI so I'm trying the public forums. I'm an engineer at Trion Worlds working on Defiance and some of our users have reported a bug in our game that I believe is related to the latest Catalyst drivers. Videos of the issue posted by a user can be found here.
The screen flicker only happens under Windows 8 64-bit, using HD6970 and HD6950 cards, with Catalyst 12.8-13.4 drivers. I've tested Catalyst 12.1-12.6 drivers and they work just fine.
I've narrowed the issue down to our UI code, which uses several "clip" instructions from within the pixel shader. The problem seems to surface when there is some kind of dialog box on top of the screen where the user is presented a choice. For example, on the Character Select screen in the first video, the problem occurs when the user hits the Esc key or clicks on Exit. It can also occur when the user clicks on Delete. These actions all bring up a confirmation dialog box. Within the game itself, the error occurs when the user tries to buy an item from a vendor. This brings up a confirmation dialog box as well.
Removing the "clip" instruction alleviates the problem somewhat, but not entirely. To see if it is timing related, I've tried to force a synchronization of the GPU and the CPU by copying data from the current render target to a system memory surface, locking the surface, then accessing its data. Doing this both before and after the UI draw call that renders the dialog box can fix the problem one day, but then something changes within the engine and the next day the problem is back again. I've managed to catch a few offending frames in PIX for Windows but they look good in PIX since PIX essentially runs a simulation of the pipeline, so it's timing is always perfect.
It's strange that this only happens on these two particular cards, under Windows 8, with Catalyst 12.8-13.4. Changing any one of these parameters makes the problem to go away.