[Mesa-dev] [PATCH 2/4] ReadPixels: Force ALPHA to 1 while rebasing RGBA values for GL_RGB format

Anuj Phogat anuj.phogat at gmail.com
Tue Jan 22 20:32:21 PST 2013


On Wed, Jan 23, 2013 at 3:52 AM, Carl Worth <cworth at cworth.org> wrote:
> When performing a ReadPixels operation, we may be reading from a buffer that
> stores alpha values, but that is actually representing a buffer with no alpha
> channel. In this case, while rebasing the values, touch up all alpha values
> read to 1.0.
>
> This commit fixes the following piglit (sub) tests:
>
>         ARB_texture_float/fbo-colormask-formats
>                 GL_RBG16F_ARB
>         EXT_texture_snorm/fbo-colormask-formats
>                 GL_RGB16_SNORM
>                 GL_RGB8_SNORM
>                 GL_RGB_SNORM
>
> It likely improves the results of other tests as well, but a PASS remains
> elusive due to additional bugs.
> ---
>  src/mesa/main/pack.c |   10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/src/mesa/main/pack.c b/src/mesa/main/pack.c
> index d6a97b3..e00ae63 100644
> --- a/src/mesa/main/pack.c
> +++ b/src/mesa/main/pack.c
> @@ -6022,6 +6022,11 @@ _mesa_rebase_rgba_float(GLuint n, GLfloat rgba[][4], GLenum baseFormat)
>           rgba[i][BCOMP] = 0.0F;
>        }
>        break;
> +   case GL_RGB:
> +      for (i = 0; i < n; i++) {
> +         rgba[i][ACOMP] = 1.0F;
> +      }
> +      break;
>     default:
>        /* no-op */
>        ;
> @@ -6060,6 +6065,11 @@ _mesa_rebase_rgba_uint(GLuint n, GLuint rgba[][4], GLenum baseFormat)
>           rgba[i][BCOMP] = 0;
>        }
>        break;
> +   case GL_RGB:
> +      for (i = 0; i < n; i++) {
> +         rgba[i][ACOMP] = 1;
> +      }
> +      break;
>     default:
>        /* no-op */
>        ;
> --
> 1.7.10.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>


More information about the mesa-dev mailing list