From 65faa27aa639e7352708a30105db3318f22f5f93 Mon Sep 17 00:00:00 2001 From: Maciej Cencora Date: Sat, 16 Jan 2010 23:11:10 +0100 Subject: [PATCH] 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 deletion(-) 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); -- 2.7.4