Mesa (lp-binning): llvmpipe: move lp_rasterize_bin() into lp_rast.c

Brian Paul brianp at kemper.freedesktop.org
Fri Dec 4 23:02:57 UTC 2009


Module: Mesa
Branch: lp-binning
Commit: b533b56750aca8c7e8cb22af93a0fc2a0cfc0d97
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b533b56750aca8c7e8cb22af93a0fc2a0cfc0d97

Author: Brian Paul <brianp at vmware.com>
Date:   Fri Dec  4 14:47:40 2009 -0700

llvmpipe: move lp_rasterize_bin() into lp_rast.c

First step of moving bin rasterization/execution code out of lp_setup.c

---

 src/gallium/drivers/llvmpipe/lp_rast.c  |   37 +++++++++++++++++++++++++++---
 src/gallium/drivers/llvmpipe/lp_rast.h  |   18 +++++----------
 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 );
       }
    }
 




More information about the mesa-commit mailing list