[Piglit] [PATCH 1/6] shader_runner: Check feature support before querying GL_MAX_*.

Kenneth Graunke kenneth at whitecape.org
Wed Nov 11 16:47:41 PST 2015


On Tuesday, November 10, 2015 10:46:18 PM Matt Turner wrote:
> Otherwise, these will generate an error (to be noticed sometime later
> when glGetError() is called), often resulting in a test failure.
> ---
>  tests/shaders/shader_runner.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
> index 32ac7bd..4597b46 100644
> --- a/tests/shaders/shader_runner.c
> +++ b/tests/shaders/shader_runner.c
> @@ -3111,12 +3111,18 @@ piglit_init(int argc, char **argv)
>  	if (piglit_get_gl_version() >= 32)
>  		glGetIntegerv(GL_MAX_VERTEX_OUTPUT_COMPONENTS,
>  			      &gl_max_vertex_output_components);
> -	glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
> -		      &gl_max_fragment_uniform_components);
> -	glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS,
> -		      &gl_max_vertex_uniform_components);
> -	glGetIntegerv(GL_MAX_VARYING_COMPONENTS,
> -		      &gl_max_varying_components);
> +	if (piglit_get_gl_version() >= 20 ||
> +	    piglit_is_extension_supported("GL_ARB_fragment_shader"))
> +		glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
> +			      &gl_max_fragment_uniform_components);
> +	if (piglit_get_gl_version() >= 20 ||
> +	    piglit_is_extension_supported("GL_ARB_vertex_shader"))
> +		glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS,
> +			      &gl_max_vertex_uniform_components);

Above this, we call piglit_require_GLSL()...it seems like that
ought to be causing us to skip in this case.  Maybe we don't
return early enough?

There's also piglit_require_vertex_shader() and
piglit_require_fragment_shader() if those are useful to you...

> +	if (piglit_get_gl_version() >= 30 ||
> +	    piglit_is_extension_supported("GL_EXT_geometry_shader4"))
> +		glGetIntegerv(GL_MAX_VARYING_COMPONENTS,
> +			      &gl_max_varying_components);

There's also GL_ARB_geometry_shader4, which introduces this.

>  	glGetIntegerv(GL_MAX_CLIP_PLANES, &gl_max_clip_planes);
>  #else
>  	glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_VECTORS,
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20151111/c43151fa/attachment.sig>


More information about the Piglit mailing list