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?

¿Fue útil?

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"

Otros consejos

Es posible que pueda conocer en profundidad mediante el uso de un generador de perfiles sistema como Sysprof o Oprofile . ¿Hay otras aplicaciones OpenGL que usan estas llamadas tienen un comportamiento similar?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top