Domanda

Sto sviluppando un'applicazione OpenGL e vedo accadere cose strane. La macchina che sto testando con è dotato di una NVIDIA Quadro FX 4600 ed è in esecuzione RHEL WS 4.3 x86_64 (kernel 2.6.9-34.ELsmp).

Ho fatto un passo attraverso l'applicazione con un debugger e ho notato che è appeso sulle chiamate OpenGL che ricevono informazioni dal API OpenGL: vale a dire - glGetError, glIsEnabled, ecc Ogni volta che si blocca, il sistema non risponde per 3-4 secondi.

Un'altra cosa che è interessante è che se questo stesso codice viene eseguito su RHEL 4.5 (Kernel 2.6.9-67.ELsmp), funziona tutto bene. Lo stesso codice viene eseguito anche perfettamente su Windows XP. Tutte le macchine stanno utilizzando esattamente lo stesso hardware:

  • PNY nVidia Quadro FX4600 768MB PCI Express
  • dual Intel Xeon DP Quad Core E5345 2.33hz
  • 4096 MB a 667 MHz DDR2 Fully Buffered
  • Super Micro X7DAL-E Intel 5000X chipset Dual Xeon Motherboard
  • Enermax Liberty 620 watt di alimentazione

Ho aggiornato ai più recenti driver a 64 bit: Versione 177.82, Data di rilascio:. Nov 12, 2008 e il risultato è lo stesso esatto

Qualcuno ha qualche idea di che cosa potrebbe causare il blocco del sistema su queste chiamate OpenGL?

È stato utile?

Soluzione

Sembra che questo è un problema con i driver di meno-che-perfetto NVidia per Linux. Aggiornamento ad un kernel più recente sembra aiutare. Se sono costretto ad usare questo kernel datato, ci sono alcune cose che ho provato che sembrano aiutare.

Definire la variabile d'ambiente __GL_YIELD a "NOTHING" prima di iniziare X sembra aumentare la stabilità con questo kernel più vecchi. http: //us.download.nvidia. com / XFree86 / Linux x86_64 / 177.82 / README / capitolo-11.html

Inoltre ho provato a rendere invalido triplo buffering e Flipping.

Ho anche scoperto che questi forum sono molto utili per problemi di Linux / NVidia. Basta fare una ricerca per "incidente linux"

Altri suggerimenti

Si può essere in grado di scavare più a fondo utilizzando un profiler sistema come il Sysprof OProfile . Fare altre applicazioni OpenGL che utilizzano queste chiamate mostrano un comportamento simile?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top