glGetError cuelga durante varios segundos
-
22-08-2019 - |
Pregunta
Estoy desarrollando una aplicación OpenGL y estoy viendo algunas cosas extrañas suceden. La máquina que estoy probando con está equipado con una tarjeta Quadro FX 4600 y se está ejecutando RHEL WS 4.3 x86_64 (kernel 2.6.9-34.ELsmp).
Me he metido a través de la aplicación con un depurador y me he dado cuenta de que está colgado en las llamadas OpenGL que están recibiendo información de la API de OpenGL: es decir, - glGetError, glIsEnabled, etc. Cada vez que cuelga, el sistema de no responde durante 3-4 segundos.
Otra cosa que es interesante es que si este mismo código se ejecuta en RHEL 4.5 (kernel 2.6.9-67.ELsmp), se ejecuta completamente bien. El mismo código también funciona perfectamente en Windows XP. Todas las máquinas están utilizando el mismo hardware exacta:
- PNY Quadro FX4600 768MB nVidia PCI Express
- Dual Intel Xeon DP Quad Core E5345 2.33hz
- 4096 MB 667 MHz DDR2 con búfer completo
- Super Micro X7DAL-E Intel Xeon Dual 5000X chipset placa base
- Enermax Libertad 620 vatios Fuente de alimentación
He actualizado a los últimos controladores de 64 bits Versión: 177.82, Fecha de estreno: 12. Nov de 2008 y el resultado es exactamente el mismo
¿Alguien tiene alguna idea de qué podría estar causando el sistema para colgar en estas llamadas OpenGL?
Solución
Parece que este es un problema con los conductores menos que perfecto para NVidia Linux. Actualizar a un núcleo más reciente parece ayudar. Si me veo obligado a utilizar este núcleo de fecha, hay algunas cosas que he probado que parecen ayudar.
Definición de la variable de entorno __GL_YIELD
a "NOTHING"
antes de iniciar X parece aumentar la estabilidad con este núcleo más antiguo.
http: //us.download.nvidia. com / XFree86 / Linux x86_64 / 177.82 / README / capítulo-11.html
También he intentado desactivar Triple Buffering y mover de un tirón.
También he encontrado que estos foros son muy útiles para los problemas de Linux / NVidia. Sólo hacer una búsqueda de "accidente Linux"