GLSL version doesn't match OpenGL version

0

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

Tiana987642

Posted 2018-11-13T22:52:58.213

Reputation: 263

Answers

0

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.

Tiana987642

Posted 2018-11-13T22:52:58.213

Reputation: 263