I coded a handler to allow me to capture sequences of frames from the game loop, in order to catch my wierd bug in action, and managed to catch a shot of it. These two images are from the same sequence, taken from a stationary location. That is, the loop was just sitting there, repeatedly drawing the same view over and over and over; nothing was changing, so each frame rendered should have been identical to the last. Yet flashes of wierd things sometimes crop up:
Out of 60 frames sampled, this second image was the only one with an artifact cropping up; they only appear intermittently, and the majority of frames are fine. I'm stumped; it's repeatedly drawing the same exact data each frame, so where are these coming from? It looks as if it's drawing from some bad vertices, but damned if I know where they're coming from and why they're not being drawn all the time. I only get these wierd thingamabobs on the Linux build; as noted before, the Windows build runs flawlessly. I've tried 4 different driver versions on two different custom kernels, with the exact same problem each time. I've gone over my code again and again, looking for a buffer overrun or anything else that might explain it. I got nuthin'. I'm starting to hate the world and everything in it.
*mumble grumble*
Bit extreme, no?!
As for the error, have you checked that stuff you expect to be null is actually initialised as zero. I got all sorts of odd, intermittent crap appearing when I realised I took this assumption for granted.