GlGetError hangs for a few seconds
I am developing an OpenGL application and I see some strange things. The machine I'm testing with is equipped with an NVidia Quadro FX 4600 and is running RHEL WS 4.3 x86_64 (kernel 2.6.9-34.ELsmp).
I walked through the application using the debugger and I noticed that it hangs on OpenGL calls that get information from the OpenGL API: ie - glGetError, glIsEnabled, etc. Every time it freezes, the system doesn't respond for 3-4 seconds.
Another thing is interesting: if the same code runs on RHEL 4.5 (Kernel 2.6.9-67.ELsmp), it works quite fine. This same code works fine on Windows XP as well. All machines use the same equipment:
- PNY nVidia Quadro FX4600 768mb PCI Express
- Dual Intel Xeon DP Quad Core E5345 2.33hz
- 4096 MB 667 MHz Fully buffered DDR2
- Super Micro X7DAL-E Intel 5000X Chipset Dual Xeon Motherboard
- Enermax Liberty 620W Power Supply
I have updated to the latest 64-bit drivers: Version 177.82, Release date: November 12, 2008 and the result is the same.
Does anyone know what might be causing the system to hang on these OpenGL calls?
source to share
It appears to be a problem with the less advanced NVidia Linux drivers. Improving the transition to a newer kernel helps. If I'm forced to use this dated core, there are some things I've tried that seem to help.
Defining a __GL_YIELD
pre- "NOTHING"
pre-X environment variable seems to enhance stability with this old kernel.
http://us.download.nvidia.com/XFree86/Linux-x86_64/177.82/README/chapter-11.html
I've also tried disabling Triple Buffering and Flipping.
I also found these forums to be very helpful for Linux / NVidia issues. Just search for "linux crash"
source to share