On Tue, 2015-06-16 at 11:15 -0700, Anuj Phogat wrote: > Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com> > --- > src/mesa/drivers/common/meta.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c > index 214a68a..fceb25d 100644 > --- a/src/mesa/drivers/common/meta.c > +++ b/src/mesa/drivers/common/meta.c > @@ -3132,9 +3132,16 @@ decompress_texture_image(struct gl_context *ctx, > * returned as red and two-channel texture values are returned as > * red/alpha. > */ > - if ((baseTexFormat == GL_LUMINANCE || > - baseTexFormat == GL_LUMINANCE_ALPHA || > - baseTexFormat == GL_INTENSITY) || > + if (((baseTexFormat == GL_LUMINANCE || > + baseTexFormat == GL_LUMINANCE_ALPHA || > + baseTexFormat == GL_INTENSITY) && > + (destBaseFormat == GL_RGBA || > + destBaseFormat == GL_RGB || > + destBaseFormat == GL_RG || > + destBaseFormat == GL_GREEN || > + destBaseFormat == GL_BLUE || > + destBaseFormat == GL_BGRA || > + destBaseFormat == GL_BGR)) ||
Is this needed to achieve correct behavior or just an optimization? I would expect that if the dest format does not have G/B channels, setting pixel transfer options for these channels would not have any functional effect anyway. > /* If we're reading back an RGB(A) texture (using glGetTexImage) as > * luminance then we need to return L=tex(R). > */ _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev