[Mesa-dev] [PATCH] main: return error if asking for GL_TEXTURE_BORDER_COLOR in TEXTURE_2D_MULTISAMPLE{_ARRAY} through TexParameterI{i, ui}v()

Kenneth Graunke kenneth at whitecape.org
Tue Nov 15 04:05:52 UTC 2016


On Monday, November 7, 2016 11:49:13 AM PST Samuel Iglesias Gonsálvez wrote:
> OpenGL ES 3.2 says in section 8.10. "TEXTURE PARAMETERS", at the end of
> the section:
> 
> "An INVALID_ENUM error is generated if target is TEXTURE_2D_-
> MULTISAMPLE or TEXTURE_2D_MULTISAMPLE_ARRAY , and pname is any
> sampler state from table 21.12."
> 
> GL_TEXTURE_BORDER_COLOR is present in that table.
> 
> Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98250
> ---
>  src/mesa/main/texparam.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
> index 29eed07..ae96bd8 100644
> --- a/src/mesa/main/texparam.c
> +++ b/src/mesa/main/texparam.c
> @@ -974,6 +974,10 @@ _mesa_texture_parameterIiv(struct gl_context *ctx,
>  {
>     switch (pname) {
>     case GL_TEXTURE_BORDER_COLOR:
> +      if (!_mesa_target_allows_setting_sampler_parameters(texObj->Target)) {
> +         _mesa_error(ctx, GL_INVALID_ENUM, "glTextureParameterIiv(texture)");
> +         return;
> +      }
>        FLUSH_VERTICES(ctx, _NEW_TEXTURE);
>        /* set the integer-valued border color */
>        COPY_4V(texObj->Sampler.BorderColor.i, params);
> @@ -992,6 +996,10 @@ _mesa_texture_parameterIuiv(struct gl_context *ctx,
>  {
>     switch (pname) {
>     case GL_TEXTURE_BORDER_COLOR:
> +      if (!_mesa_target_allows_setting_sampler_parameters(texObj->Target)) {
> +         _mesa_error(ctx, GL_INVALID_ENUM, "glTextureParameterIuiv(texture)");
> +         return;
> +      }
>        FLUSH_VERTICES(ctx, _NEW_TEXTURE);
>        /* set the unsigned integer-valued border color */
>        COPY_4V(texObj->Sampler.BorderColor.ui, params);
> 

You need to add this check in _mesa_texture_parameteriv as well.

- glTexParameterfv: already checks this (confirms we need this) :)
- glTexParameterIiv: fixed by your patch
- glTexParameterIuiv: fixed by your patch
- glTexParameteriv: needs the error check also.

With that fixed, this is:
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161114/b77a6dd6/attachment.sig>


More information about the mesa-dev mailing list