I'm porting an application with OSG Earth from windows to Linux. The OS and softwares are basically the same (Qt 5.9, Linux kernel 3.18.24, Mesa 18.2.3). However, after override export MESA_GL_VERSION_OVERRIDE="4.5" OpenGL behaves very differently on different hardware:

On a 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

You can see shading language only 3.3 which is below my requirement. On a i7 6700 it's 4.5.

This is weird due to:

  • GLSL should match OpenGL version
  • Intel specs said i7-4770T should support at least OpenGL 4.3.

Sadly "MESA_GLSL_VERSION_OVERRIDE" doesn't work. My app still runs with anomalies like random black or violet on the GUI.

Mesa is built on libdrm-2.4.96 and with this configuration.

/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

Please help me to fix this problem


I found an kernel upgrade fix the problem. For me it's 4.8.16. Another trick is change your main display if you have multi monitors setup. It drives me mad for a few days.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.