summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2009-12-04 14:47:40 -0700
committerBrian Paul <[email protected]>2009-12-04 14:47:46 -0700
commitb533b56750aca8c7e8cb22af93a0fc2a0cfc0d97 (patch)
treec3eaa181d4a2374d4354ab5c4b40739dffb2e96c /src/gallium/drivers
parent9fca3e065b9ab5ef1389a76934bc24ed2b287a76 (diff)
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/drivers')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast.c37
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast.h18
-rw-r--r--src/gallium/drivers/llvmpipe/lp_setup.c29
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 5891a2a706d..a466aec379e 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 21bbf104b15..3d2388b8948 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 38609ec88a2..47d2ac8e118 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 );
}
}