Mesa (master): llvmpipe: added llvmpipe_resource_size()

Brian Paul brianp at kemper.freedesktop.org
Tue Apr 27 17:50:43 UTC 2010


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

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Apr 27 11:32:25 2010 -0600

llvmpipe: added llvmpipe_resource_size()

---

 src/gallium/drivers/llvmpipe/lp_texture.c |   21 +++++++++++++++++++++
 src/gallium/drivers/llvmpipe/lp_texture.h |    4 ++++
 2 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c
index 29bdfe3..9d10a9f 100644
--- a/src/gallium/drivers/llvmpipe/lp_texture.c
+++ b/src/gallium/drivers/llvmpipe/lp_texture.c
@@ -1160,6 +1160,27 @@ llvmpipe_get_texture_tile(struct llvmpipe_resource *lpr,
 }
 
 
+/**
+ * Return size of resource in bytes
+ */
+unsigned
+llvmpipe_resource_size(const struct pipe_resource *resource)
+{
+   const struct llvmpipe_resource *lpr = llvmpipe_resource_const(resource);
+   unsigned lvl, size = 0;
+
+   for (lvl = 0; lvl <= lpr->base.last_level; lvl++) {
+      if (lpr->linear[lvl].data)
+         size += tex_image_size(lpr, lvl, LP_TEX_LAYOUT_LINEAR);
+
+      if (lpr->tiled[lvl].data)
+         size += tex_image_size(lpr, lvl, LP_TEX_LAYOUT_TILED);
+   }
+
+   return size;
+}
+
+
 void
 llvmpipe_init_screen_resource_funcs(struct pipe_screen *screen)
 {
diff --git a/src/gallium/drivers/llvmpipe/lp_texture.h b/src/gallium/drivers/llvmpipe/lp_texture.h
index 7d0ae26..a8d08d6 100644
--- a/src/gallium/drivers/llvmpipe/lp_texture.h
+++ b/src/gallium/drivers/llvmpipe/lp_texture.h
@@ -184,6 +184,10 @@ void *
 llvmpipe_resource_data(struct pipe_resource *resource);
 
 
+unsigned
+llvmpipe_resource_size(const struct pipe_resource *resource);
+
+
 ubyte *
 llvmpipe_get_texture_image_address(struct llvmpipe_resource *lpr,
                                     unsigned face_slice, unsigned level,




More information about the mesa-commit mailing list