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?

+1


source to share


2 answers


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"

+1


source


You may be able to dig deeper using a system profiler like Sysprof or OProfile . Do other OpenGL applications using these calls experience similar behavior?



0


source







All Articles