i965: check depth_mode in translate_tex_format() for MESA_FORMAT_S8_Z24
authorBrian Paul <brianp@vmware.com>
Fri, 20 Feb 2009 20:48:44 +0000 (13:48 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 20 Feb 2009 20:48:44 +0000 (13:48 -0700)
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

index d70f9c646cdae439c3b95051e95a17c73304e421..3593988f8d274377232bdd7e4f28e62f674dea0c 100644 (file)
@@ -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);