From: José Fonseca Date: Tue, 2 Jun 2009 18:46:53 +0000 (-0700) Subject: util: Support Z24S8/Z24X8 -> unsigned conversion. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=840af5fd62edc01769cc3818702ea399a0c68c40;p=mesa.git util: Support Z24S8/Z24X8 -> unsigned conversion. --- diff --git a/src/gallium/auxiliary/util/u_tile.c b/src/gallium/auxiliary/util/u_tile.c index 9becd9fea43..a2fcdad9e4d 100644 --- a/src/gallium/auxiliary/util/u_tile.c +++ b/src/gallium/auxiliary/util/u_tile.c @@ -1133,6 +1133,21 @@ pipe_get_tile_z(struct pipe_transfer *pt, } } break; + case PIPE_FORMAT_Z24S8_UNORM: + case PIPE_FORMAT_Z24X8_UNORM: + { + const uint *ptrc + = (const uint *)(map + y * pt->stride + x*4); + for (i = 0; i < h; i++) { + for (j = 0; j < w; j++) { + /* convert 24-bit Z to 32-bit Z */ + pDest[j] = (ptrc[j] & 0xffffff00) | (ptrc[j] & 0xff); + } + pDest += dstStride; + ptrc += pt->stride/4; + } + } + break; case PIPE_FORMAT_Z16_UNORM: { const ushort *ptrc