Mesa (master): llvmpipe: consolidate some code in llvmpipe_set_texture_image_layout()

Brian Paul brianp at kemper.freedesktop.org
Mon Apr 19 23:08:49 UTC 2010


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

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Apr 19 16:49:37 2010 -0600

llvmpipe: consolidate some code in llvmpipe_set_texture_image_layout()

---

 src/gallium/drivers/llvmpipe/lp_texture.c |   38 ++++++++++++++++------------
 1 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c
index 5da67ba..002669a 100644
--- a/src/gallium/drivers/llvmpipe/lp_texture.c
+++ b/src/gallium/drivers/llvmpipe/lp_texture.c
@@ -820,6 +820,24 @@ llvmpipe_set_texture_tile_layout(struct llvmpipe_resource *lpr,
 
 
 /**
+ * Set the layout mode for all tiles in a particular image.
+ */
+static INLINE void
+llvmpipe_set_texture_image_layout(struct llvmpipe_resource *lpr,
+                                  unsigned face_slice, unsigned level,
+                                  unsigned width_t, unsigned height_t,
+                                  enum lp_texture_layout layout)
+{
+   const unsigned start = face_slice * lpr->tiles_per_image[level];
+   unsigned i;
+
+   for (i = 0; i < width_t * height_t; i++) {
+      lpr->layout[level][start + i] = layout;
+   }
+}
+
+
+/**
  * Return pointer to texture image data (either linear or tiled layout)
  * for a particular cube face or 3D texture slice.
  *
@@ -910,15 +928,8 @@ llvmpipe_get_texture_image(struct llvmpipe_resource *lpr,
       /* Just allocating tiled memory.  Don't initialize it from the
        * linear data if it exists.
        */
-      {
-         unsigned x, y;
-         for (y = 0; y < height_t; y++) {
-            for (x = 0; x < width_t; x++) {
-               llvmpipe_set_texture_tile_layout(lpr, face_slice, level,
-                                                x, y, layout);
-            }
-         }
-      }
+      llvmpipe_set_texture_image_layout(lpr, face_slice, level,
+                                        width_t, height_t, layout);
 
       return target_data;
    }
@@ -961,13 +972,8 @@ llvmpipe_get_texture_image(struct llvmpipe_resource *lpr,
    }
    else {
       /* no other data */
-      unsigned x, y;
-      for (y = 0; y < height_t; y++) {
-         for (x = 0; x < width_t; x++) {
-            llvmpipe_set_texture_tile_layout(lpr, face_slice, level,
-                                             x, y, layout);
-         }
-      }
+      llvmpipe_set_texture_image_layout(lpr, face_slice, level,
+                                        width_t, height_t, layout);
    }
 
    assert(target_data);




More information about the mesa-commit mailing list