Light and material BUG on NVidia GT6800

I have just found a serious bug on NVidia 6800GT HW with 61.77 drivers…

See the nextpost.

Ok. I think i have found a SERIOUS ??? HW bug in NVidia GT6800

I have made a small example that renders 4 objects with different materials. I have used tristrips and tris.

On most our test equip the program runs fine (ATI 9800, GForce 4, GForce 5, Irix HW) but not on Nvidia GT6800

The program sets the light and renders every even fram the objects in one order and in every odd frame in reversed order. On the GT6800 HW the image flickers where the correct light/material is only visible in every even pass. On the odd passes the materials and lights gets darkened on both front and back side ???

Here is the exact gl commands used and I have commented the sections so you can see the repeated and reversed code snippets…

 


wglMakeCurrent(0x0, 0x0)	// Closes previous

// ----- Setup view pass 1 ----

glDisable(GL_MULTISAMPLE)
glDepthMask(TRUE)
glShadeModel(GL_SMOOTH)
glEnable(GL_NORMALIZE)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glViewport(0, 0, 593, 574)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glClearColor(0.00, 0.00, 1.00, 1.00)
glClearDepth(1.00)
glClearStencil(0)
glClear(0x4500)

// Projection

glLoadMatrixf((14.39, 0.00, 0.00, 0.00)
(0.00, 14.87, 0.00, 0.00)
(0.00, 0.00, -1.00, -1.00)
(0.00, 0.00, -1.99, 0.00))
glFrontFace(GL_CW)

// Camera

glMatrixMode(GL_MODELVIEW)
glLoadMatrixf((0.92, -0.14, 0.36, 0.00)
(-0.00, 0.93, 0.36, 0.00)
(-0.38, -0.33, 0.86, 0.00)
(-0.00, -0.00, -139.28, 1.00))
glFrontFace(GL_CCW)
glEnable(GL_DEPTH_TEST)
glDisable(GL_FOG)
glDisable(GL_LIGHTING)
glDisable(GL_LIGHT0)
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, (0.20))
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1)
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1)
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, 33274)
glDisable(GL_LINE_STIPPLE)
glDepthFunc(GL_LEQUAL)
glDisable(GL_BLEND)
glDisable(GL_ALPHA_TEST)
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
glDisable(GL_CULL_FACE)
glColor4fv((1.00, 1.00, 1.00, 1.00))

// Global state

glPolygonMode(GL_FRONT, GL_FILL)
glEnable(GL_CULL_FACE)
glCullFace(GL_BACK)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_GEN_S)
glDisable(GL_TEXTURE_GEN_T)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_GEN_S)
glDisable(GL_TEXTURE_GEN_T)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_GEN_S)
glDisable(GL_TEXTURE_GEN_T)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_GEN_S)
glDisable(GL_TEXTURE_GEN_T)
glDisable(GL_TEXTURE_2D)
glDepthFunc(GL_LEQUAL)
glColorMask(TRUE, TRUE, TRUE, TRUE)

//Material Object 1

glColor4fv((1.00, 1.00, 1.00, 1.00))
glDisable(GL_COLOR_MATERIAL)
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (0.59, 0.59, 0.59, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (0.87, 0.87, 0.87, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (1.00, 1.00, 1.00, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (0.00, 0.00, 0.00, 1.00))
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 100.00)

// Light activation

glEnable(GL_LIGHTING)
glLoadMatrixf((0.92, -0.14, 0.36, 0.00)
(-0.00, 0.93, 0.36, 0.00)
(-0.38, -0.33, 0.86, 0.00)
(-0.00, -0.00, -139.28, 1.00))
glFrontFace(GL_CCW)
glLightfv(GL_LIGHT0, GL_POSITION, (24.95, 21.28, 49.03, 1.00))
glLightfv(GL_LIGHT0, GL_AMBIENT, (0.20, 0.20, 0.20, 1.00))
glLightfv(GL_LIGHT0, GL_DIFFUSE, (0.70, 0.70, 0.70, 1.00))
glLightfv(GL_LIGHT0, GL_SPECULAR, (0.50, 0.50, 0.50, 1.00))
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.00)
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.00)
glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.00)
glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 180.00)
glEnable(GL_LIGHT0)
glDisable(GL_FOG)

// Transform objects

glLoadMatrixf((8.65, -1.29, 3.37, 0.00)
(-0.00, 8.75, 3.37, 0.00)
(-3.61, -3.11, 8.08, 0.00)
(-0.19, -5.36, -141.23, 1.00))
glFrontFace(GL_CCW)

