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

Anuj Phogat anuj.phogat at gmail.com
Thu Mar 19 11:12:32 PDT 2015


On Thu, Mar 19, 2015 at 10:56 AM, Laura Ekstrand <laura at jlekstrand.net> wrote:
>
>
> 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.
Thanks Laura. This patch applied on top of the fixes is:
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
>>
>>
>> > +   }
>> > +   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
>
>


More information about the mesa-dev mailing list