Я портирую приложение с 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
Пожалуйста, помогите мне решить эту проблему