// Render object 1

glDisableClientState(GL_EDGE_FLAG_ARRAY)
glEnableClientState(GL_TEXTURE_COORD_ARRAY)
glTexCoordPointer(2, GL_FLOAT, 0, 0xD725E68)
glDisableClientState(GL_COLOR_ARRAY)
glEnableClientState(GL_NORMAL_ARRAY)
glNormalPointer(GL_FLOAT, 0, 0xD610B18)
glDisableClientState(GL_INDEX_ARRAY)
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_FLOAT, 0, 0xD690838)

glColor4fv((1.00, 1.00, 1.00, 1.00))
glDrawArrays(GL_TRIANGLE_STRIP, 0, 25)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)

// Material object 2

glColor4fv((1.00, 1.00, 1.00, 1.00))
glDisable(GL_COLOR_MATERIAL)
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (0.00, 0.00, 0.00, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (0.40, 0.42, 0.65, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (0.37, 0.37, 0.37, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (0.13, 0.13, 0.13, 1.00))
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 128.00)

// Render object 2

glDisableClientState(GL_EDGE_FLAG_ARRAY)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)
glEnableClientState(GL_COLOR_ARRAY)
glColorPointer(4, GL_FLOAT, 0, 0xD79D308)
glEnableClientState(GL_NORMAL_ARRAY)
glNormalPointer(GL_FLOAT, 0, 0xD79B9C0)
glDisableClientState(GL_INDEX_ARRAY)
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_FLOAT, 0, 0xD736D30)
glDrawArrays(GL_TRIANGLES, 0, 42)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)

// Material object 3

glColor4fv((1.00, 1.00, 1.00, 1.00))
glDisable(GL_COLOR_MATERIAL)
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (0.59, 0.59, 0.59, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (0.87, 0.87, 0.87, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (1.00, 1.00, 1.00, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (0.00, 0.00, 0.00, 1.00))
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 100.00)

// Render object 3

glDisableClientState(GL_EDGE_FLAG_ARRAY)
glEnableClientState(GL_TEXTURE_COORD_ARRAY)
glTexCoordPointer(2, GL_FLOAT, 0, 0xD8D0708)
glDisableClientState(GL_COLOR_ARRAY)
glEnableClientState(GL_NORMAL_ARRAY)
glNormalPointer(GL_FLOAT, 0, 0xD74C8F0)
glDisableClientState(GL_INDEX_ARRAY)
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_FLOAT, 0, 0xD88A580)
glColor4fv((1.00, 1.00, 1.00, 1.00))
glDrawArrays(GL_TRIANGLE_STRIP, 0, 25)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)

// Material object 4
glColor4fv((1.00, 1.00, 1.00, 1.00))
glDisable(GL_COLOR_MATERIAL)
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (0.00, 0.00, 0.00, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (0.40, 0.42, 0.65, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (0.37, 0.37, 0.37, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (0.13, 0.13, 0.13, 1.00))
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 128.00)

// Render object 4
glDisableClientState(GL_EDGE_FLAG_ARRAY)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)
glEnableClientState(GL_COLOR_ARRAY)
glColorPointer(4, GL_FLOAT, 0, 0xD651598)
glEnableClientState(GL_NORMAL_ARRAY)
glNormalPointer(GL_FLOAT, 0, 0xB4EA1E0)
glDisableClientState(GL_INDEX_ARRAY)
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_FLOAT, 0, 0xB4E9380)
glDrawArrays(GL_TRIANGLES, 0, 42)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)

// Prepare for next pass

glColorMask(TRUE, TRUE, TRUE, TRUE)
glDepthMask(TRUE)
glEnable(GL_DEPTH_TEST)
glFinish()
wglSwapBuffers(0x610106F1)
glGetError()
wglMakeCurrent(0x0, 0x0)


// ----- Setup view pass 2 ----

glDisable(GL_MULTISAMPLE)
glDepthMask(TRUE)
glShadeModel(GL_SMOOTH)
glEnable(GL_NORMALIZE)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glViewport(0, 0, 593, 574)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glClearColor(0.00, 0.00, 1.00, 1.00)
glClearDepth(1.00)
glClearStencil(0)
glClear(0x4500)

// Projection

