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:

Code :
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