Версия GLSL не соответствует версии OpenGL

345
Tiana987642

Я портирую приложение с OSG Earth с windows на Linux. ОС и программное обеспечение в основном одинаковы (Qt 5.9, ядро ​​Linux 3.18.24, Mesa 18.2.3). Однако после переопределения export MESA_GL_VERSION_OVERRIDE="4.5"OpenGL ведет себя по-разному на разных аппаратных средствах:

На Intel i7-4770T:

server glx version string: 1.4 client glx version string: 1.4 GLX version: 1.4 OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.2.3 OpenGL core profile shading language version string: 3.30 OpenGL version string: 4.5 (Compatibility Profile) Mesa 18.2.3 OpenGL shading language version string: 3.30 

Вы можете видеть только язык затенения 3.3, что ниже моего требования. На i7 6700 это 4.5.

Это странно из-за:

  • GLSL должен соответствовать версии OpenGL
  • В спецификации Intel сказано, что i7-4770T должен поддерживать как минимум OpenGL 4.3.

К сожалению "MESA_GLSL_VERSION_OVERRIDE", не работает. Мое приложение по-прежнему работает с аномалиями, такими как случайный черный или фиолетовый в графическом интерфейсе.

Mesa основана на libdrm-2.4.96 и с этой конфигурацией.

/autogen.sh --enable-debug --with-egl-platforms=x11,drm --with-dri-drivers=i915,i965,nouveau --with-gallium-drivers=i915,nouveau --disable-gallium-llvm --prefix=/usr 

Пожалуйста, помогите мне решить эту проблему

0

1 ответ на вопрос

0
Tiana987642

Я нашел обновление ядра, чтобы решить проблему. Для меня это 4.8.16. Еще одна хитрость - изменить основной дисплей, если у вас есть несколько мониторов. Это сводит меня с ума на несколько дней.

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