From 308b06d471ba41177659d438632053cdce702b39 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Samuel=20Iglesias=20Gons=C3=A1lvez?= Date: Mon, 7 Nov 2016 11:49:13 +0100 Subject: [PATCH] main: return error if asking for GL_TEXTURE_BORDER_COLOR in TEXTURE_2D_MULTISAMPLE{_ARRAY} through TexParameter{i,Ii,Iui}v() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. v2: - Add check to _mesa_texture_parameteriv() (Kenneth) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98250 Signed-off-by: Samuel Iglesias Gonsálvez Reviewed-by: Kenneth Graunke --- src/mesa/main/texparam.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c index 29eed078650..4db406fa9f6 100644 --- a/src/mesa/main/texparam.c +++ b/src/mesa/main/texparam.c @@ -934,6 +934,10 @@ _mesa_texture_parameteriv(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, "glTextureParameteriv(texture)"); + return; + } /* convert int params to float */ GLfloat fparams[4]; fparams[0] = INT_TO_FLOAT(params[0]); @@ -974,6 +978,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 +1000,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); -- 2.30.2