OpenGL: в VMware (debian x64) работает glxgears, но не другие программы OpenGL
После установки Debian в VMware и установки всех библиотек, необходимых для запуска приложений OpenGL с freeglut, я использовал glxgears
чтобы убедиться, что все работает нормально.
# 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.
Но когда я пытаюсь выполнить простую программу OpenGL с использованием freeglut3, я получаю следующий результат:
# ./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 OpCode 34). Другими словами, ваша система не поддерживает GLX_ARB_create_context
, Лучший способ объяснить, почему это так, - запустить что-то вроде glxinfo -v
и добавьте вывод к вашему вопросу.
Можно создать рабочий контекст без этого расширения в вашей системе, как glxgears
наглядно демонстрирует. Я должен представить, что freeglut3 должен быть достаточно умен, чтобы не использовать расширение, если вы не запрашиваете у него ничего необычного (например, не запрашиваете контекст основного профиля или конкретную основную / вспомогательную версию). Если это не так, то вам нужно будет найти более сложную реализацию GLX или использовать другую среду.