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

Мне нужно использовать программу на моем ноутбуке, которая требует 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:
1
задан 18 November 2016 в 19:39

1 ответ

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

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

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

Кажется, что они предлагают поддержку, поэтому, если у вас все еще возникают проблемы, может быть, лучше всего посмотреть, смогут ли они помочь дальше. [ ! d3]

Надеюсь, что это поможет.

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

glmark2 является эталоном OpenGL (ES) 2.0. Опять же, это может просто потянуть строку версии. Я искал другие тестовые приложения и нашел GFXBench здесь. Если вы загружаете, устанавливаете и запускаете это, а затем выбираете «Информация» в нижней части экрана, он, как представляется, обеспечивает максимальную версию OpenGL. Mine states «3.3 (Core)», который является правильной максимальной версией, поддерживаемой моей картой.

Он также включает тесты, требующие V4.x, и ни одна из них не будет запущена на моей настройке, поэтому это может стоить попробовать. [ ! d9]

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

Я просто столкнулся с переменной среды Mesa 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 string:

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

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

1
ответ дан 23 May 2018 в 04:05
  • 1
    Большое спасибо за ваш ответ. Я не уверен, что это правильно, но я думаю, что это возможно. Действительно, максимальное ядро ​​составляет 4.3, а max - 3.0. Я действительно поговорил с автором программного обеспечения (перед тем, как опубликовать мой вопрос), и он, похоже, доверял номеру своего программного обеспечения (3.0). Он думал, что мне нужно обновить своего водителя. Но я не думаю, что это решение, мой водитель полностью обновлен, а 3,0 лет. Мой чип, мой водитель и mesa вполне способны 3,3 (даже 4.3). Я надеюсь, что его программное обеспечение не читает совместимую версию и ограничивает себя, когда это не должно быть ... – smwilsonau 22 November 2016 в 00:43
  • 2
    На самом деле я не знаю. Я установил и запустил glmark2, а также сообщает GL_VERSION = 3.0 Mesa 12.0.3. Кажется, я действительно застрял в 3.0 без всякой видимой причины. – smwilsonau 22 November 2016 в 05:50
  • 3
    Я обновил ответ. Надеюсь, что это поможет вам узнать больше о вашем драйвере. – gsxruk 22 November 2016 в 22:14
  • 4
    Просто обновил ответ на то, что я натолкнулся, когда смотрел в нечто другое. Я сразу подумал об этом вопросе. Если вы все еще испытываете эту проблему, возможно, стоит попробовать. – gsxruk 22 December 2016 в 13:44
  • 5
    Спасибо, приятно знать. Тем временем разработчик исправил свой код, чтобы он правильно распознал мою версию OpenGL. – smwilsonau 21 January 2017 в 00:53

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

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