mesa: Branch 'master' - 2 commits

Michel Daenzer daenzer at kemper.freedesktop.org
Mon Apr 9 12:58:59 UTC 2007


 src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c |    2 +-
 src/mesa/drivers/dri/i915tex/intel_tex_image.c   |   21 ++-------------------
 src/mesa/main/texstore.c                         |    6 +++---
 src/mesa/main/texstore.h                         |    4 ++++
 4 files changed, 10 insertions(+), 23 deletions(-)

New commits:
diff-tree e8292d28e4aeb96f70140ed627c24b6f30b50a80 (from c96974f78cf3bbb94c01d6c84201595b4028d840)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Mon Apr 9 14:57:08 2007 +0200

    i915tex: Fix some mismatches between texels or bytes for pitch/stride.

diff --git a/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c b/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c
index 93372f4..8e83028 100644
--- a/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i915tex/intel_mipmap_tree.c
@@ -317,7 +317,7 @@ intel_miptree_image_data(struct intel_co
                         0, 0,                             /* source x, y */
                         dst->level[level].width, height); /* width, height */
 
-      src += src_image_pitch;
+      src += src_image_pitch * dst->cpp;
    }
 }
 
diff --git a/src/mesa/drivers/dri/i915tex/intel_tex_image.c b/src/mesa/drivers/dri/i915tex/intel_tex_image.c
index 1ce663e..42679ef 100644
--- a/src/mesa/drivers/dri/i915tex/intel_tex_image.c
+++ b/src/mesa/drivers/dri/i915tex/intel_tex_image.c
@@ -614,6 +614,7 @@ intel_get_tex_image(GLcontext * ctx, GLe
                                  intelImage->level,
                                  &intelImage->base.RowStride,
                                  intelImage->base.ImageOffsets);
+      intelImage->base.RowStride /= intelImage->mt->cpp;
    }
    else {
       /* Otherwise, the image should actually be stored in
diff-tree c96974f78cf3bbb94c01d6c84201595b4028d840 (from 6461e91ac3ce6160107d5df7468572c6e943f442)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Mon Apr 9 14:52:18 2007 +0200

    i915tex: Make sure texture format fetch hooks are initialized.

diff --git a/src/mesa/drivers/dri/i915tex/intel_tex_image.c b/src/mesa/drivers/dri/i915tex/intel_tex_image.c
index 22221e7..1ce663e 100644
--- a/src/mesa/drivers/dri/i915tex/intel_tex_image.c
+++ b/src/mesa/drivers/dri/i915tex/intel_tex_image.c
@@ -329,25 +329,7 @@ intelTexImage(GLcontext * ctx,
    texImage->TexFormat = intelChooseTextureFormat(ctx, internalFormat,
                                                   format, type);
 
-   assert(texImage->TexFormat);
-
-   switch (dims) {
-   case 1:
-      texImage->FetchTexelc = texImage->TexFormat->FetchTexel1D;
-      texImage->FetchTexelf = texImage->TexFormat->FetchTexel1Df;
-      break;
-   case 2:
-      texImage->FetchTexelc = texImage->TexFormat->FetchTexel2D;
-      texImage->FetchTexelf = texImage->TexFormat->FetchTexel2Df;
-      break;
-   case 3:
-      texImage->FetchTexelc = texImage->TexFormat->FetchTexel3D;
-      texImage->FetchTexelf = texImage->TexFormat->FetchTexel3Df;
-      break;
-   default:
-      assert(0);
-      break;
-   }
+   _mesa_set_fetch_functions(texImage, dims);
 
    if (texImage->TexFormat->TexelBytes == 0) {
       /* must be a compressed format */
diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index a570525..9b8a06d 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -2771,8 +2771,8 @@ fetch_texel_chan_to_float(const struct g
 /**
  * Initialize the texture image's FetchTexelc and FetchTexelf methods.
  */
-static void
-set_fetch_functions(struct gl_texture_image *texImage, GLuint dims)
+void
+_mesa_set_fetch_functions(struct gl_texture_image *texImage, GLuint dims)
 {
    ASSERT(dims == 1 || dims == 2 || dims == 3);
    ASSERT(texImage->TexFormat);
@@ -2832,7 +2832,7 @@ choose_texture_format(GLcontext *ctx, st
 
    ASSERT(texImage->TexFormat);
 
-   set_fetch_functions(texImage, dims);
+   _mesa_set_fetch_functions(texImage, dims);
 
    if (texImage->TexFormat->TexelBytes == 0) {
       /* must be a compressed format */
diff --git a/src/mesa/main/texstore.h b/src/mesa/main/texstore.h
index f67defc..da0c7cb 100644
--- a/src/mesa/main/texstore.h
+++ b/src/mesa/main/texstore.h
@@ -86,6 +86,10 @@ _mesa_make_temp_chan_image(GLcontext *ct
 
 
 extern void
+_mesa_set_fetch_functions(struct gl_texture_image *texImage, GLuint dims);
+
+
+extern void
 _mesa_store_teximage1d(GLcontext *ctx, GLenum target, GLint level,
                        GLint internalFormat,
                        GLint width, GLint border,



More information about the mesa-commit mailing list