dEQP-GLES31.functional.ssbo.layout.random.*: Add check for GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS
Commit 237916d03377a469e30dd36087738b069f83a19a
(gles31:es31fSSBOLayoutTests limit m_maxBlocks and m_maxBlockMembers
for low ram device) disturbs the random number generator for this set
of tests.
This CL adds additional check to mark a test case as unsupported when
applicable.
Bug: 125999156
Test: dEQP-GLES31.functional.ssbo.layout.random.all_per_block_buffers#45
Change-Id: I82f4ff846d9ac1389b51687f330ce8233d4856b7
(cherry picked from commit 6859e6c3488a5c757557b42c3774508baeacf3d0)
diff --git a/modules/gles31/functional/es31fSSBOLayoutCase.cpp b/modules/gles31/functional/es31fSSBOLayoutCase.cpp
index a9e0e6e..3665383 100644
--- a/modules/gles31/functional/es31fSSBOLayoutCase.cpp
+++ b/modules/gles31/functional/es31fSSBOLayoutCase.cpp
@@ -1286,10 +1286,12 @@
{
std::ostringstream src;
glw::GLint maxShaderStorageBufferBindings;
+ glw::GLint maxComputeShaderStorageBlocks;
DE_ASSERT(glslVersion == glu::GLSL_VERSION_310_ES || glslVersion == glu::GLSL_VERSION_430);
gl.getIntegerv(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, &maxShaderStorageBufferBindings);
+ gl.getIntegerv(GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS, &maxComputeShaderStorageBlocks);
src << glu::getGLSLVersionDeclaration(glslVersion) << "\n";
src << "layout(local_size_x = 1) in;\n";
@@ -1315,6 +1317,10 @@
{
throw tcu::NotSupportedError("Test requires support for more SSBO bindings than implementation exposes");
}
+ if (bindingPoint > maxComputeShaderStorageBlocks)
+ {
+ throw tcu::NotSupportedError("Test requires support for more compute shader storage blocks than implementation exposes");
+ }
}
// Atomic counter for counting passed invocations.