On 01/22/2013 03:22 PM, Carl Worth 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 */
        ;


Reviewed-by: Brian Paul <bri...@vmware.com>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to