[Mesa-dev] [PATCH 2/2] mesa: Fix glFramebufferTexture* error codes (v2)

Tomasz Figa tfiga at chromium.org
Tue Oct 11 12:12:47 UTC 2016


On Tue, Oct 11, 2016 at 7:26 PM, Tapani Pälli <tapani.palli at intel.com>
wrote:

> it seems commit a40640f5303c9d03845459ecc364a3466d25cb5b fixed this same
> issue (and some other failing tests) so this patch is no longer needed
>
>
Thanks! Sorry for the noise, then.


>
> On 10/11/2016 09:29 AM, Tomasz Figa wrote:
>
>> [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 <chadversary at chromium.org
>> <mailto:chadversary at chromium.org>> 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 <idr at freedesktop.org <mailto:idr at freedesktop.org>>
>>     > Cc: Ilia Mirkin <imirkin at alum.mit.edu <mailto:imirkin at alum.mit.edu
>> >>
>>     > Cc: Haixia Shi <hshi at chromium.org <mailto:hshi at chromium.org>>
>>
>>     > 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
>>     mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org
>> >
>>     https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>     <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>
>>
>>
>>
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161011/81591cb8/attachment.html>


More information about the mesa-dev mailing list