Skip OOB SSBO fragment tests for ES3.1 GPUs am: f5fc3c8409 am: ea27c20fd2
authorAlexander Galazin <alexander.galazin@arm.com>
Fri, 9 Jun 2017 23:44:36 +0000 (23:44 +0000)
committerandroid-build-merger <android-build-merger@google.com>
Fri, 9 Jun 2017 23:44:36 +0000 (23:44 +0000)
am: d097af6b28

Change-Id: I18cdcf9462de3962e6c98d2aaed42a7cdbc4f254

modules/egl/teglRobustnessTests.cpp

index a8d37b5..f43ff74 100644 (file)
@@ -1277,15 +1277,17 @@ glu::ProgramSources ShadersOOB::genSources (void)
 
 void ShadersOOB::setup (void)
 {
-       if (!m_isUBO && !m_isLocalArray && (m_shaderType == SHADERTYPE_VERT || m_shaderType == SHADERTYPE_VERT_AND_FRAG))
+       if (!m_isUBO && !m_isLocalArray && (m_shaderType != SHADERTYPE_COMPUTE))
        {
-               // Check implementation limits for vertex shader SSBO
-               int vertexShaderStorageBlockSupported = -1;
+               // Check implementation limits for shader SSBO
+               int shaderStorageBlockSupported = -1;
+               const bool isVertex = (m_shaderType == SHADERTYPE_VERT || m_shaderType == SHADERTYPE_VERT_AND_FRAG) ? true : false;
+               string shaderTypeStr = isVertex ? "GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS" : "GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS";
 
-               GLU_CHECK_GLW_CALL(m_gl, getIntegerv(GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS, &vertexShaderStorageBlockSupported));
+               GLU_CHECK_GLW_CALL(m_gl, getIntegerv(isVertex ? GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS : GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS, &shaderStorageBlockSupported));
 
-               if (vertexShaderStorageBlockSupported < (int)m_buffers.size())
-                       TCU_THROW(NotSupportedError, ("Test requires GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS >= " + de::toString((int)m_buffers.size()) + ", got " + de::toString(vertexShaderStorageBlockSupported)).c_str());
+               if (shaderStorageBlockSupported < (int)m_buffers.size())
+                       TCU_THROW(NotSupportedError, ("Test requires " + shaderTypeStr + " >= " + de::toString((int)m_buffers.size()) + ", got " + de::toString(shaderStorageBlockSupported)).c_str());
        }
 
        glu::ShaderProgram program(m_gl, genSources());