How to determine driver problems?

This is a general question on how and when we can conclude that some OpenGL program is doing wrongly due to graphics card drivers. Consider the following situation.

Our binary renders some animation to a window on Windows (XP, Vista and Win7). It generally behaves as expected. However, there are some platforms on which black frames are observed, that is, the entire sequence shows up in a black window. Now, we found a few things:
a) There are no errors caught by either glGetError() or GetLastError() when the problem happens;
b) Using the same binary, certain platforms have this problem with certain display drivers. Most of times, installing a more recent display driver (other things unchanged) could make the problem disappear. But there are times where we need a particular released driver because the most recent driver gives black window problem.

Now, there’s a high chance that this is a driver problem. Then the next question is how to catch it, programmically? The worst case is to tell the computer to recognize unexpected black frames…:frowning:

Also, it could be our source codes problem. Maybe there are some lines we’ve missed…

you actually can’t. say you check for black frames in your code (which hits performance in some way) and after releasing your software the next driver on some users laptop will display red frames f.e. There is a reason many companies advice to update to latest drivers before using a software since chances are that some bugs are fixed.
To completely avoid driver issues you can switch to a software renderer which is much slower but gives proper results (for OpenGL software renderer check Mesa3D).

Hi _NK47,

I agree that detecting black frames is a stupid idea. But, we do have cases that the latest driver caused some problem but a previously released driver did the right thing.

Another example is that full screen preview shows a complete black screen but the frames rendered look correct if we dump them into jpg pictures.

Now, knowing that a driver update makes a problem go away, can we establish why the problem is resolved after the driver update?

Driver updates often fixes bugs as well as providing new functionalities. If a driver update fix some bugs you may consult the release notes.
In other cases, you have to isolate the origin of your issue disabling everything and enabling all again but step by step.

You can also use debugging and profiling tools like:

http://www.opengl.org/sdk/tools/GLIntercept/
http://www.opengl.org/sdk/tools/gDEBugger/

complete black screen but the frames rendered look correct if we dump them into jpg pictures

Mmh strange, there might be something in your code. It is possible you don’t explicitly ask for a needed feature, which is provided by default on some drivers, and not on others.

You may use glIntercept to trace your gl calls, check in particular the double buffer status, swap calls, front and back buffer rendering, …

  1. Can you be explicit on which platform + GPU + driver version do you experience this ?
  2. Can you list roughly what GL commands you use for rendering and dumping to image ?

agree, GLIntercept with all debug checks on, could be you swap in different thread which has no context. besides that your scene seems to render ok.

Thanks everyone.

One of the problem with nehe lesson 2 (http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=02) is that the gl window looks transparent. It happens on platform: Vista 32Bits + ASUS EN9500GT + the latest 185.85 driver.

Using GLIntercept on nehe lesson 2, I got some findings.

gliInterceptLog.txt gives something like:


===============================================================================
 GLIntercept version 0.5 Log generated on: Thu Jun 11 11:09:23 2009
 
===============================================================================

wglChoosePixelFormat(0x8012060,0x407038)
----->wglDescribePixelFormat(0x8012060,1,0,0x0000)=126 =7 
wglSetPixelFormat(0x8012060,7,0x407038)
----->wglDescribePixelFormat(0x8012060,7,40,0x3c4ff08)=126 =true 
wglCreateContext(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 
----->wglDescribePixelFormat(0x8012060,7,40,0x12fc94)=126 
----->wglGetPixelFormat(0x8012060)=7 
----->wglDescribePixelFormat(0x8012060,1,0,0x0000)=126 =0x10000 
wglMakeCurrent(0x8012060,0x10000)
----->wglGetPixelFormat(0x8012060)=7 
----->wglGetPixelFormat(0x8012060)=7 
----->wglDescribePixelFormat(0x8012060,1,0,0x0000)=126 =true 
glViewport(0,0,640,480)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glMultMatrixd([1.810660,0.000000,0.000000,0.000000,0.000000,2.414214,0.000000,0.000000,0.000000,0.000000,-1.002002,-1.000000,0.000000,0.000000,-0.200200,0.000000])
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glViewport(0,0,640,480)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glMultMatrixd([1.810660,0.000000,0.000000,0.000000,0.000000,2.414214,0.000000,0.000000,0.000000,0.000000,-1.002002,-1.000000,0.000000,0.000000,-0.200200,0.000000])
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glShadeModel(GL_SMOOTH)
glClearColor(0.000000,0.000000,0.000000,0.500000)
glClearDepth(1.000000)
glEnable(GL_DEPTH_TEST)
glDepthFunc(GL_LEQUAL)
glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST)
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 

While gliInterceptLog.txt from another PC which renders correctly gives something like:


===============================================================================
 GLIntercept version 0.5 Log generated on: Thu Jun 11 11:16:39 2009
 
===============================================================================

