A few days ago I posted in this forum trying to find a solution for my multihead problem. I mentioned that this problem appears on the AMD Embedded G-Series APU with AMD Radeon™ HD 6310 graphics.
Recently I noticed that it seems to be an general issue with AMD graphics on WinXP (not on Win7). An ATI Radeon HD5700 on a standard mainboard shows the same problems.
Again here's what I found so far:
There seems to be a problem in multihead mode. We noticed some undefined flickering on the edge of a simple rotating object (only on the second head). When we switched to DirectX debug mode (from the DirectX Control Panel) the whole object turned pink. The debug version of DirectX uses this color to fill the back buffer after a present so that we can check whether the whole back buffer is rendered. The strange thing is that the object is visible as a pink (very low resolution) silhouette although we clear the target completely before rendering the object (only on the second head again).
I found some workarounds for this:
-don't use D3DSWAPEFFECT_DISCARD (D3DSWAPEFFECT_FLIP or D3DSWAPEFFECT_COPY work)
-use triple buffering
-use a lockable back buffer (D3DPRESENTFLAG_LOCKABLE_BACKBUFFER) and lock/unlock the back buffer each frame
I found an old multihead example on the AMD website:
This sample code uses D3DSWAPEFFECT_FLIP and if changed to D3DSWAPEFFECT_DISCARD shows the same effect.
Can anybody reproduce this and present a solution?