Mesa (master): i965: check depth_mode in translate_tex_format() for MESA_FORMAT_S8_Z24

Brian Paul brianp at kemper.freedesktop.org
Fri Feb 20 21:08:57 UTC 2009


Module: Mesa
Branch: master
Commit: 773e9d47651149158e58916616235b26904c3665
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=773e9d47651149158e58916616235b26904c3665

Author: Brian Paul <brianp at vmware.com>
Date:   Fri Feb 20 13:48:44 2009 -0700

i965: check depth_mode in translate_tex_format() for MESA_FORMAT_S8_Z24

Note that I24X8 vs. A24X8 vs. L24X8 doesn't seem to make any difference
for texture/shadow compare, however.

---

 src/mesa/drivers/dri/i965/brw_wm_surface_state.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index d70f9c6..3593988 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -139,7 +139,15 @@ static GLuint translate_tex_format( GLuint mesa_format, GLenum depth_mode )
       return BRW_SURFACEFORMAT_BC1_UNORM_SRGB;
 
    case MESA_FORMAT_S8_Z24:
-      return BRW_SURFACEFORMAT_I24X8_UNORM;
+      /* XXX: these different surface formats don't seem to
+       * make any difference for shadow sampler/compares.
+       */
+      if (depth_mode == GL_INTENSITY) 
+         return BRW_SURFACEFORMAT_I24X8_UNORM;
+      else if (depth_mode == GL_ALPHA)
+         return BRW_SURFACEFORMAT_A24X8_UNORM;
+      else
+         return BRW_SURFACEFORMAT_L24X8_UNORM;
 
    default:
       assert(0);




More information about the mesa-commit mailing list