Fix texture/sampler mapping in sRGB tests
authorAlexander Galazin <alexander.galazin@arm.com>
Thu, 11 May 2017 12:27:20 +0000 (14:27 +0200)
committerPyry Haulos <phaulos@google.com>
Mon, 15 May 2017 18:06:22 +0000 (18:06 +0000)
sRGB decode tests assume that an API side texture with index i
is connected with a shader sampler variable uTexture with index i.

This relation was however incorrectly established, e.g.
the tests were mapping texture0 to a sampler with location 0, while
such sampler was not necessarily uTexture0.

This change fixes the mapping and makes the relation more obvious.

Components: AOSP
Affects:
dEQP-GLES31.functional.srgb_texture_decode.skip_decode.*.toggled
dEQP-GLES31.functional.srgb_texture_decode.skip_decode.*.conversion_gpu

Google bug: 38257749

Change-Id: I16508f6033b31583b1c5973b70a610dd59e78e8f

modules/gles31/functional/es31fSRGBDecodeTests.cpp

index 114a624..1f4e49a 100644 (file)
@@ -42,6 +42,7 @@
 #include "gluObjectWrapper.hpp"
 #include "gluStrUtil.hpp"
 #include "tcuTestLog.hpp"
+#include "deStringUtil.hpp"
 
 namespace deqp
 {
@@ -1251,7 +1252,7 @@ void SRGBTestCase::render (void)
        {
                gl.activeTexture(GL_TEXTURE0 + (glw::GLenum)textureSourceIdx);
                gl.bindTexture(m_textureSourceList[textureSourceIdx]->getGLTargetType(), m_textureSourceList[textureSourceIdx]->getHandle());
-               glw::GLuint samplerUniformLocationID = gl.getUniformLocation(m_shaderProgramList[0]->getHandle(), m_shaderProgramList[0]->getUniformAtLocation(textureSourceIdx).name.c_str());
+               glw::GLuint samplerUniformLocationID = gl.getUniformLocation(m_shaderProgramList[0]->getHandle(), (std::string("uTexture") + de::toString(textureSourceIdx)).c_str());
                TCU_CHECK(samplerUniformLocationID != (glw::GLuint)-1);
                gl.uniform1i(samplerUniformLocationID, (glw::GLenum)textureSourceIdx);
        }
@@ -1675,7 +1676,7 @@ void DecodeToggledCase::render (void)
                {
                        gl.activeTexture(GL_TEXTURE0 + (glw::GLenum)textureSourceIdx);
                        gl.bindTexture(m_textureSourceList[textureSourceIdx]->getGLTargetType(), m_textureSourceList[textureSourceIdx]->getHandle());
-                       glw::GLuint samplerUniformLocationID = gl.getUniformLocation(m_shaderProgramList[programIdx]->getHandle(), m_shaderProgramList[programIdx]->getUniformAtLocation(textureSourceIdx).name.c_str());
+                       glw::GLuint samplerUniformLocationID = gl.getUniformLocation(m_shaderProgramList[programIdx]->getHandle(), (std::string("uTexture") + de::toString(textureSourceIdx)).c_str());
                        TCU_CHECK(samplerUniformLocationID != (glw::GLuint) - 1);
                        gl.uniform1i(samplerUniformLocationID, (glw::GLenum)textureSourceIdx);
                }