While looking through the documentation, I found this in the Sandybridge PRM (Volume 4, Part 1, Page 140): "Use of sample_c with SURFTYPE_CUBE surfaces is undefined with the following surface formats: I24X8_UNORM, L24X8_UNORM, A24X8_UNORM, I32_FLOAT, L32_FLOAT, A32_FLOAT."
I haven't observed this to be true, but it suggests that we may want to use other formats. We already perform DEPTH_TEXTURE_MODE swizzling in the shaders, and don't rely on the surface format to splat things appropriately. So using RED should work just as well as INTENSITY. A few notes about the formats: - R24_UNORM_X8_TYPELESS has the exact same properties as I24X8_UNORM. - R16_UNORM and R32_FLOAT are additionally supported as a render target, while the old I16_UNORM/I32_FLOAT formats are not. - R32_FLOAT_X8X24_TYPELESS is not supported as a render target, while the old format (R32G32_FLOAT) was. However, it shares the same properties as the formats we use for Z24, so it should suffice. This makes translate_tex_format and brw_blorp_surface_info::set a bit more similar. No Piglit or oglconform changes on Sandybridge. Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_surface_formats.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) I found the text, wrote the patch, and tested it, so I figured I'd send it out...but it doesn't seem to do anything useful, either... diff --git a/src/mesa/drivers/dri/i965/brw_surface_formats.c b/src/mesa/drivers/dri/i965/brw_surface_formats.c index 91e73d5..6b17553 100644 --- a/src/mesa/drivers/dri/i965/brw_surface_formats.c +++ b/src/mesa/drivers/dri/i965/brw_surface_formats.c @@ -695,17 +695,17 @@ translate_tex_format(struct brw_context *brw, switch( mesa_format ) { case MESA_FORMAT_Z16: - return BRW_SURFACEFORMAT_I16_UNORM; + return BRW_SURFACEFORMAT_R16_UNORM; case MESA_FORMAT_S8_Z24: case MESA_FORMAT_X8_Z24: - return BRW_SURFACEFORMAT_I24X8_UNORM; + return BRW_SURFACEFORMAT_R24_UNORM_X8_TYPELESS; case MESA_FORMAT_Z32_FLOAT: - return BRW_SURFACEFORMAT_I32_FLOAT; + return BRW_SURFACEFORMAT_R32_FLOAT; case MESA_FORMAT_Z32_FLOAT_X24S8: - return BRW_SURFACEFORMAT_R32G32_FLOAT; + return BRW_SURFACEFORMAT_R32_FLOAT_X8X24_TYPELESS; case MESA_FORMAT_RGBA_FLOAT32: /* The value of this BRW_SURFACEFORMAT is 0, which tricks the -- 1.8.4.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev