2011-04-16 121 views
0

我編譯的Xorg是爲我爲ARM設備構建的自定義Linux編譯的。我試圖運行使用EGL與Qt框架OpenGL應用程序,但我得到這些錯誤:運行OpenGL應用程序時出現X11錯誤BadRequest

X Error: BadRequest (invalid request code or no such operation) 1 
Extension: 198 (Uknown extension) 
Minor opcode: 0 (Unknown request) 
Resource id: 0x600082 

這:

X Error: BadRequest (invalid request code or no such operation) 1 
Extension: 160 (Uknown extension) 
Minor opcode: 0 (Unknown request) 
Resource id: 0x600082 

重複多次。這是什麼意思?我怎樣才能調查什麼是錯的?用OpenGL正確地在屏幕上繪製了一些東西,但之後一切都搞砸了。 在我的Xorg中似乎缺少某些東西,但我無法找到有關這些擴展198和160的任何信息。如何找出遺漏的東西或反正出了什麼問題?我是否需要編譯任何特定的代碼才能運行X11的OpenGL應用程序? 謝謝!

回答

2

擴展號由X服務器根據特定代碼庫中支持的擴展名動態分配,並在特定配置中啓用。要在當前顯示屏上獲得擴展名到數字映射的列表,您可以運行xdpyinfo -queryExtensions | grep opcode - 每個列出的操作碼值應與Xlib錯誤報告中的擴展名相匹配。如果沒有任何擴展名匹配,那麼看起來您可能已經損壞了內存或正在調用擴展程序,而沒有先驗證它在X服務器中當前是否可用。

+0

這非常有用!謝謝!並且在任何地方都有它們的操作碼的所有擴展名列表?爲什麼我可以試着瞭解可能缺少的內容? – 2011-04-19 07:27:23

+0

請重新閱讀我給的答案。由於正如我所說,操作碼是*動態分配*,所以不能有擴展名列表。渲染擴展可能在我的X服務器上有132個操作碼,在你的140上,取決於擴展初始化的順序以及哪些被初始化或被禁用。 – alanc 2011-04-20 15:30:30

+0

你說得對,對不起。你的回答很明確。無論如何,我可能已經通過重新編譯Qt來解決了這個問題,支持幾乎所有的X擴展,然後爲X顯式啓用多線程。看起來應用程序在主線程之外使用OpenGL。現在問題似乎解決了。我不知道這兩項行動是否是強制性的。謝謝你的幫助! – 2011-04-20 18:34:53

相關問題