glLoadMatrixf((14.39, 0.00, 0.00, 0.00)
(0.00, 14.87, 0.00, 0.00)
(0.00, 0.00, -1.00, -1.00)
(0.00, 0.00, -1.99, 0.00))
glFrontFace(GL_CW)

// Camera

glMatrixMode(GL_MODELVIEW)
glLoadMatrixf((0.92, -0.14, 0.36, 0.00)
(-0.00, 0.93, 0.36, 0.00)
(-0.38, -0.33, 0.86, 0.00)
(-0.00, -0.00, -139.28, 1.00))
glFrontFace(GL_CCW)
glEnable(GL_DEPTH_TEST)
glDisable(GL_FOG)
glDisable(GL_LIGHTING)
glDisable(GL_LIGHT0)
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, (0.20))
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, 1)
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1)
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, 33274)
glDisable(GL_LINE_STIPPLE)
glDepthFunc(GL_LEQUAL)
glDisable(GL_BLEND)
glDisable(GL_ALPHA_TEST)
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
glDisable(GL_CULL_FACE)
glColor4fv((1.00, 1.00, 1.00, 1.00))

// Global state

glPolygonMode(GL_FRONT, GL_FILL)
glEnable(GL_CULL_FACE)
glCullFace(GL_BACK)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_GEN_S)
glDisable(GL_TEXTURE_GEN_T)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_GEN_S)
glDisable(GL_TEXTURE_GEN_T)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_GEN_S)
glDisable(GL_TEXTURE_GEN_T)
glDisable(GL_TEXTURE_2D)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 8448)
glDisable(GL_TEXTURE_GEN_S)
glDisable(GL_TEXTURE_GEN_T)
glDisable(GL_TEXTURE_2D)
glDepthFunc(GL_LEQUAL)
glColorMask(TRUE, TRUE, TRUE, TRUE)

//Material Object 4

glColor4fv((1.00, 1.00, 1.00, 1.00))
glDisable(GL_COLOR_MATERIAL)
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (0.00, 0.00, 0.00, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (0.40, 0.42, 0.65, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (0.37, 0.37, 0.37, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (0.13, 0.13, 0.13, 1.00))
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 128.00)

// Light activation

glEnable(GL_LIGHTING)
glLoadMatrixf((0.92, -0.14, 0.36, 0.00)
(-0.00, 0.93, 0.36, 0.00)
(-0.38, -0.33, 0.86, 0.00)
(-0.00, -0.00, -139.28, 1.00))
glFrontFace(GL_CCW)
glLightfv(GL_LIGHT0, GL_POSITION, (24.95, 21.28, 49.03, 1.00))
glLightfv(GL_LIGHT0, GL_AMBIENT, (0.20, 0.20, 0.20, 1.00))
glLightfv(GL_LIGHT0, GL_DIFFUSE, (0.70, 0.70, 0.70, 1.00))
glLightfv(GL_LIGHT0, GL_SPECULAR, (0.50, 0.50, 0.50, 1.00))
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.00)
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.00)
glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.00)
glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 180.00)
glEnable(GL_LIGHT0)
glDisable(GL_FOG)

// Transform objects 

glLoadMatrixf((8.65, -1.29, 3.37, 0.00)
(-0.00, 8.75, 3.37, 0.00)
(-3.61, -3.11, 8.08, 0.00)
(-0.19, -5.36, -141.23, 1.00))
glFrontFace(GL_CCW)

// Render object 4

glDisableClientState(GL_EDGE_FLAG_ARRAY)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)
glEnableClientState(GL_COLOR_ARRAY)
glColorPointer(4, GL_FLOAT, 0, 0xD651598)
glEnableClientState(GL_NORMAL_ARRAY)
glNormalPointer(GL_FLOAT, 0, 0xB4EA1E0)
glDisableClientState(GL_INDEX_ARRAY)
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_FLOAT, 0, 0xB4E9380)
glDrawArrays(GL_TRIANGLES, 0, 42)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)

// Material object 3

