[Mesa-dev] [PATCH] mesa: Return GL_INVALID_ENUM for bogus TEXTURE_SRGB_DECODE_EXT params.

Iago Toral itoral at igalia.com
Thu Jul 13 11:41:26 UTC 2017


Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>

On Wed, 2017-07-12 at 21:40 -0700, Kenneth Graunke wrote:
> Fixes dEQP-
> GLES31.functional.debug.negative_coverage.get_error.shader.srgb_decod
> e_samplerparameter{f,fv,i,Iiv,Iuiv,iv}.
> ---
>  src/mesa/main/samplerobj.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
> index d78528be2db..26e77252490 100644
> --- a/src/mesa/main/samplerobj.c
> +++ b/src/mesa/main/samplerobj.c
> @@ -780,8 +780,19 @@ set_sampler_srgb_decode(struct gl_context *ctx,
>     if (samp->sRGBDecode == param)
>        return GL_FALSE;
>  
> +   /* The EXT_texture_sRGB_decode spec says:
> +    *
> +    *    "INVALID_ENUM is generated if the <pname> parameter of
> +    *     TexParameter[i,f,Ii,Iui][v][EXT],
> +    *     MultiTexParameter[i,f,Ii,Iui][v]EXT,
> +    *     TextureParameter[i,f,Ii,Iui][v]EXT,
> SamplerParameter[i,f,Ii,Iui][v]
> +    *     is TEXTURE_SRGB_DECODE_EXT when the <param> parameter is
> not one of
> +    *     DECODE_EXT or SKIP_DECODE_EXT.
> +    *
> +    * Returning INVALID_PARAM makes that happen.
> +    */
>     if (param != GL_DECODE_EXT && param != GL_SKIP_DECODE_EXT)
> -      return INVALID_VALUE;
> +      return INVALID_PARAM;
>  
>     flush(ctx);
>     samp->sRGBDecode = param;


More information about the mesa-dev mailing list