Используя Mesa v18.0.5, но получаю только OpenGL v3.0

Вы можете подавить псевдоним, экранировав или заключив в кавычки имя команды, например,

\rm foo
"rm" foo

Дальнейшее чтение:

0
21.08.2018, 19:39
1 ответ

Насколько я понимаю, важным значением является «максимальная версия профиля ядра», а не «строка версии OpenGL». Если вы не укажете основной профиль при создании контекста или напишите что-то вроде

glfwOpenWindowHint(GLFW_OPENGL_PROFILE, 0);

Mesa предоставит вам контекст OpenGL 3.0 (это имеет смысл, так как профили были введены в OpenGL 3.0, так что это последняя версия, в которой приложения могут не знать о них ). Если вы хотите более новую версию OpenGL, вам необходимо указать соответствующий профиль:

glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

или

glutInitContextProfile(GLUT_CORE_PROFILE);

вместе с версией, использующей glutInitContext().

Обратите внимание, что наложение версии OpenGL таким образом создает сильное ограничение; Я полагаю, вы знаете, что делаете; -). Некоторые разработчики стараются использовать как можно более низкую версию (OpenGL 3.2, например ), а затем запрашивают любые расширения, которые им нужны — это часто работает лучше, поскольку популярные расширения, как правило, доступны на некоторое время раньше, чем соответствующая версия OpenGL. полностью поддерживается драйверами.

MESA_GL_VERSION_OVERRIDE— это только инструмент отладки или разработки Mesa; он принудительно переопределяет заявленную версию OpenGL и может быть установлен на значения, которые Mesa на самом деле не поддерживает!

0
28.04.2021, 23:43

Теги

Похожие вопросы