Почему моя версия OpenGL упорно продолжена 3.0 несмотря на новые аппаратные средства и программное обеспечение?

Я должен использовать программу на своем ноутбуке, который требует OpenGL 3.3 или лучше. По-видимому, моя "эффективная" версия OpenGL 3.0. Ниже вывод от glxinfo. Это - xubuntu 16.10, и видеокартой является Intel HD 5500. Таким образом, я не понимаю то, что идет не так, как надо, кажется, что оба аппаратных и программных обеспечения должны быть много актуальным для получения по крайней мере 3,3. Надежда кто-то может помочь!

glxinfo|grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2) 
OpenGL core profile version string: 4.3 (Core Profile) Mesa 12.0.3
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 12.0.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 12.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
6
задан 18 November 2016 в 08:39

2 ответа

Короткий ответ: Ваша версия OpenGL в не упорно продолженный 3.0. "Строка версии профиля ядра OpenGL" строка отображает Ваш поддерживаемый OpenGL как "4,3".

Более подробное объяснение: Это сложное управление версиями связано с изменениями, сделанными в версии 3.0 OpenGL, до которой все версии OpenGL были полностью назад совместимы. Запуск с версии 3.0 OpenGL, некоторые функции были отмечены, как удерживается от использования, и более новые драйверы, должен не обязательно поддерживать их, чтобы быть OpenGL 3.1 + совместимый.

Позволять драйверам OpenGL поддерживать удержанные от использования функции также будучи полностью совместимым с версиями 3.1 +, OpenGL представленные "базовые" и "совместимые" профили.

В основном при запуске приложения в контексте "совместимого" профиля у Вас, как гарантируют, будет доступ ко всем возможностям OpenGL до конкретной версии включая все функции устаревшие. Дело обстоит не так при запуске приложения в контексте "базового" профиля.

Мое предположение состоит в том, что для не зная контекста приложений о версии OpenGL можно было бы целеустремленно сообщить как 3,0 для максимальной совместимости. Это, были переменные среды как MESA_GL_VERSION_OVERRIDE=4.3 пригодиться.

Для получения дополнительной информации: Контекст OpenGL

2
ответ дан 23 November 2019 в 07:59

Я думаю, что приложение может просто вытягивать строку версии и сообщать об этом. Однако я не думаю, что это представляет доступную максимальную версию и возможно не, что использует приложение. Моя "Строка версии OpenGL" сообщается точно то же как Ваша, и я разрабатываю OpenGL 3.2 использования в этой системе.

при выполнении команды glxinfo | grep Max, необходимо получить список, который детализирует максимальные версии, доступные для базового профиля, профиль совместимости и т.д. Я выполнил бы это и видел бы то, о чем это сообщает. Я думаю, что это сообщит о Вашей макс. базовой версии профиля как 4,3 (не 3.0). Если так, я не думаю, что у Вас есть проблема драйвера.

я посмотрел кратко на приложение, и я не видел упоминания о требовании для OpenGL 3.3. Однако их сайт действительно предполагает, что существуют значительные различия между другим GPU.

Они, действительно кажется, предлагают поддержку, поэтому если у Вас все еще есть проблемы, может быть лучше видеть, могут ли они помочь далее.

Hope, которая помогает.

Обновленный для glmark2

glmark2 OpenGL (ES) 2,0 сравнительных теста. Снова это может просто вытягивать строку версии. Я погуглил другие приложения сравнительного теста и нашел GFXBench доступный здесь . Если Вы загружаете, устанавливаете и выполняете это и затем выбираете "Информацию" внизу экрана, это, кажется, обеспечивает Вашу максимальную версию OpenGL. Шахта указывает "3.3 (Ядра)", которые являются корректной максимальной версией мои поддержки карты.

Это также включает тесты, которые требуют V4.x, и ни один не будет работать на моей установке, таким образом, это сможет стоить попытки.

Обновленные Меза-Переменные среды

я просто столкнулся с Меза-переменной среды MESA_GL_VERSION_OVERRIDE. Больше информации здесь . Это указывает что эта переменная:

changes the value returned by glGetString(GL_VERSION) and possibly the GL API type.

я попробовал следующую команду в своей системе:

MESA_GL_VERSION_OVERRIDE=3.3 glxinfo | grep OpenGL

и это дало следующее для строки версии OpenGL и OpenGL, заштриховывающего строку языковой версии:

OpenGL version string: 3.3 (Core Profile) Mesa 12.0.3
OpenGL shading language version string: 3.30

Это не то, о чем сообщили без переменной среды. Может стоить попытаться использовать эту переменную среды при выполнении приложения, поскольку это может вынудить правильную версию использоваться. Вы использовали бы:

MESA_GL_VERSION_OVERRIDE=4.3 command

, Где Вы просто заменили бы команду любой командой, Вы используете для запуска приложения.

2
ответ дан 23 November 2019 в 07:59

Другие вопросы по тегам:

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