When my application goes into a fullscreen state my movement is not smooth. It seems like frames are not rendered in the correct order, doing something like: 1, 3, 2, 4, 6, 5, ... making the movement flicker.

For my PIX test, I draw really a low number of primitives (1140 triangle exactly) inside six vertex / index buffers. I clearly see a difference in the GPU frame "ordering" in PIX. Here is the result when in windowed mode:

PIX screenshot1 http://www.s33m3.be/PIX/PIX2.png

You can see that the GPU time needed for the frame is nearly in sync with the CPU time needed to generate it.

But in the fullscreen state here is what I got (same scene, without camera movement):

PIX screenshot2 http://www.s33m3.be/PIX/PIX.png

You can see that each GPU frame processing is split into at least two parts, and the GPU doesn't wait the end of a frame before starting another one.

What could cause this?

  • \$\begingroup\$ Are you threading your update and render calls? Is it possible that the update it getting ahead of the render and that there needs to be some frames dropped to keep things in sync? The XNA framework has this type of functionality built in to track if there are too many updates and if the draw is getting behind. Also something to consider would be if this can be related to vsync being turned on/off. \$\endgroup\$
    – mikeschuld
    Commented Aug 15, 2011 at 21:47

1 Answer 1


I swear I added this an answer to this question back closer to when it was originally asked...

Check the "max frames to render ahead" setting in the NVIDIA Control Panel, or whatever the comparable setting in the AMD drivers is if using an AMD card.

I believe it defaults to 3, which would correspond exactly to what PIX is showing you (the GPU is rendering 3 frames ahead of what it's currently displaying).


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .