2014-02-11 22 views
3

在VMware中安裝debian並安裝運行OpenGL應用程序所需的全部庫文件後,我使用glxgears以確保一切正常。OpenGL:在VMware(debian x64)中,glxgears可以工作 - 但不是其他OpenGL程序

# glxgears 
3426 frames in 5.0 seconds = 685.171 FPS 
3562 frames in 5.0 seconds = 712.339 FPS 
... 
XI0: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" 
after 33172 requests (33170 known processed) with 0 events remaining. 

glxgears似乎運行良好。即使在單擊glxgears窗口框上的「關閉」後出現上述錯誤,它也會顯示在窗口中旋轉的齒輪。

但是,當我嘗試使用freeglut3執行一個簡單的OpenGL程序,我得到以下結果:

# ./program 
X Error of failed request: BadRequest (invalid request code or no such operation) 
Major opcode of failed request: 155 (GLX) 
Minor opcode of failed request: 34() 
Serial number of failed request: 36 
Current serial number in output stream: 35 

該作品使用非虛擬機上的所有相同的文件和庫的程序,不可用爲我在家。

我該如何解決這個問題?這是在虛擬機上運行OpenGL程序的常見問題嗎?

回答

1

這是您的GLX服務器告訴你一個神祕的方式:它從來沒有聽說過glXCreateContextAttribsARB(GLX操作碼34)。換句話說,您的系統不支持GLX_ARB_create_context。解釋爲什麼這樣做的最好方法是運行諸如glxinfo -v之類的東西,並將輸出添加到您的問題中。

由於glxgears已清楚顯示,可以在系統上創建沒有此擴展名的工作環境。我必須想象,freeglut3應該足夠聰明,不要使用擴展名,如果你不要求它的任何幻想(,例如不要求核心配置文件上下文或特定主要/次要版本)。如果不是,那麼你將不得不尋找更復雜的GLX實現或使用不同的框架。