[Piglit] [PATCH 7/7] arb_shader_storage_buffer_object: set KHR_no_error compatibility

Samuel Pitoiset samuel.pitoiset at gmail.com
Tue May 23 21:50:51 UTC 2017


Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

On 05/18/2017 04:00 AM, Timothy Arceri wrote:
> ---
>   .../array-ssbo-binding.c                           |  1 +
>   .../deletebuffers.c                                |  1 +
>   .../getintegeri_v.c                                | 13 +++++---
>   .../layout-std140-write-shader.c                   |  1 +
>   .../layout-std430-write-shader.c                   |  1 +
>   .../max-ssbo-size.c                                |  1 +
>   .../arb_shader_storage_buffer_object/maxblocks.c   |  1 +
>   .../spec/arb_shader_storage_buffer_object/minmax.c |  1 +
>   .../program-interface-query.c                      |  1 +
>   .../arb_shader_storage_buffer_object/rendering.c   |  1 +
>   .../ssbo-binding.c                                 | 39 ++++++++++++----------
>   11 files changed, 39 insertions(+), 22 deletions(-)
> 
> diff --git a/tests/spec/arb_shader_storage_buffer_object/array-ssbo-binding.c b/tests/spec/arb_shader_storage_buffer_object/array-ssbo-binding.c
> index f3c7d15..d98795d 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/array-ssbo-binding.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/array-ssbo-binding.c
> @@ -29,20 +29,21 @@
>    */
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   	config.window_width = 100;
>   	config.window_height = 100;
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   #define SSBO_SIZE 4
>   
>   static const char vs_pass_thru_text[] =
>   	"#version 330\n"
>   	"#extension GL_ARB_shader_storage_buffer_object : require\n"
>   	"\n"
>   	"layout(std140, binding=2) buffer ssbo {\n"
> diff --git a/tests/spec/arb_shader_storage_buffer_object/deletebuffers.c b/tests/spec/arb_shader_storage_buffer_object/deletebuffers.c
> index 947bca9..653228d 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/deletebuffers.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/deletebuffers.c
> @@ -28,20 +28,21 @@
>    * usual glBindBuffer() binding.
>    */
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   void
>   piglit_init(int argc, char **argv)
>   {
>   	bool pass = true;
>   	GLuint bo[2];
>   	GLint binding;
>   
> diff --git a/tests/spec/arb_shader_storage_buffer_object/getintegeri_v.c b/tests/spec/arb_shader_storage_buffer_object/getintegeri_v.c
> index 9e7617f..e304397 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/getintegeri_v.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/getintegeri_v.c
> @@ -37,20 +37,21 @@
>    * Based on ARB_uniform_buffer_object's getintegeri_v.c
>    */
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   static bool pass = true;
>   
>   static void
>   test_index(int line, GLenum e, int index, int expected)
>   {
>   	GLint val;
>   
> @@ -98,24 +99,28 @@ piglit_init(int argc, char **argv)
>   	test_range(__LINE__, 0, bo[0], 0, 1);
>   	test_range(__LINE__, 1, bo[1], 2 * alignment, 3);
>   
>   	glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, bo[1]);
>   	test_range(__LINE__, 1, bo[1], 0, 0);
>   
>   	glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, 0);
>   	test_range(__LINE__, 0, 0, 0, 0);
>   
>   	/* Test the error condition. */
> -	glGetIntegerv(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, &max_bindings);
> -	glGetIntegeri_v(GL_SHADER_STORAGE_BUFFER_BINDING, max_bindings, &junk);
> -	if (!piglit_check_gl_error(GL_INVALID_VALUE))
> -		pass = false;
> +	if (!piglit_khr_no_error) {
> +		glGetIntegerv(GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS,
> +			      &max_bindings);
> +		glGetIntegeri_v(GL_SHADER_STORAGE_BUFFER_BINDING,
> +				max_bindings, &junk);
> +		if (!piglit_check_gl_error(GL_INVALID_VALUE))
> +			pass = false;
> +	}
>   
>   	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
>   }
>   
>   enum piglit_result piglit_display(void)
>   {
>   	/* UNREACHED */
>   	return PIGLIT_FAIL;
>   }
>   
> diff --git a/tests/spec/arb_shader_storage_buffer_object/layout-std140-write-shader.c b/tests/spec/arb_shader_storage_buffer_object/layout-std140-write-shader.c
> index 1eaba37..c67248e 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/layout-std140-write-shader.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/layout-std140-write-shader.c
> @@ -28,20 +28,21 @@
>    */
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   	config.window_width = 100;
>   	config.window_height = 100;
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   #define SSBO_SIZE 44
>   
>   static const char vs_pass_thru_text[] =
>   	"#version 130\n"
>   	"#extension GL_ARB_shader_storage_buffer_object : require\n"
>           "#extension GL_ARB_uniform_buffer_object : require\n"
>   	"\n"
> diff --git a/tests/spec/arb_shader_storage_buffer_object/layout-std430-write-shader.c b/tests/spec/arb_shader_storage_buffer_object/layout-std430-write-shader.c
> index f821f69..70c87a1 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/layout-std430-write-shader.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/layout-std430-write-shader.c
> @@ -36,20 +36,21 @@
>    */
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   	config.window_width = 100;
>   	config.window_height = 100;
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   #define SSBO_SIZE 64
>   
>   static const char vs_pass_thru_text[] =
>   	"#version 130\n"
>   	"#extension GL_ARB_shader_storage_buffer_object : require\n"
>           "#extension GL_ARB_uniform_buffer_object : require\n"
>   	"\n"
> diff --git a/tests/spec/arb_shader_storage_buffer_object/max-ssbo-size.c b/tests/spec/arb_shader_storage_buffer_object/max-ssbo-size.c
> index da5d152..4af70aa 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/max-ssbo-size.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/max-ssbo-size.c
> @@ -29,20 +29,21 @@
>    * Based on ARB_uniform_buffer_object's maxuniformblocksize.c
>    */
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   static enum {
>   	VS,
>   	VS_EXCEED,
>   	FS,
>   	FS_EXCEED,
>   } mode;
>   
> diff --git a/tests/spec/arb_shader_storage_buffer_object/maxblocks.c b/tests/spec/arb_shader_storage_buffer_object/maxblocks.c
> index 50f2f7c..d95e057 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/maxblocks.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/maxblocks.c
> @@ -44,20 +44,21 @@
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   
>   	config.window_width = 800;
>   	config.window_height = 200;
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   static char *
>   get_shader(GLenum target, const char *block_prefix, int blocks)
>   {
>   	char *shader = NULL;
>   	const char *vs_source =
>   		"#version 130\n"
>   		"#extension GL_ARB_shader_storage_buffer_object : enable\n"
> diff --git a/tests/spec/arb_shader_storage_buffer_object/minmax.c b/tests/spec/arb_shader_storage_buffer_object/minmax.c
> index 71d86fe..bb0385e 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/minmax.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/minmax.c
> @@ -26,20 +26,21 @@
>    * Test for the minimum and maximum values specified in the
>    * ARB_shader_storage_buffer_object spec.
>    */
>   #include "piglit-util-gl.h"
>   #include "minmax-test.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   
>   	config.supports_gl_compat_version = 40;
>   	config.supports_gl_core_version = 40;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   enum piglit_result
>   piglit_display(void)
>   {
>   	/* UNREACHED */
>   	return PIGLIT_FAIL;
>   }
>   
> diff --git a/tests/spec/arb_shader_storage_buffer_object/program-interface-query.c b/tests/spec/arb_shader_storage_buffer_object/program-interface-query.c
> index 68cbbff..131cd40 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/program-interface-query.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/program-interface-query.c
> @@ -28,20 +28,21 @@
>    */
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   	config.window_width = 100;
>   	config.window_height = 100;
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   #define SSBO_SIZE 4
>   #define NUM_QUERIES 11
>   
>   static const char vs_pass_thru_text[] =
>   	"#version 330\n"
>   	"#extension GL_ARB_shader_storage_buffer_object : require\n"
>   	"\n"
> diff --git a/tests/spec/arb_shader_storage_buffer_object/rendering.c b/tests/spec/arb_shader_storage_buffer_object/rendering.c
> index 52d5882..9a87ffe 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/rendering.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/rendering.c
> @@ -29,20 +29,21 @@
>    * Based on GL_ARB_uniform_buffer_object's rendering.c
>    */
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   static const char vert_shader_text[] =
>   	"#version 130\n"
>   	"#extension GL_ARB_shader_storage_buffer_object : require\n"
>   	"\n"
>   	"buffer ssbo_pos_size { vec2 pos; float size; };\n"
>   	"buffer ssbo_rot {float rotation; };\n"
>   	"in vec4 piglit_vertex;\n"
> diff --git a/tests/spec/arb_shader_storage_buffer_object/ssbo-binding.c b/tests/spec/arb_shader_storage_buffer_object/ssbo-binding.c
> index 062f71e..e4701d7 100644
> --- a/tests/spec/arb_shader_storage_buffer_object/ssbo-binding.c
> +++ b/tests/spec/arb_shader_storage_buffer_object/ssbo-binding.c
> @@ -40,20 +40,21 @@
>    *   variables in the shader storage block identified by <storageBlockIndex>."
>    */
>   
>   #include "piglit-util-gl.h"
>   
>   PIGLIT_GL_TEST_CONFIG_BEGIN
>   
>   	config.supports_gl_compat_version = 32;
>   	config.supports_gl_core_version = 32;
>   	config.window_visual = PIGLIT_GL_VISUAL_DOUBLE | PIGLIT_GL_VISUAL_RGBA;
> +	config.khr_no_error_support = PIGLIT_NO_ERRORS;
>   
>   PIGLIT_GL_TEST_CONFIG_END
>   
>   static GLuint prog;
>   
>   static const char frag_shader_text[] =
>   	"#version 130\n"
>   	"#extension GL_ARB_shader_storage_buffer_object : require\n"
>   	"\n"
>   	"buffer ssbo_a { vec4 a; };\n"
> @@ -89,38 +90,40 @@ piglit_init(int argc, char **argv)
>   	glShaderStorageBlockBinding(prog, index, 0);
>   	if (!piglit_check_gl_error(0)) {
>   		pass = false;
>   	}
>   	printf("Test binding value: %d\n", max_binding - 1);
>   	glShaderStorageBlockBinding(prog, index, max_binding - 1);
>   	if (!piglit_check_gl_error(0)) {
>   		pass = false;
>   	}
>   
> -	/* The error INVALID_VALUE is generated if <storageBlockIndex> is not
> -	 * an active shader storage block index in <program>, or if
> -	 * <storageBlockBinding> is greater than or equal to the value of
> -	 * MAX_SHADER_STORAGE_BUFFER_BINDINGS.
> -	 */
> -	printf("Test binding value: %d\n", max_binding);
> -	glShaderStorageBlockBinding(prog, index, max_binding);
> -	if (!piglit_check_gl_error(GL_INVALID_VALUE)) {
> -		pass = false;
> -	}
> -
> -	/* The error INVALID_VALUE is generated if <storageBlockIndex> is not
> -	 * an active shader storage block index in <program>
> -	 */
> -	printf("Test invalid index: %d\n", index + 1);
> -	glShaderStorageBlockBinding(prog, index + 1, 0);
> -	if (!piglit_check_gl_error(GL_INVALID_VALUE)) {
> -		pass = false;
> +	if (!piglit_khr_no_error) {
> +		/* The error INVALID_VALUE is generated if <storageBlockIndex>
> +		 * is not an active shader storage block index in <program>,
> +		 * or if <storageBlockBinding> is greater than or equal to the
> +		 * value of MAX_SHADER_STORAGE_BUFFER_BINDINGS.
> +		 */
> +		printf("Test binding value: %d\n", max_binding);
> +		glShaderStorageBlockBinding(prog, index, max_binding);
> +		if (!piglit_check_gl_error(GL_INVALID_VALUE)) {
> +			pass = false;
> +		}
> +
> +		/* The error INVALID_VALUE is generated if <storageBlockIndex>
> +		 * is not an active shader storage block index in <program>
> +		 */
> +		printf("Test invalid index: %d\n", index + 1);
> +		glShaderStorageBlockBinding(prog, index + 1, 0);
> +		if (!piglit_check_gl_error(GL_INVALID_VALUE)) {
> +			pass = false;
> +		}
>   	}
>   
>   	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
>   }
>   
>   enum piglit_result piglit_display(void)
>   {
>   	/* UNREACHED */
>   	return PIGLIT_FAIL;
>   }
> 


More information about the Piglit mailing list