[Mesa-dev] [PATCH 2/4] ReadPixels: Force ALPHA to 1 while rebasing RGBA values for GL_RGB format
Carl Worth
cworth at cworth.org
Tue Jan 22 14:22:17 PST 2013
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
More information about the mesa-dev
mailing list