[i915] GL_DEPTH_TEXTURE_MODE fix
authorZou Nan hai <nanhai.zou@intel.com>
Thu, 20 Mar 2008 09:47:02 +0000 (17:47 +0800)
committerZou Nan hai <nanhai.zou@intel.com>
Thu, 20 Mar 2008 09:47:02 +0000 (17:47 +0800)
src/mesa/drivers/dri/i915/i915_texstate.c

index ba42093287071b20e813871602e8489bea04bdd5..133514d57dce21d2e96f5f291a3361971507edb8 100644 (file)
@@ -38,7 +38,7 @@
 
 
 static GLuint
-translate_texture_format(GLuint mesa_format)
+translate_texture_format(GLuint mesa_format, GLenum DepthMode)
 {
    switch (mesa_format) {
    case MESA_FORMAT_L8:
@@ -65,7 +65,7 @@ translate_texture_format(GLuint mesa_format)
    case MESA_FORMAT_RGBA_FXT1:
       return (MAPSURF_COMPRESSED | MT_COMPRESS_FXT1);
    case MESA_FORMAT_Z16:
-      return (MAPSURF_16BIT | MT_16BIT_L16);
+      return (MAPSURF_16BIT | (DepthMode==GL_ALPHA?MT_16BIT_A16:MT_16BIT_L16));
    case MESA_FORMAT_RGBA_DXT1:
    case MESA_FORMAT_RGB_DXT1:
       return (MAPSURF_COMPRESSED | MT_COMPRESS_DXT1);
@@ -166,7 +166,8 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
                                                                 0, intelObj->
                                                                 firstLevel);
 
-      format = translate_texture_format(firstImage->TexFormat->MesaFormat);
+      format = translate_texture_format(firstImage->TexFormat->MesaFormat, 
+               tObj->DepthMode);
       pitch = intelObj->mt->pitch * intelObj->mt->cpp;
    }