[Mesa-dev] [PATCH] main: Add TEXTURE_CUBE_MAP support in CopyTextureSubImage3D.

Laura Ekstrand laura at jlekstrand.net
Thu Mar 19 10:56:17 PDT 2015


On Wed, Mar 18, 2015 at 3:15 PM, Anuj Phogat <anuj.phogat at gmail.com> wrote:

> On Wed, Mar 18, 2015 at 1:06 PM, Laura Ekstrand <laura at jlekstrand.net>
> wrote:
> > So it turns out that this doesn't actually fix any bugs or add any
> features,
> > stictly speaking. However, it does avoid a lot of kludginess.
> Previously, if
> > you called
> >
> > glCopyTextureSubImage3D(texcube, 0, 0, 0, zoffset = 3, ...
> >
> > it would grab the texture image object for face = 0 in teximage.c
> instead of
> > the desired face = 3.  But Line 274 of brw_blorp_blit.cpp would correct
> for
> > this by updating the slice to 3.
> >
> > This commit does the correct thing before calling any drivers,
> > which should make the functionality much more robust and uniform across
> all
> > drivers.
> Idea behind this patch looks good to me.
> > ---
> >  src/mesa/main/teximage.c | 15 ++++++++++++---
> >  1 file changed, 12 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> > index 64e4816..8b56d5b 100644
> > --- a/src/mesa/main/teximage.c
> > +++ b/src/mesa/main/teximage.c
> > @@ -4254,9 +4254,18 @@ _mesa_CopyTextureSubImage3D(GLuint texture, GLint
> level,
> >        return;
> >     }
> >
> > -   _mesa_copy_texture_sub_image(ctx, 3, texObj, texObj->Target, level,
> > -                                xoffset, yoffset, zoffset,
> > -                                x, y, width, height, true);
> > +   if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
> > +      /* Act like CopyTexSubImage2D */
> > +      _mesa_copy_texture_sub_image(ctx, 2, texObj,
> > +                                   GL_TEXTURE_CUBE_MAP_POSITIVE_X +
> zoffset,
> > +                                   level,
> > +                                   xoffset, yoffset, 0,
> > +                                   x, y, width, height, false);
> Parameters in above three lines can easily fit in 2 lines.
>
This has been fixed.

> Passing dsa=false and dims = 2 will print incorrect _mesa_debug  /
> _mesa_error
> message in _mesa_copy_texture_sub_image() and
> copytexsubimage_error_check().
>
I just sent out a separate patch that fixes this.

>
> > +   }
> > +   else
> > +      _mesa_copy_texture_sub_image(ctx, 3, texObj, texObj->Target,
> level,
> > +                                   xoffset, yoffset, zoffset,
> > +                                   x, y, width, height, true);
> >  }
> >
> >  static bool
> > --
> > 2.1.0
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150319/66fa0bf8/attachment.html>


More information about the mesa-dev mailing list