Im having some stange problems, very rarely, and Im 99% sure it isnt my fault, but I want to be absolutely positive about so I’d appreciate whatever feedback anyone can give me.
First, take a look at this picture: http://www.ronfrazier.net/corrupt.gif
This is my scene after the corruption has occurred. This very rarely happens. I first noticed it several months ago. It happened again a few days ago, and again yesterday. What happens is that everything runs fine, and then I switch to a graphics or modeling program, switch back, and everything looks like this.
Now, analyzing the scene, its quite interesting what happens. I can definitely see a hierarchy to the jumbled mess. As outlined in the image:
Item #1 is my landscape for the whole scene. I draw the entire landscape with coordinates relative to the global origin, which is in the bottom left corner of the image. So, the landscape quads which should cover about 75% of that image are all jumbled near the origin.
Items 2,3, and 4 are all models in the scene. All models are drawn with coordinates relative to their local origin. Each model seems to be in the correct place. #2 is a mostly box shaped object at the front of the scene (the front of the scene runs up from the bottom left corner at a roughly 45% angle). #3 is a prefect box located slightly behind and slightly higher relative to #2. #4 is a bunch of tree models located across the back of the scene.
So it seems that openGL is getting the projection and worldview transformations correct, but it seems that every object is jumbled around the local origin. The vertex coordinates are “somewhat correct”, in that the 2 things that are boxed shape do indeed look approximately box shaped, and the landscape tiles (item #1) are also relatively correct with respect to each other (the red brick is in the left of the scene, the grass is in the middle and back right, and the light tan dirt is in the front right corner of the scene). The correct textures are also used for each object, thought the tex coords just “seem” wrong (as best as I can interpret from this jumbled mess).
For the details of what Im doing, I have a GeForce 2 64MB running the 23.11 drivers (I think thats correct…nvoglnt.dll says 6.13.10.2311). However, I think (but am not positive) that the first time this happened several months ago I was running a different set of drivers. All applications including mine are running windowed, 32bit desktop. All of my primitives are rendered from separate system memory vertex buffers using glDrawElements (I’m not using VAR or CVA). It seems almost like my vertex arrays are getting corrupted, but that is highly unlikely. All vertex buffers are allocated separately, and they all deallocate just fine, which means there wasnt just a sequential overwrite of the vertex buffers. I didnt think to try it, but if it happens again, I will try to create a new object with a new vertex buffer and see if that object shows the same errors.
Just for the record, the reason why it happened once several months ago, and then now twice in one week probably corresponds to the fact that I’ve been doing a bunch of graphics and modelling lately, so I dont think the problem is getting worse, just corresponding to my increased usage of other programs. I really dont think this is my fault, and from what I’ve seen I dont think this will ever be a problem on an end user’s machine, but I’m just a little paranoid.
So what do you think?