On Wed, Jan 23, 2013 at 3:52 AM, Carl Worth <cwo...@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@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Anuj Phogat <anuj.pho...@gmail.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev