[Piglit] [PATCH] arb_uniform_buffer_object-minmax: divide block size by 4 to get components

Brian Paul brianp at vmware.com
Wed Jun 25 12:27:07 PDT 2014


GL_MAX_UNIFORM_BLOCK_SIZE is in bytes.  A "component" is regarded as being
four bytes in size.  So to compute the number of components, divide the
block size by 4.

With this change, nvidia's driver passes the test.

Found by Kai Ninomiya of VMware.
---
 tests/spec/arb_uniform_buffer_object/minmax.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/spec/arb_uniform_buffer_object/minmax.c b/tests/spec/arb_uniform_buffer_object/minmax.c
index 03b254c..e5cd81a 100644
--- a/tests/spec/arb_uniform_buffer_object/minmax.c
+++ b/tests/spec/arb_uniform_buffer_object/minmax.c
@@ -81,9 +81,9 @@ piglit_init(int argc, char **argv)
 	glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, &funiforms);
 	glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &blocksize);
 	piglit_test_min_int(GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,
-			 vblocks * blocksize + vuniforms);
+			 vblocks * blocksize / 4 + vuniforms);
 	piglit_test_min_int(GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,
-			 fblocks * blocksize + funiforms);
+			 fblocks * blocksize / 4 + funiforms);
 	if (gs) {
 		if (piglit_get_gl_version() >= 31) {
 			glGetIntegerv(GL_MAX_GEOMETRY_UNIFORM_BLOCKS, &gblocks);
@@ -91,7 +91,7 @@ piglit_init(int argc, char **argv)
 		glGetIntegerv(GL_MAX_GEOMETRY_UNIFORM_COMPONENTS, &guniforms);
 
 		piglit_test_min_int(GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS,
-				    gblocks * blocksize + guniforms);
+				    gblocks * blocksize / 4 + guniforms);
 	}
 
 	piglit_test_min_int(GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, 1);
-- 
1.7.10.4



More information about the Piglit mailing list