From: Kenneth Graunke Date: Mon, 7 Oct 2013 18:19:11 +0000 (-0700) Subject: i965/blorp: Use R32_FLOAT for Z32F surfaces. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=590d71791a50c9b2caebffa79ae4382c78deca80;p=mesa.git i965/blorp: Use R32_FLOAT for Z32F surfaces. Currently, all that matters is that we copy the correct number of bits, so any format that has 32-bits of data will work fine. Once BLORP begins handling format conversions, the sampler will need to correctly interpret the data. We don't need a depth format, but we do need the right number of components and data type (FLOAT). For Z32F, this means using R32_FLOAT. Signed-off-by: Kenneth Graunke Reviewed-by: Ian Romanick Reviewed-by: Chad Versace Reviewed-by: Eric Anholt Reviewed-by: Daniel Vetter --- diff --git a/src/mesa/drivers/dri/i965/brw_blorp.cpp b/src/mesa/drivers/dri/i965/brw_blorp.cpp index 46bb244b80c..f71db4f88d8 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp.cpp +++ b/src/mesa/drivers/dri/i965/brw_blorp.cpp @@ -86,15 +86,17 @@ brw_blorp_surface_info::set(struct brw_context *brw, this->brw_surfaceformat = BRW_SURFACEFORMAT_R8_UNORM; break; case MESA_FORMAT_X8_Z24: - case MESA_FORMAT_Z32_FLOAT: - /* The miptree consists of 32 bits per pixel, arranged either as 24-bit - * depth values interleaved with 8 "don't care" bits, or as 32-bit - * floating point depth values. Since depth values don't require any - * blending, it doesn't matter how we interpret the bit pattern as long - * as we copy the right amount of data, so just map it as 8-bit BGRA. + /* The miptree consists of 32 bits per pixel, arranged as 24-bit depth + * values interleaved with 8 "don't care" bits. Since depth values don't + * require any blending, it doesn't matter how we interpret the bit + * pattern as long as we copy the right amount of data, so just map it + * as 8-bit BGRA. */ this->brw_surfaceformat = BRW_SURFACEFORMAT_B8G8R8A8_UNORM; break; + case MESA_FORMAT_Z32_FLOAT: + this->brw_surfaceformat = BRW_SURFACEFORMAT_R32_FLOAT; + break; case MESA_FORMAT_Z16: this->brw_surfaceformat = BRW_SURFACEFORMAT_R16_UNORM; break;