Я портирую приложение с 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

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

1 ответ1

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .