From e3744452bb60730ebf3e00e366e961f17e9ca3ec Mon Sep 17 00:00:00 2001 From: kgv Date: Wed, 14 Feb 2018 22:58:34 +0300 Subject: [PATCH] 0029509: Visualization, TKOpenGl - Weighted OIT + MSAA shader compilation errors Fix implicit cast ivec2->vec2 and specify GLSL version to "320 es" on appropriate devices. --- src/OpenGl/OpenGl_ShaderManager.cxx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/OpenGl/OpenGl_ShaderManager.cxx b/src/OpenGl/OpenGl_ShaderManager.cxx index 1b6d056558..52f73682ad 100644 --- a/src/OpenGl/OpenGl_ShaderManager.cxx +++ b/src/OpenGl/OpenGl_ShaderManager.cxx @@ -1345,7 +1345,7 @@ Standard_Boolean OpenGl_ShaderManager::prepareStdProgramOitCompositing (const St EOL EOL"void main()" EOL"{" - EOL" ivec2 aTexel = ivec2 (textureSize (uAccumTexture) * TexCoord);" + EOL" ivec2 aTexel = ivec2 (vec2 (textureSize (uAccumTexture)) * TexCoord);" EOL" vec4 aAccum = texelFetch (uAccumTexture, aTexel, gl_SampleID);" EOL" float aWeight = texelFetch (uWeightTexture, aTexel, gl_SampleID).r;" EOL" occSetFragColor (vec4 (aAccum.rgb / max (aWeight, 0.00001), aAccum.a));" @@ -1356,9 +1356,13 @@ Standard_Boolean OpenGl_ShaderManager::prepareStdProgramOitCompositing (const St aProgramSrc->SetHeader ("#version 400"); } #else - if (myContext->IsGlGreaterEqual (3, 0)) + if (myContext->IsGlGreaterEqual (3, 2)) { - aProgramSrc->SetHeader ("#version 300 es"); + aProgramSrc->SetHeader ("#version 320 es"); + } + else if (myContext->IsGlGreaterEqual (3, 0)) + { + aProgramSrc->SetHeader ("#version 300 es"); // with GL_OES_sample_variables extension } #endif } -- 2.20.1