[Fixing CC list.] Ping. Would appreciate someone taking a look at this. Thanks in advance!
On Fri, Aug 26, 2016 at 2:57 AM, Chad Versace <[email protected]> wrote: > Bump. > > On Thu 11 Aug 2016, Chad Versace wrote: > > If check_textarget() determined that textarget was incorrect, it emitted > > GL_INVALID_OPERATION. This is the correct behavior when target and > > textarget are mismatched but textarget is a valid textarget enum. > > > > When textarget is not a valid textarget enum, the GL spec requires that > > GL_INVALID_ENUM be emitted. > > > > Fixes test dEQP-GLES3.functional.negative_api.buffer.framebuffer_ > texture2d. > > > > v2: > > - Continue emitting GL_INVALID_OPERATION when textarget is > > a valid textarget enum mismatched with target. [idr and imirkin] > > > > Cc: Ian Romanick <[email protected]> > > Cc: Ilia Mirkin <[email protected]> > > Cc: Haixia Shi <[email protected]> > > Change-Id: I86c492f228720ec8cf9939e741cfc99a5d9fa1bc > > --- > > > > I'm now checking that textarget is a valid textarget enum with a switch > > at the top of the function, which emits error GL_INVALID_ENUM. The > > switch lists every textarget I know of, but I'm not confident that it's > > correct. > > > > Should some textargets not be in the switch? > > > > > > > > src/mesa/main/fbobject.c | 33 ++++++++++++++++++++++++++------- > > 1 file changed, 26 insertions(+), 7 deletions(-) > > > > diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c > > index 2c01526..76adb29 100644 > > --- a/src/mesa/main/fbobject.c > > +++ b/src/mesa/main/fbobject.c > > @@ -2979,6 +2979,32 @@ check_textarget(struct gl_context *ctx, int dims, > GLenum target, > > { > > bool err = false; > > > > + /* Check that textarget is a valid textarget enum. */ > > + switch (textarget) { > > + case GL_TEXTURE_1D: > > + case GL_TEXTURE_1D_ARRAY: > > + case GL_TEXTURE_2D: > > + case GL_TEXTURE_2D_ARRAY: > > + case GL_TEXTURE_2D_MULTISAMPLE: > > + case GL_TEXTURE_2D_MULTISAMPLE_ARRAY: > > + case GL_TEXTURE_CUBE_MAP: > > + case GL_TEXTURE_CUBE_MAP_ARRAY: > > + case GL_TEXTURE_CUBE_MAP_POSITIVE_X: > > + case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: > > + case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: > > + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: > > + case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: > > + case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: > > + case GL_TEXTURE_RECTANGLE: > > + case GL_TEXTURE_3D: > > + break; > > + default: > > + _mesa_error(ctx, GL_INVALID_ENUM, "%s(invalid textarget %s)", > > + caller, _mesa_enum_to_string(textarget)); > > + return false; > > + } > > + > > + /* Check that target and textarget match. */ > > switch (dims) { > > case 1: > > switch (textarget) { > > @@ -3029,13 +3055,6 @@ check_textarget(struct gl_context *ctx, int dims, > GLenum target, > > err = true; > > } > > > > - if (err) { > > - _mesa_error(ctx, GL_INVALID_OPERATION, > > - "%s(invalid textarget %s)", > > - caller, _mesa_enum_to_string(textarget)); > > - return false; > > - } > > - > > /* Make sure textarget is consistent with the texture's type */ > > err = (target == GL_TEXTURE_CUBE_MAP) ? > > !_mesa_is_cube_face(textarget): (target != textarget); > > -- > > 2.9.2 > > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
