views:

232

answers:

2

I am developing an OpenGL application and I am seeing some strange things happen. The machine I am testing with is equipped with an NVidia Quadro FX 4600 and it is running RHEL WS 4.3 x86_64 (kernel 2.6.9-34.ELsmp).

I've stepped through the application with a debugger and I've noticed that it is hanging on OpenGL calls that are receiving information from the OpenGL API: i.e. - glGetError, glIsEnabled, etc. Each time it hangs up, the system is unresponsive for 3-4 seconds.

Another thing that is interesting is that if this same code is run on RHEL 4.5 (Kernel 2.6.9-67.ELsmp), it runs completely fine. The same code also runs perfectly on Windows XP. All machines are using the exact same hardware:

  • 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 620 watt Power Supply

I have upgraded to the latest 64bit drivers: Version 177.82, Release Date: Nov 12, 2008 and the result is the exact same.

Does anyone have any idea what could be causing the system to hang on these OpenGL calls?

Thanks!

A: 

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

codelogic
A: 

It appears that this is an issue with less-than-perfect NVidia drivers for Linux. Upgrading to a newer kernel appears to help. If I am forced to use this dated kernel, there are some things that I've tried that seem to help.

Defining the __GL_YIELD environment variable to "NOTHING" prior to starting X seems to increase stability with this older 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've also found that these forums are very helpful for Linux/NVidia problems. Just do a search for "linux crash"

Andrew Garrison