From a83ce04aa84e3e8c7a038b4c5caa127217d5ace1 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 f57e4a9b66..f8d5f481b1 100644 --- a/src/OpenGl/OpenGl_ShaderManager.cxx +++ b/src/OpenGl/OpenGl_ShaderManager.cxx @@ -1333,7 +1333,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));" @@ -1344,9 +1344,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.39.5