ID 417470 - Katana does not request the core profile context for OpenGL leading to crash on Mesa drivers

Follow

Problem summary
Katana does not request the core profile context for OpenGL. Therefore, OpenGL 3.0 compatibility context is given in Mesa drivers. This can cause OpenGL errors or crash in Katana.

Intel uses Mesa for its graphical drivers in Linux. Mesa driver supports OpenGL 4.6, which meets Katana's OpenGL requirement of 4.3+. 

For compatibility, OpenGL introduced "core" and "compatible" profiles. Non-Mesa graphics drivers assume the highest OpenGL version even when requesting the compatibility profile context. However, Mesa drivers by default provide the OpenGL compatibility profile context (version 3.0) when core is not requested.

Customer reported version
katana.3.2v3

Customer reported platform
Ubuntu

Steps to reproduce

1) Run Katana on Mesa Graphics drivers.

Expected behavior
Katana runs without crashing or OpenGL errors

Actual behavior
Katana crashes with the following error:

[ERROR plugins.HydraViewer.LoggerDelegate]: ../Katana/PLUGINS/Viewers/HydraViewer/src/Engine.cpp: KatanaViewerEngine: 77: Couldn't find plug-in ""Failed to compile vertex shader: 0:1(10): error: GLSL 4.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ESFailed to compile vertex shader: 0:1(10): error: GLSL 4.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES[ERROR python.root]: A GLError occurred in "wrapper.py": GLError(err = 1281,description = 'invalid value',baseOperation = glGetIntegerv,pyArgs = (GL_MAX_SAMPLES,),cArgs = (GL_MAX_SAMPLES,<OpenGL.arrays.lists.c_int_Array_1 ob...,),cArguments = (GL_MAX_SAMPLES,<OpenGL.arrays.lists.c_int_Array_1 ob...,))Traceback (most recent call last):File "Tabs/BaseViewerTab.py", line 1026, in showEventFile "HydraViewerTab.py", line 586, in thawFile "HydraViewerTab.py", line 2767, in updateFromPrefsFile "HydraViewerTab.py", line 2138, in __getSampleCountFile "/opt/Katana3.2v3/bin/python/OpenGL/latebind.py", line 45, in __callreturn self._finalCall( *args, **named )File "/opt/Katana3.2v3/bin/python/OpenGL/wrapper.py", line 580, in wrapperCallraise errGLError: GLError(err = 1281,description = 'invalid value',baseOperation = glGetIntegerv,pyArgs = (GL_MAX_SAMPLES,),cArgs = (GL_MAX_SAMPLES,<OpenGL.arrays.lists.c_int_Array_1 ob...,),cArguments = (GL_MAX_SAMPLES,<OpenGL.arrays.lists.c_int_Array_1 ob...,))[ GLShaderCompiler ] Compilation of shader '/opt/Katana3.2v3/plugins/Resources/Core/Shaders/GenericViewerPlugins/texture.vert' failed![ GLShaderCompiler ] Shader compile log:0:1(10): error: GLSL 4.00 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES[ GLShaderCompiler ] Compilation of shader '/opt/Katana3.2v3/plugins/Resources/Core/Shaders/GenericViewerPlugins/texture.frag' failed![ GLShaderCompiler ] Shader compile log:0:1(10): error: GLSL 4.20 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES[ GLShaderCompiler ] Compilation of shader '/opt/Katana3.2v3/plugins/Resources/Core/Shaders/GenericViewerPlugins/uniform_color.vert' failed![ GLShaderCompiler ] Shader compile log:0:1(10): error: GLSL 4.00 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, and 3.10 ES

Workaround
No Known workaround. 

Reproduced by support
This bug has been reproduced in:
Katana 3.2v3 - CentOS 7
Katana 3.2v1 - CentOS 7
Katana 3.1v7 - CentOS 7
Katana 3.1v1 - CentOS 7
Katana 3.0v9 - CentOS 7
Katana 3.0v1 - CentOS 7

Earliest version tested
Katana 3.0v1 - The Hydra Viewer did not exist before this version

 

    We're sorry to hear that

    Please tell us why