Mesa (mesa_7_5_branch): mesa: Reverse s8z24 into z24s8 as required by EXT_packed_depth_stencil.
Jose Fonseca
jrfonseca at kemper.freedesktop.org
Wed Jun 10 20:32:03 UTC 2009
Module: Mesa
Branch: mesa_7_5_branch
Commit: 337f559cd2d98a858719cb963450fef2256e83f7
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=337f559cd2d98a858719cb963450fef2256e83f7
Author: José Fonseca <jfonseca at vmware.com>
Date: Wed Jun 10 21:29:25 2009 +0100
mesa: Reverse s8z24 into z24s8 as required by EXT_packed_depth_stencil.
Actually, after spotting this problem, I realized this is unreachable
code. However don't bother to enable this fast path now, given the normal
path is working just fine.
---
src/mesa/state_tracker/st_cb_readpixels.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c
index 86baf3d..ccf1a0b 100644
--- a/src/mesa/state_tracker/st_cb_readpixels.c
+++ b/src/mesa/state_tracker/st_cb_readpixels.c
@@ -445,11 +445,16 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
}
}
else {
- /* untested, but simple: */
+ /* XXX: unreachable code -- should be before st_read_stencil_pixels */
assert(format == GL_DEPTH_STENCIL_EXT);
for (i = 0; i < height; i++) {
+ GLuint *zshort = (GLuint *)dst;
pipe_get_tile_raw(trans, 0, y, width, 1, dst, 0);
y += yStep;
+ /* Reverse into 24/8 */
+ for (j = 0; j < width; j++) {
+ zshort[j] = (zshort[j] << 8) | (zshort[j] >> 24);
+ }
dst += dstStride;
}
}
@@ -472,7 +477,7 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
}
}
else {
- /* untested, but simple: */
+ /* XXX: unreachable code -- should be before st_read_stencil_pixels */
assert(format == GL_DEPTH_STENCIL_EXT);
for (i = 0; i < height; i++) {
pipe_get_tile_raw(trans, 0, y, width, 1, dst, 0);
More information about the mesa-commit
mailing list