Pergunta

Estou desenvolvendo uma aplicação OpenGL e eu estou vendo algumas coisas estranhas acontecem. A máquina que eu estou testando com está equipado com uma NVIDIA Quadro FX 4600 e ele está sendo executado RHEL WS 4.3 x86_64 (kernel 2.6.9-34.ELsmp).

Eu pisei através da aplicação com um depurador e eu notei que ele está pendurado em chamadas OpenGL que estão recebendo informações da API OpenGL: ie - glGetError, glIsEnabled, etc. Cada vez que ele desliga, o sistema não responde por 3-4 segundos.

Outra coisa que é interessante é que se esse mesmo código é executado no RHEL 4.5 (Kernel 2.6.9-67.ELsmp), funciona completamente bem. O mesmo código também funciona perfeitamente no Windows XP. Todas as máquinas estão usando o mesmo hardware exata:

  • PNY nVidia Quadro FX4600 768MB PCI Express
  • duplo Intel Xeon DP Quad Core E5345 2,33 Hz
  • 4096 MB 667 MHz com buffer DDR2
  • Super Micro X7DAL-E Intel 5000X Chipset dual Xeon Motherboard
  • Enermax Liberty 620 watt fonte de alimentação

Eu fiz o upgrade para os drivers mais recentes de 64 bits: Versão 177,82, Data de lançamento:. 12 de novembro de 2008 e o resultado é exatamente o mesmo

Alguém tem alguma idéia do que poderia estar causando o sistema para pendurar essas chamadas OpenGL?

Foi útil?

Solução

Parece que este é um problema com menos-que-perfeito controladores da NVidia para Linux. Atualizando para um kernel mais recente aparece para ajudar. Se eu sou forçado a usar este kernel datado, há algumas coisas que eu tentei que parecem ajuda.

Definindo a variável de ambiente __GL_YIELD para "NOTHING" antes de iniciar X parece aumentar a estabilidade com este kernel mais velho. http: //us.download.nvidia. com / XFree86 / Linux-x86_64 / 177,82 / README / capítulo-11.html

Eu também tentei desabilitar Triple Buffering e Invertendo.

Eu também descobri que destes fóruns são muito úteis para problemas de Linux / NVidia. Basta fazer uma pesquisa para "crash linux"

Outras dicas

Você pode ser capaz de cavar mais fundo usando um profiler sistema como Sysprof ou OProfile . Fazer outros aplicativos OpenGL usando essas chamadas apresentam comportamento semelhante?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top