I have been searching for a solution to a problem for a while now and i think iv narrowed it down to some sort of driver/opengl issue. You can read more about it here as i began thinking it was a issue with my timing code.
http://www.gamedev.net/topic/629585-jumpy-movement-with-fixed-timesteps/
Iv since come to the conclusion it must be some kind of driver issue or something.
Basically i get very erratic movement even in very simple code, simply drawing a box that moves from left to right using a fixed timestep with interpolation. It looks as if the box moved ahead of itself and then jumps back. If i turn off Desktop Composition i get very smooth movement.
I have tried the windowing setups in OpenTK as well as SFML.net and the same issue presents itself.
Is there any know issues with Desktop Composition/NVIDIA/OpenGL that might be causing this? I have tried the same code on an ATI card and had no problems. Sadly the NVIDIA forums are down or i would try there as well.
Specs
Win7 x64
NVIDIA 650 Ti and another PC with a little olderNVIDIA card with the same issue
OpenGL and Desktop Composition on NVIDIA
Weird applications like Desktop Composition.
Sometimes appears this issue even without these applications. It looks like when calling SwapBuffers(HDC) shows a result of previous (SwapBuffers(HDC) call, in other words - previous frame).
There are two ways I know that might be able to solve this:
1. Add flag PFD_SWAP_COPY to PIXELFORMATDESCRIPTOR.dwFlags;
2. Do update screen twice per frame:
(Looks ugly but works for me)
Best wishes, FXACE.
Sometimes appears this issue even without these applications. It looks like when calling SwapBuffers(HDC) shows a result of previous (SwapBuffers(HDC) call, in other words - previous frame).
There are two ways I know that might be able to solve this:
1. Add flag PFD_SWAP_COPY to PIXELFORMATDESCRIPTOR.dwFlags;
2. Do update screen twice per frame:
// [start of frame]
DrawSceneToFBO(); /* back buffer */
GoToScreenFBO();
DrawBackBufferToScreen(); /* draws a quad with back buffer texture into screen */
SwapBuffers(hDC);
DrawBackBufferToScreen(); /* draws a quad with back buffer texture into screen */
SwapBuffers(hDC);
// [end of frame]
(Looks ugly but works for me)
Best wishes, FXACE.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement