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

Reply via email to