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

Author: Eric Anholt <[email protected]>
Date:   Mon Jun 22 16:23:56 2009 -0700

i965: Fix depth-texture Y-tiling detection for sized internal formats.

Fixes assertion failure on norsetto shadow mapping demo.

---

 src/mesa/drivers/dri/intel/intel_mipmap_tree.c  |    5 +++--
 src/mesa/drivers/dri/intel/intel_mipmap_tree.h  |    1 +
 src/mesa/drivers/dri/intel/intel_tex_image.c    |    5 ++++-
 src/mesa/drivers/dri/intel/intel_tex_validate.c |    1 +
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c 
b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index 1ef2fe8..a0d8f0c 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -101,6 +101,7 @@ intel_miptree_create_internal(struct intel_context *intel,
 struct intel_mipmap_tree *
 intel_miptree_create(struct intel_context *intel,
                     GLenum target,
+                    GLenum base_format,
                     GLenum internal_format,
                     GLuint first_level,
                     GLuint last_level,
@@ -115,8 +116,8 @@ intel_miptree_create(struct intel_context *intel,
    if (intel->use_texture_tiling && compress_byte == 0 &&
        intel->intelScreen->kernel_exec_fencing) {
       if (IS_965(intel->intelScreen->deviceID) &&
-         (internal_format == GL_DEPTH_COMPONENT ||
-          internal_format == GL_DEPTH_STENCIL_EXT))
+         (base_format == GL_DEPTH_COMPONENT ||
+          base_format == GL_DEPTH_STENCIL_EXT))
         tiling = I915_TILING_Y;
       else
         tiling = I915_TILING_X;
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h 
b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index 3af9966..2a809cf 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -126,6 +126,7 @@ struct intel_mipmap_tree
 
 struct intel_mipmap_tree *intel_miptree_create(struct intel_context *intel,
                                                GLenum target,
+                                               GLenum base_format,
                                                GLenum internal_format,
                                                GLuint first_level,
                                                GLuint last_level,
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c 
b/src/mesa/drivers/dri/intel/intel_tex_image.c
index ab95413..c5f5220 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -131,6 +131,7 @@ guess_and_alloc_mipmap_tree(struct intel_context *intel,
       comp_byte = 
intel_compressed_num_bytes(intelImage->base.TexFormat->MesaFormat);
    intelObj->mt = intel_miptree_create(intel,
                                        intelObj->base.Target,
+                                       intelImage->base._BaseFormat,
                                        intelImage->base.InternalFormat,
                                        firstLevel,
                                        lastLevel,
@@ -412,7 +413,9 @@ intelTexImage(GLcontext * ctx,
        * a miptree, so create one just for our level and store it in the image.
        * It'll get moved into the object miptree at validate time.
        */
-      intelImage->mt = intel_miptree_create(intel, target, internalFormat,
+      intelImage->mt = intel_miptree_create(intel, target,
+                                           
intelImage->base.TexFormat->BaseFormat,
+                                           internalFormat,
                                            level, level,
                                            width, height, depth,
                                            
intelImage->base.TexFormat->TexelBytes,
diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c 
b/src/mesa/drivers/dri/intel/intel_tex_validate.c
index b5cb759..a284d54 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
@@ -199,6 +199,7 @@ intel_finalize_mipmap_tree(struct intel_context *intel, 
GLuint unit)
    if (!intelObj->mt) {
       intelObj->mt = intel_miptree_create(intel,
                                           intelObj->base.Target,
+                                          firstImage->base._BaseFormat,
                                           firstImage->base.InternalFormat,
                                           intelObj->firstLevel,
                                           intelObj->lastLevel,

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to