Screwey glFinish()?

Tell me whats up with this…

I’ve been playing with my app for some time, and I’ve been dismissing the occasional crash (app crash) to my internal code, and not plain old stuff. Today I decided to hunt down the crash. Here’s what I found so far, maybe all you can help me fix it.

First, a little system details:

AMD Athlon 550/Asus K7M /w 128 meg SDRAM
Voodoo3 3000 AGP

Alrighty then, with that out of the way, I’m using MS-OpenGL stock from Win2K, and the updated Voodoo3 drivers for Win2K. Project environment is VC++ 6.0 SP3.

I’ve TRACE()'d the origin of the crash to the glFinish() call in my app. Nothing happens between the prior TRACE and glFinish, so its gotta be there. Also, under debugging, the app crashes to NTDLL!.

Here’s the symptoms:

App starts, runs fine. You can do various rotations, translations, etc, it runs beautifully. Then, it arbitrarily decides to crash. Sometime 30 seconds, sometimes 2 hours into the app.

Is there anything with my configuration/software/hardware/etc. that may be doing this?

I’m going to go test my app on an NT40 box with a NVIDIA card, so I’ll post a followup if there is one of interest.


Tnx in advance,


GLFinish executes all unfinished OpenGL commands and doesnt return untill it has finished, so I would say that the bug could be in any OpenGL command in your code…not much help . The fact that the crash happens after a random period of time points towards a divide by zero somewhere maybe at some rotation point. Your best bet is to try it on another system, then you can eliminate the problem being down to hardware or drivers.

Quick note…

Just tested on an identical machine, diffs being:

Running NT40

Did not crash… yet.

Also, I doubt its my code. All models are placed into display lists, and rendered from there. There are absolutely no calculations done in the rendering pipe save a few calls to glTranslate, a few matched pushes and pops, and one glGetFloatv on a matrix and a matrix mult. No divisions to be done here!

Wonder if its the 3dfx drivers…

[This message has been edited by Siwko (edited 05-18-2000).]

is your application using vertex arrays?
i had troubles with these animals once, the fact was i made a error with a malloc(), so when the driver tried to access the memory chunk, it generated a GPF…


Originally posted by dmy:

is your application using vertex arrays?

Nope, using display lists.

It probably is related to the 3dfx drivers, as I recall the Win2K drivers I have on my machine are kinda sorta beta-ish (released - but quality they’re beta-like).

Also, if I recall, when OpenGL loads for 3dfx, it also loads the Glide drivers, so they’re just a mapping of OpenGL to Glide anyways.

No biggie though, I just put in a secondary card in my machine, 3Dlabs Oxygen VX1 - and I’ll be doing my testing on that one, as it will most likely be the one going into the production machines.