Looks good to me. Jose
----- Original Message ----- > --- > src/gallium/auxiliary/util/u_tile.c | 36 > +++++++++++++++++++++++++++++++++++ > 1 files changed, 36 insertions(+), 0 deletions(-) > > diff --git a/src/gallium/auxiliary/util/u_tile.c > b/src/gallium/auxiliary/util/u_tile.c > index ea4b91f..48e73c4 100644 > --- a/src/gallium/auxiliary/util/u_tile.c > +++ b/src/gallium/auxiliary/util/u_tile.c > @@ -679,6 +679,28 @@ pipe_get_tile_z(struct pipe_context *pipe, > } > } > break; > + case PIPE_FORMAT_Z32_FLOAT: > + { > + const float *ptrc = (const float *)(map + y * pt->stride + > x*4); > + for (i = 0; i < h; i++) { > + for (j = 0; j < w; j++) { > + /* convert float Z to 32-bit Z */ > + if (ptrc[j] <= 0.0) { > + pDest[j] = 0; > + } > + else if (ptrc[j] >= 1.0) { > + pDest[j] = 0xffffffff; > + } > + else { > + double z = ptrc[j] * 0xffffffff; > + pDest[j] = (uint) z; > + } > + } > + pDest += dstStride; > + ptrc += pt->stride/4; > + } > + } > + break; > default: > assert(0); > } > @@ -786,6 +808,20 @@ pipe_put_tile_z(struct pipe_context *pipe, > } > } > break; > + case PIPE_FORMAT_Z32_FLOAT: > + { > + float *pDest = (float *) (map + y * pt->stride + x*2); > + for (i = 0; i < h; i++) { > + for (j = 0; j < w; j++) { > + /* convert 32-bit integer Z to float Z */ > + const double scale = 1.0 / 0xffffffffU; > + pDest[j] = ptrc[j] * scale; > + } > + pDest += pt->stride/4; > + ptrc += srcStride; > + } > + } > + break; > default: > assert(0); > } > -- > 1.7.3.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev