From 2cad62475b8263472f6fbd541b5b8ec2a1d40e62 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Mon, 19 Apr 2010 16:49:37 -0600 Subject: llvmpipe: consolidate some code in llvmpipe_set_texture_image_layout() --- src/gallium/drivers/llvmpipe/lp_texture.c | 38 ++++++++++++++++++------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c index 5da67bad1b0..002669adaa4 100644 --- a/src/gallium/drivers/llvmpipe/lp_texture.c +++ b/src/gallium/drivers/llvmpipe/lp_texture.c @@ -819,6 +819,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); -- cgit v1.2.3