diff options
author | Brian Paul <brianp@vmware.com> | 2009-12-04 14:47:40 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2009-12-04 14:47:46 -0700 |
commit | b533b56750aca8c7e8cb22af93a0fc2a0cfc0d97 (patch) | |
tree | c3eaa181d4a2374d4354ab5c4b40739dffb2e96c /src/gallium | |
parent | 9fca3e065b9ab5ef1389a76934bc24ed2b287a76 (diff) | |
download | external_mesa3d-b533b56750aca8c7e8cb22af93a0fc2a0cfc0d97.zip external_mesa3d-b533b56750aca8c7e8cb22af93a0fc2a0cfc0d97.tar.gz external_mesa3d-b533b56750aca8c7e8cb22af93a0fc2a0cfc0d97.tar.bz2 |
llvmpipe: move lp_rasterize_bin() into lp_rast.c
First step of moving bin rasterization/execution code out of lp_setup.c
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_rast.c | 37 | ||||
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_rast.h | 18 | ||||
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup.c | 29 |
3 files changed, 42 insertions, 42 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c index 5891a2a..a466aec 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.c +++ b/src/gallium/drivers/llvmpipe/lp_rast.c @@ -33,6 +33,7 @@ #include "lp_rast_priv.h" #include "lp_tile_soa.h" #include "lp_bld_debug.h" +#include "lp_bin.h" struct lp_rasterizer *lp_rast_create( struct pipe_screen *screen ) @@ -148,9 +149,9 @@ void lp_rast_end( struct lp_rasterizer *rast ) * \param x window X position of the tile, in pixels * \param y window Y position of the tile, in pixels */ -void lp_rast_start_tile( struct lp_rasterizer *rast, - unsigned x, - unsigned y ) +static void +lp_rast_start_tile( struct lp_rasterizer *rast, + unsigned x, unsigned y ) { LP_DBG(DEBUG_RAST, "%s %d,%d\n", __FUNCTION__, x, y); @@ -453,7 +454,8 @@ static void lp_rast_store_zstencil( struct lp_rasterizer *rast ) /** * Write the rasterizer's tiles to the framebuffer. */ -void lp_rast_end_tile( struct lp_rasterizer *rast ) +static void +lp_rast_end_tile( struct lp_rasterizer *rast ) { LP_DBG(DEBUG_RAST, "%s\n", __FUNCTION__); @@ -465,6 +467,33 @@ void lp_rast_end_tile( struct lp_rasterizer *rast ) } +/** + * Rasterize commands for a single bin. + * Must be called between lp_rast_begin() and lp_rast_end(). + */ +void +lp_rasterize_bin( struct lp_rasterizer *rast, + const struct cmd_bin *bin, + int x, int y) +{ + const struct cmd_block_list *commands = &bin->commands; + struct cmd_block *block; + unsigned k; + + lp_rast_start_tile( rast, x, y ); + + /* simply execute each of the commands in the block list */ + for (block = commands->head; block; block = block->next) { + for (k = 0; k < block->count; k++) { + block->cmd[k]( rast, block->arg[k] ); + } + } + + lp_rast_end_tile( rast ); +} + + + /* Shutdown: */ void lp_rast_destroy( struct lp_rasterizer *rast ) diff --git a/src/gallium/drivers/llvmpipe/lp_rast.h b/src/gallium/drivers/llvmpipe/lp_rast.h index 21bbf10..3d2388b 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.h +++ b/src/gallium/drivers/llvmpipe/lp_rast.h @@ -47,6 +47,7 @@ * individual function calls like this. */ struct lp_rasterizer; +struct cmd_bin; struct pipe_screen; #define FIXED_ORDER 4 @@ -141,14 +142,13 @@ boolean lp_rast_begin( struct lp_rasterizer *rast, unsigned width, unsigned height ); -void lp_rast_end( struct lp_rasterizer * ); +void +lp_rasterize_bin( struct lp_rasterizer *rast, + const struct cmd_bin *bin, + int x, int y); -/* Begining of each tile: - */ -void lp_rast_start_tile( struct lp_rasterizer *, - unsigned x, - unsigned y ); +void lp_rast_end( struct lp_rasterizer * ); union lp_rast_cmd_arg { @@ -224,10 +224,4 @@ void lp_rast_shade_tile( struct lp_rasterizer *, const union lp_rast_cmd_arg ); -/* End of tile: - */ - -void lp_rast_end_tile( struct lp_rasterizer *rast ); - - #endif diff --git a/src/gallium/drivers/llvmpipe/lp_setup.c b/src/gallium/drivers/llvmpipe/lp_setup.c index 38609ec..47d2ac8 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup.c +++ b/src/gallium/drivers/llvmpipe/lp_setup.c @@ -207,29 +207,6 @@ bin_state_command( struct setup_context *setup, } -/** Rasterize commands for a single bin */ -static void -rasterize_bin( struct lp_rasterizer *rast, - const struct cmd_bin *bin, - int x, int y) -{ - const struct cmd_block_list *commands = &bin->commands; - struct cmd_block *block; - unsigned k; - - lp_rast_start_tile( rast, x, y ); - - /* simply execute each of the commands in the block list */ - for (block = commands->head; block; block = block->next) { - for (k = 0; k < block->count; k++) { - block->cmd[k]( rast, block->arg[k] ); - } - } - - lp_rast_end_tile( rast ); -} - - /** Rasterize all tile's bins */ static void rasterize_bins( struct setup_context *setup, @@ -251,9 +228,9 @@ rasterize_bins( struct setup_context *setup, /* loop over tile bins, rasterize each */ for (i = 0; i < setup->tiles_x; i++) { for (j = 0; j < setup->tiles_y; j++) { - rasterize_bin( rast, &setup->tile[i][j], - i * TILE_SIZE, - j * TILE_SIZE ); + lp_rasterize_bin( rast, &setup->tile[i][j], + i * TILE_SIZE, + j * TILE_SIZE ); } } |