mesa: Branch 'master' - 4 commits

Brian Paul brianp at kemper.freedesktop.org
Sun Feb 25 01:13:01 UTC 2007


 src/mesa/drivers/dri/i915tex/i915_tex_layout.c   |   12 ++++++++++--
 src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c |    9 +++++++--
 src/mesa/drivers/dri/i915tex/intel_regions.c     |    5 +++--
 src/mesa/drivers/dri/i915tex/intel_regions.h     |    2 +-
 4 files changed, 21 insertions(+), 7 deletions(-)

New commits:
diff-tree d9fb113e0571dba9ac29576015cb5816c53ac467 (from parents)
Merge: 53170942e37ccdf58e06a2cfbfeef6c0ec086ee6 3f8c5969ffea5485aa119f4d766cdfee7d4aadeb
Author: Brian <brian at i915.localnet.net>
Date:   Sat Feb 24 18:15:45 2007 -0700

    Merge branch 'master' of git+ssh://brianp@git.freedesktop.org/git/mesa/mesa

diff-tree 53170942e37ccdf58e06a2cfbfeef6c0ec086ee6 (from aeaad937b92ac0f5286343ed75c5c9f6876e2650)
Author: Brian <brian at i915.localnet.net>
Date:   Sat Feb 24 18:14:53 2007 -0700

    Fix broken cubemap mipmap layout (the cubemap.c demo was segfaulting).
    
    In i915_miptree_layout() change the width, height parameters that are passed
    to intel_miptree_set_level_info().  As it was, the width, height values were
    larger than the source image dimensions and we segfaulted in memcpy() when
    copying the original texture data into the texture buffer region.
    This fix should probably be checked by someone more familiar with the code (Keith?)

diff --git a/src/mesa/drivers/dri/i915tex/i915_tex_layout.c b/src/mesa/drivers/dri/i915tex/i915_tex_layout.c
index 333fefe..c844f53 100644
--- a/src/mesa/drivers/dri/i915tex/i915_tex_layout.c
+++ b/src/mesa/drivers/dri/i915tex/i915_tex_layout.c
@@ -62,15 +62,23 @@ i915_miptree_layout(struct intel_mipmap_
    case GL_TEXTURE_CUBE_MAP:{
          const GLuint dim = mt->width0;
          GLuint face;
+         GLuint lvlWidth = mt->width0, lvlHeight = mt->height0;
+
+         assert(lvlWidth == lvlHeight); /* cubemap images are square */
 
          /* double pitch for cube layouts */
          mt->pitch = ((dim * mt->cpp * 2 + 3) & ~3) / mt->cpp;
          mt->total_height = dim * 4;
 
-         for (level = mt->first_level; level <= mt->last_level; level++)
+         for (level = mt->first_level; level <= mt->last_level; level++) {
             intel_miptree_set_level_info(mt, level, 6,
                                          0, 0,
-                                         mt->pitch, mt->total_height, 1);
+                                         /*OLD: mt->pitch, mt->total_height,*/
+                                         lvlWidth, lvlHeight,
+                                         1);
+            lvlWidth /= 2;
+            lvlHeight /= 2;
+         }
 
          for (face = 0; face < 6; face++) {
             GLuint x = initial_offsets[face][0] * dim;
diff-tree aeaad937b92ac0f5286343ed75c5c9f6876e2650 (from 5cd30a2b202d12240eac60825f9882838fd66779)
Author: Brian <brian at i915.localnet.net>
Date:   Sat Feb 24 18:11:09 2007 -0700

    clean-up, comment code

diff --git a/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c b/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c
index 2b1077a..93372f4 100644
--- a/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c
@@ -309,8 +309,13 @@ intel_miptree_image_data(struct intel_co
       height = dst->level[level].height;
       if(dst->compressed)
 	 height /= 4;
-      intel_region_data(intel->intelScreen, dst->region, dst_offset + dst_depth_offset[i], 0, 0, src, src_row_pitch, 0, 0,   /* source x,y */
-                        dst->level[level].width, height);
+      intel_region_data(intel->intelScreen, dst->region,
+                        dst_offset + dst_depth_offset[i], /* dst_offset */
+                        0, 0,                             /* dstx, dsty */
+                        src,
+                        src_row_pitch,
+                        0, 0,                             /* source x, y */
+                        dst->level[level].width, height); /* width, height */
 
       src += src_image_pitch;
    }
diff-tree 5cd30a2b202d12240eac60825f9882838fd66779 (from 5e66843733c8123e73cadc1bc5c6111d64abaf25)
Author: Brian <brian at i915.localnet.net>
Date:   Sat Feb 24 18:10:41 2007 -0700

    make src ptr const

diff --git a/src/mesa/drivers/dri/i915tex/intel_regions.c b/src/mesa/drivers/dri/i915tex/intel_regions.c
index 1205b18..a114bdf 100644
--- a/src/mesa/drivers/dri/i915tex/intel_regions.c
+++ b/src/mesa/drivers/dri/i915tex/intel_regions.c
@@ -217,7 +217,8 @@ _mesa_copy_rect(GLubyte * dst,
                 GLuint dst_y,
                 GLuint width,
                 GLuint height,
-                GLubyte * src, GLuint src_pitch, GLuint src_x, GLuint src_y)
+                const GLubyte * src,
+                GLuint src_pitch, GLuint src_x, GLuint src_y)
 {
    GLuint i;
 
@@ -253,7 +254,7 @@ intel_region_data(intelScreenPrivate *in
                   struct intel_region *dst,
                   GLuint dst_offset,
                   GLuint dstx, GLuint dsty,
-                  void *src, GLuint src_pitch,
+                  const void *src, GLuint src_pitch,
                   GLuint srcx, GLuint srcy, GLuint width, GLuint height)
 {
    struct intel_context *intel = intelScreenContext(intelScreen);
diff --git a/src/mesa/drivers/dri/i915tex/intel_regions.h b/src/mesa/drivers/dri/i915tex/intel_regions.h
index 1415bac..d938c10 100644
--- a/src/mesa/drivers/dri/i915tex/intel_regions.h
+++ b/src/mesa/drivers/dri/i915tex/intel_regions.h
@@ -103,7 +103,7 @@ void intel_region_data(intelScreenPrivat
                        struct intel_region *dest,
                        GLuint dest_offset,
                        GLuint destx, GLuint desty,
-                       void *src, GLuint src_stride,
+                       const void *src, GLuint src_stride,
                        GLuint srcx, GLuint srcy, GLuint width, GLuint height);
 
 /* Copy rectangular sub-regions



More information about the mesa-commit mailing list