wglChoosePixelFormat(0x930119db,0x407038)
----->wglDescribePixelFormat(0x930119db,1,0,0x0000)=126 =7 
wglSetPixelFormat(0x930119db,7,0x407038)
----->wglDescribePixelFormat(0x930119db,7,40,0x3dcff08)=126 =true 
wglCreateContext(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglDescribePixelFormat(0x930119db,7,40,0x12fc94)=126 
----->wglGetPixelFormat(0x930119db)=7 
----->wglDescribePixelFormat(0x930119db,1,0,0x0000)=126 =0x10000 
wglMakeCurrent(0x930119db,0x10000)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 
----->wglDescribePixelFormat(0x930119db,1,0,0x0000)=126 =true 
glViewport(0,0,640,480)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glMultMatrixd([1.810660,0.000000,0.000000,0.000000,0.000000,2.414214,0.000000,0.000000,0.000000,0.000000,-1.002002,-1.000000,0.000000,0.000000,-0.200200,0.000000])
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glViewport(0,0,640,480)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glMultMatrixd([1.810660,0.000000,0.000000,0.000000,0.000000,2.414214,0.000000,0.000000,0.000000,0.000000,-1.002002,-1.000000,0.000000,0.000000,-0.200200,0.000000])
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glShadeModel(GL_SMOOTH)
glClearColor(0.000000,0.000000,0.000000,0.500000)
glClearDepth(1.000000)
glEnable(GL_DEPTH_TEST)
glDepthFunc(GL_LEQUAL)
glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST)
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT)
glLoadIdentity()
glTranslatef(-1.500000,0.000000,-6.000000)
glBegin(GL_TRIANGLES)
glVertex3f(0.000000,1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glEnd()
glTranslatef(3.000000,0.000000,0.000000)
glBegin(GL_QUADS)
glVertex3f(-1.000000,1.000000,0.000000)
glVertex3f(1.000000,1.000000,0.000000)
glVertex3f(1.000000,-1.000000,0.000000)
glVertex3f(-1.000000,-1.000000,0.000000)
glEnd()
wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 

Besides the difference in memory addresses, there’s one difference in the two gliInterceptLog.txt if you look carefully.

In gliInterceptLog.txt from the good run, the SwapBuffers block looks like


wglSwapBuffers(0x930119db)
----->wglGetPixelFormat(0x930119db)=7 
----->wglGetPixelFormat(0x930119db)=7 =true 

after some time.

However, in gliInterceptLog.txt from the bad run (transparent window), the SwapBuffers block is always:


wglSwapBuffers(0x8012060)
----->wglGetPixelFormat(0x8012060)=7 =true 

Does that extra line

----->wglGetPixelFormat(0x930119db)=7 

make a difference?

should not. also you should not capture multiple frames just set in the .ini file or debug checks on and see if it breaks on a piece of code, that will be your error.

I was using “gliConfig_FullDebug.ini” (copied and renamed to “gliConfig.ini” alongside the lesson2.exe). So does it mean the debug checks are on?

The above test was done against the nehe lesson 02. Even for the bad run (with transparent gl window), the binary runs with no crash or errors.

FullDebug - all checks are on. now start your project, it should break on any OpenGL error which should give you a clue why something is not swapping your buffers. this is just a check to know if errors occur in your OpenGL app. if no errors you might be still doing plenty of things wrong so debugging nehe tuts won’t give you much imho.

some other things to test driver problems:

  1. run your application in a software renderer, if it behaves different you have driver issues.
  2. test heavy cutting edge application (games) if you use same features. if they don’t run as expected chances are yours will too.
  3. there is an OpenGL to Direct3D wrapper switching the DLL’s and using Direct3D API. since D3D drivers are somewhere better and more robust you can see if this problem occurs on D3D wrapper instead.

I agree that there could be plenty of things wrong in our code. But as I already mentioned, that even nehe tutorials behave differently on that platform (transparent gl window), why would you think that debugging nehe tuts won’t give us much info?

I would think the first thing to do is to make nehe tuts run correctly on the problematic platform, you disagree?

sorry misread that. debugging simplier app is easier of course unless you know your program very well where to start, where it occurs. sounds like a general driver problem if couple applications tend to reproduce same artifacts. you can try to do a workaround of course but i recommend doing it with latest drivers at least.
p.s. never had any issues with buffer swaps on XP 32/64 and Vista 32/64 with various GFX cards. weird.

Never seen such problems myself (with all sorts of nvidia cards).

Again :

  1. Can you be explicit on which platform + GPU + driver version do you experience this problem ?

additionaly to ZbuffeR’s question: do you overclocked your system recently, rendering it unstable?

As I stated earlier, problematic platform: Vista 32Bits + ASUS EN9500GT + the latest 185.85 driver.

Didn’t overclock it recently. In fact, we did upgrade the graphics card from Quadro FX 550 to the EN9500GT this week. Previously everything was fine.

And Google earth also doesn’t render in OpenGL mode with the new card.

By the way, turning off Aero makes all the apps run correctly.

Hi, everyone still enjoying their weekends there?

Well, not a lot of possibilities …

  1. card update somehow messed up the deinstallation/reinstallation of the drivers. Try to remove it completely, and reinstall driver ?
  2. driver has a bug with your newer card
  3. driver has a bug with your newer card and Vista Aero

Can you afford a clean Vista install from scratch on a clean PC with this card ?

If standard uninstall does not work, try with a driver cleaner, this sort of tools.