glColor4fv((1.00, 1.00, 1.00, 1.00))
glDisable(GL_COLOR_MATERIAL)
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (0.59, 0.59, 0.59, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (0.87, 0.87, 0.87, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (1.00, 1.00, 1.00, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (0.00, 0.00, 0.00, 1.00))
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 100.00)

// Render object 3

glDisableClientState(GL_EDGE_FLAG_ARRAY)
glEnableClientState(GL_TEXTURE_COORD_ARRAY)
glTexCoordPointer(2, GL_FLOAT, 0, 0xD8D0708)
glDisableClientState(GL_COLOR_ARRAY)
glEnableClientState(GL_NORMAL_ARRAY)
glNormalPointer(GL_FLOAT, 0, 0xD74C8F0)
glDisableClientState(GL_INDEX_ARRAY)
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_FLOAT, 0, 0xD88A580)
glColor4fv((1.00, 1.00, 1.00, 1.00))
glDrawArrays(GL_TRIANGLE_STRIP, 0, 25)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)
glColor4fv((1.00, 1.00, 1.00, 1.00))

// Material object 2

glDisable(GL_COLOR_MATERIAL)
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (0.00, 0.00, 0.00, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (0.40, 0.42, 0.65, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (0.37, 0.37, 0.37, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (0.13, 0.13, 0.13, 1.00))
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 128.00)

// Render object 2

glDisableClientState(GL_EDGE_FLAG_ARRAY)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)
glEnableClientState(GL_COLOR_ARRAY)
glColorPointer(4, GL_FLOAT, 0, 0xD79D308)
glEnableClientState(GL_NORMAL_ARRAY)
glNormalPointer(GL_FLOAT, 0, 0xD79B9C0)
glDisableClientState(GL_INDEX_ARRAY)
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_FLOAT, 0, 0xD736D30)
glDrawArrays(GL_TRIANGLES, 0, 42)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)

// Material object 1

glColor4fv((1.00, 1.00, 1.00, 1.00))
glDisable(GL_COLOR_MATERIAL)
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (0.59, 0.59, 0.59, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, (0.87, 0.87, 0.87, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (1.00, 1.00, 1.00, 1.00))
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, (0.00, 0.00, 0.00, 1.00))
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 100.00)

// Render object 1

glDisableClientState(GL_EDGE_FLAG_ARRAY)
glEnableClientState(GL_TEXTURE_COORD_ARRAY)
glTexCoordPointer(2, GL_FLOAT, 0, 0xD725E68)
glDisableClientState(GL_COLOR_ARRAY)
glEnableClientState(GL_NORMAL_ARRAY)
glNormalPointer(GL_FLOAT, 0, 0xD610B18)
glDisableClientState(GL_INDEX_ARRAY)
glEnableClientState(GL_VERTEX_ARRAY)
glVertexPointer(3, GL_FLOAT, 0, 0xD690838)

glColor4fv((1.00, 1.00, 1.00, 1.00))
glDrawArrays(GL_TRIANGLE_STRIP, 0, 25)
glDisableClientState(GL_TEXTURE_COORD_ARRAY)

// end pass, prepare for next pass

glColorMask(TRUE, TRUE, TRUE, TRUE)
glDepthMask(TRUE)
glEnable(GL_DEPTH_TEST)
glFinish()
wglSwapBuffers(0x610106F1)
glGetError()




 

I can send you a test app if you send an email to gizmo3d_support(at)sts.saab.se

Have you tried the 66.81 drivers? They’re available directly from NVidia’s FTP server.

Nope. A customer uses this driver so I have just tested this driver…

I have uploaded a small demo app so you might test it for me :wink: ???

http://www.gizmosdk.com/download/demos/win32/nvbugg_041021_2.zip

If you have problems to see the effect, you can start several windows. E.g. the minitest.bat runs a bit fast so you might need to start several instances…

BTW. If you have the bug, the image objects should flicker A LOT !

I see the flickering with 3 of the minitest windows open. Is the gradual light moving/intensity change intentional?

The gradual change is expected and is the result of the materials affected by the light position change.

How does the maxitest.bat look ? It requires a lot more of the gfx hw and it might be easier to see the results.

I just ran maxitest; the flickering is much more evident. In ‘main,’ should there be two differently shaded triangles on the plane?

when you run main, it just displays another test not related to this bug. I use main as a multi purpose test app and it is used by the other bat files. press d and you will se a debug output on the console…

I also did find a fixed function lighting bug similar to this ONLY on Geforce 6 and ONLY on 61.76/61.77 drivers. I told Nvidia and updated to newer drivers which fixed it.

Well 66.81 seemes to have the bug. Is there any later version ?

This is your internal BUG

So what do you base that comment on ? I got confirmed from nvidia that it doesn’t work with 61.76 drivers.

I also got reports that it was fixed in 66.23 but the same error occurs in 66.81 so my conclusion is that it still isn’t solved. Don’t know about the 70.xx drivers ???