NVidia Driver Bug with 2 displays

We are developing OpenGL window application and getting a strange bug when there are two displays in system with NVidia videocard.

When I drag-and-drop a window to the second display, part of the window that is placed on second display is not refreshed (Windows XP SP2/GeForce 8800GT) or rendertarget-textures are black (Windows XP SP2/GeForce 8600GT). We are using FBO for offscreen-rendering and detaching texture from FBO after every rendering to FBO.

Popular OpenGL applications, such as Tropics Demo (in OpenGL mode), work exactly the same in window mode on these configurations.

With ATI videocards on 2-displays systems everything is ok.

We suggest that this is NVidia driver bug. Driver version is 181.20.

We would appreacate a lot if anyone knows workaround for this bug.

Are you using Dualview or horizontal span? Dualview tends to give errors like this a lot.

Dualview. Anyway, DX applications are working well in dualview, that’s why I think OpenGL applications must be working well too.

no, opengl applications aren’t “working well”. These are OpenGL’s Betamax days (on Windows).

Try to enable “Multi Display Performance Mode” in the NVidia Control Panel and see if it helps…

Try to change “HW Acceleration” options in driver control panel. 6 months ago I set up system with 3x GF8500 and 6 monitors attached on it and OpenGL application works perfectly over all monitors. This mean NV driver can span OpenGL context across several NV devices and maintain resources properly.

it’s a driver bug
i’ve had the same problem.

Look at the driver release notes. I seem to recall there was a mention of a problem with dual-view. I can’t remember the details though.

Dammit. Two hours of debugging for the birds. I really should always consider that it’s not my fault. And I should ALWAYS go to the forums before starting to debug…

So I ran into this one too. It’s not fixed in the latest driver 182.06. Hardware is 7950GX2. And I can give some more hints:

Dragging a valid window to the second display, there’s not only weird update issues. When debugging, I’m asking glGetError after every single call, and I get an INVALID_OPERATION right after the first GL command (can be glPushAttrib or glGenLists, doesn’t matter). Looks a little bit like the context has been corrupted. wglMakeCurrent results TRUE, but the next call that requires a valid context fails.

This ONLY happens in dualview AND “multi display performance mode”. Compatibility and single modes work well. Also, this only happens, when the view is entirely moved to the second display. The error occures exactly when the window leaves the first display.

Now let me speak out the magic words: It’s your turn, NVIDIA. :wink: