[Piglit] [PATCH 1/4] arb_shader_image_load_store/image: Factor out calculation of the number of reserved images.

Francisco Jerez currojerez at riseup.net
Sun Feb 14 03:40:00 UTC 2016


Francisco Jerez <currojerez at riseup.net> writes:

> In order to make sure we use the same value wherever it's needed.
> ---
>  tests/spec/arb_shader_image_load_store/image.c | 34 ++++++++++++++++----------
>  1 file changed, 21 insertions(+), 13 deletions(-)
>
> diff --git a/tests/spec/arb_shader_image_load_store/image.c b/tests/spec/arb_shader_image_load_store/image.c
> index 5c3629b..81c1e81 100644
> --- a/tests/spec/arb_shader_image_load_store/image.c
> +++ b/tests/spec/arb_shader_image_load_store/image.c
> @@ -654,6 +654,19 @@ get_image_stage(GLenum s)
>          return NULL;
>  }
>  
> +/**
> + * Get the number of images internally required by the framework for a
> + * pipeline with the given set of stages.
> + */
> +static int
> +num_reserved_images(GLbitfield stages)
> +{
> +   /* One image uniform is reserved in the compute stage for the grid
> +    * framework to read back the result of the program.
> +    */
> +   return (stages & GL_COMPUTE_SHADER_BIT ? 1 : 0);

I noticed I had the indentation mode set wrong for this file, fixed
locally.

> +}
> +
>  unsigned
>  image_stage_max_images(const struct image_stage_info *stage)
>  {
> @@ -662,40 +675,35 @@ image_stage_max_images(const struct image_stage_info *stage)
>          switch (stage->stage) {
>          case GL_FRAGMENT_SHADER:
>                  glGetIntegerv(GL_MAX_FRAGMENT_IMAGE_UNIFORMS, &n);
> -                return n;
> +                break;
>  
>          case GL_VERTEX_SHADER:
>                  glGetIntegerv(GL_MAX_VERTEX_IMAGE_UNIFORMS, &n);
> -                return n;
> +                break;
>  
>          case GL_GEOMETRY_SHADER:
>                  if (piglit_get_gl_version() >= 32)
>                          glGetIntegerv(GL_MAX_GEOMETRY_IMAGE_UNIFORMS, &n);
> -                return n;
> +                break;
>  
>          case GL_TESS_CONTROL_SHADER:
>                  if (piglit_is_extension_supported("GL_ARB_tessellation_shader"))
>                          glGetIntegerv(GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS, &n);
> -                return n;
> +                break;
>  
>          case GL_TESS_EVALUATION_SHADER:
>                  if (piglit_is_extension_supported("GL_ARB_tessellation_shader"))
>                          glGetIntegerv(GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS,
>                                        &n);
> -                return n;
> +                break;
>  
>          case GL_COMPUTE_SHADER:
>                  if (piglit_is_extension_supported("GL_ARB_compute_shader"))
>                          glGetIntegerv(GL_MAX_COMPUTE_IMAGE_UNIFORMS, &n);
> -                /* One image uniform is reserved in the compute stage
> -                 * for the grid framework to read back the result of
> -                 * the program.
> -                 */
> -                return MAX2(0, n - 1);
> -
> -        default:
> -                return 0;
> +                break;
>          }
> +
> +        return MAX2(0, n - num_reserved_images(stage->bit));
>  }
>  
>  unsigned
> -- 
> 2.7.0
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20160213/d5ddabcd/attachment-0001.sig>


More information about the Piglit mailing list