Я разрабатываю приложение OpenGL и наблюдаю странные вещи. Машина, на которой я тестирую, оснащена NVidia Quadro FX 4600 и работает под управлением RHEL WS 4.3 x86_64 (ядро 2.6.9-34.ELsmp).
Я прошел через приложение с помощью отладчика и заметил, что оно зависает на вызовах OpenGL, которые получают информацию от OpenGL API: то есть - glGetError, glIsEnabled и т. д. Каждый раз, когда он зависает, система не отвечает на запросы 3-4 секунды.
Еще одна интересная вещь заключается в том, что если этот же код запускается в RHEL 4.5 (Kernel 2.6.9-67.ELsmp), он работает полностью нормально. Тот же код отлично работает и в Windows XP. Все машины используют одно и то же оборудование:
Я обновил 64-битные драйверы до последней версии: версия 177.82, дата выпуска: 12 ноября 2008 г., и результат такой же.
Кто-нибудь знает, что может быть причиной зависания системы при этих вызовах OpenGL?


Похоже, что это проблема с несовершенными драйверами NVidia для Linux. Кажется, помогает обновление до более новой версии ядра. Если я буду вынужден использовать это устаревшее ядро, я попробую кое-что, что может помочь.
Определение переменной среды __GL_YIELD для "NOTHING" перед запуском X, кажется, увеличивает стабильность с этим старым ядром.
http://us.download.nvidia.com/XFree86/Linux-x86_64/177.82/README/chapter-11.html
Я также пробовал отключить тройную буферизацию и перелистывание.
Я также обнаружил, что эти форумы очень помогает при проблемах Linux / NVidia. Просто выполните поиск по запросу "сбой linux"