2008-12-17 137 views
1

我正在開發一個OpenGL應用程序,我看到一些奇怪的事情發生。我測試的機器配備了NVidia Quadro FX 4600,它運行RHEL WS 4.3 x86_64(內核2.6.9-34.ELsmp)。glGetError掛起幾秒鐘

我已經介紹了一個調試器的應用程序,我注意到它掛在從OpenGL API接收信息的OpenGL調用上:ie - glGetError,glIsEnabled等。每次它掛起時,系統在3-4秒內無響應。

另一件有趣的事情是,如果這個相同的代碼在RHEL 4.5(內核2.6.9-67.ELsmp)上運行,它運行得很好。在Windows XP上,相同的代碼也可以完美運行。所有機器都使用完全相同的硬件:

  • PNY的NVIDIA Quadro FX4600 768MB的PCI Express
  • 雙Intel Xeon DP四核E5345 2.33hz
  • 4096 MB 667 MHz全緩衝DDR2
  • 超微X7DAL -E英特爾5000X芯片組的雙Xeon處理器主板
  • 的Enermax自由620瓦特電源

我已經升級到最新的64bi t驅動程序:版本177.82,發佈日期:2008年11月12日,結果完全相同。

有沒有人有任何想法可能導致系統掛在這些OpenGL調用?

回答

1

看來,這是一個Linux並不完美的NVidia驅動程序的問題。升級到更新的內核似乎有所幫助。如果我被迫使用這個過時的內核,有些事情我已經嘗試過,似乎有所幫助。

在啓動X之前將__GL_YIELD環境變量定義爲"NOTHING"似乎會增加此舊內核的穩定性。 http://us.download.nvidia.com/XFree86/Linux-x86_64/177.82/README/chapter-11.html

我也試過禁用三重緩衝和翻轉。

我也發現these forums對Linux/NVidia問題非常有幫助。只要搜索「linux crash」

0

您可以通過使用系統分析器(如SysprofOProfile)進行深入研究。使用這些調用的其他OpenGL應用程序是否顯示類似的行爲