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

Author: Maciej Cencora <[email protected]>
Date:   Sat Jan 16 23:11:10 2010 +0100

radeon: add tile size getter

---

 src/mesa/drivers/dri/radeon/radeon_tile.c |   40 ++++++++++++++++++++++++++++-
 src/mesa/drivers/dri/radeon/radeon_tile.h |    2 +
 2 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/radeon/radeon_tile.c 
b/src/mesa/drivers/dri/radeon/radeon_tile.c
index 56f2fc4..b998baf 100644
--- a/src/mesa/drivers/dri/radeon/radeon_tile.c
+++ b/src/mesa/drivers/dri/radeon/radeon_tile.c
@@ -243,4 +243,42 @@ void tile_image(const void * src, unsigned src_pitch,
             assert(0);
             break;
     }
-}
\ No newline at end of file
+}
+
+void get_tile_size(gl_format format, unsigned *block_width, unsigned 
*block_height)
+{
+    switch (_mesa_get_format_bytes(format))
+    {
+        case 16:
+            *block_width = 1;
+            *block_height = 1;
+            break;
+        case 8:
+            *block_width = 2;
+            *block_height = 2;
+            break;
+        case 4:
+            *block_width = 4;
+            *block_height = 2;
+            break;
+        case 2:
+            if (_mesa_get_format_bits(format, GL_DEPTH_BITS))
+            {
+                *block_width = 4;
+                *block_height = 4;
+            }
+            else
+            {
+                *block_width = 8;
+                *block_height = 2;
+            }
+            break;
+        case 1:
+            *block_width = 8;
+            *block_height = 4;
+            break;
+        default:
+            assert(0);
+            break;
+    }
+}
diff --git a/src/mesa/drivers/dri/radeon/radeon_tile.h 
b/src/mesa/drivers/dri/radeon/radeon_tile.h
index 4985e55..06850b3 100644
--- a/src/mesa/drivers/dri/radeon/radeon_tile.h
+++ b/src/mesa/drivers/dri/radeon/radeon_tile.h
@@ -30,3 +30,5 @@
 void tile_image(const void * src, unsigned src_pitch,
                 void *dst, unsigned dst_pitch,
                 gl_format format, unsigned width, unsigned height);
+
+void get_tile_size(gl_format format, unsigned *block_width, unsigned 
*block_height);

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to