Mesa (master): swrast: When asked to map a slice of a 1D array, give back that slice.

Eric Anholt anholt at kemper.freedesktop.org
Mon Oct 3 14:16:59 PDT 2011


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

Author: Eric Anholt <eric at anholt.net>
Date:   Wed Sep 28 11:15:01 2011 -0700

swrast: When asked to map a slice of a 1D array, give back that slice.

Until now, we've been treating 1D arrays as a single slice, and each
array slice is actually just a row of the 2D texture.  While swrast
still stores them this way, hardware drivers think that 1D arrays have
actual separate slices not stored as contiguous rows.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/mesa/swrast/s_texture.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/mesa/swrast/s_texture.c b/src/mesa/swrast/s_texture.c
index aa07375..36b429c 100644
--- a/src/mesa/swrast/s_texture.c
+++ b/src/mesa/swrast/s_texture.c
@@ -177,6 +177,13 @@ _swrast_map_teximage(struct gl_context *ctx,
                                                  1);
       assert(slice < texImage->Depth);
       map += slice * sliceSize;
+   } else if (texImage->TexObject->Target == GL_TEXTURE_1D_ARRAY) {
+      GLuint sliceSize = _mesa_format_image_size(texImage->TexFormat,
+                                                 texImage->Width,
+                                                 1,
+                                                 1);
+      assert(slice < texImage->Height);
+      map += slice * sliceSize;
    }
 
    /* apply x/y offset to map address */



More information about the mesa-commit mailing list