Strange D3D issue.

Started by
2 comments, last by Alessandro101 1 year, 4 months ago

I have a small application in fullscreen. Backbuffer with flip.
The function that causes trouble is a simple system to show a part of the primary surface with magnification.

For this a part of the primary surface is copied into a texture surface use BltFast(). (This part works always)
Then this texture is put onto the primary surface using DirectX 3D drawing functions drawing 2 triangles forming a square.

Now the strange part. On 2 out of 4 computers, this does work perfectly. On the other computers the 2nd step is executed, but does not appear on the primary surface.
All return values are 0 in all cases, indicating no error was encountered.
What can cause the 3D drawing not to appear on the target surface on just some of my computers while there is no error code returned by any of the involved functions?

Advertisement

You can try to run the test application in Renderdoc, and inspect what's happening with the buffers. Would be especially useful to try on one of the machines where you don't see the expected result.

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

The primary surface buffer is not undergoing any change on the computers that show no result on screen. I did lock the surface just after execution and accessed the surface's pixels. No change was done.
Changing the render target, setting a new viewport and drawing the primitives all do return DD_OK. It is just not actually done on some of the computers.
I did a workaround by rendering on the backbuffer instead and using BltFast() to bring the graphics onto the primary surface, but the solution is suboptimal since there is of course some flickering due to the increased delay in execution.

This topic is closed to new replies.

Advertisement