diff options
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_rast.h | 27 | ||||
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_setup_context.h | 7 |
2 files changed, 26 insertions, 8 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.h b/src/gallium/drivers/llvmpipe/lp_rast.h index 307c45cb9fc..21bbf104b15 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.h +++ b/src/gallium/drivers/llvmpipe/lp_rast.h @@ -25,12 +25,22 @@ * **************************************************************************/ +/** + * The rast code is concerned with rasterization of command bins. + * Each screen tile has a bin associated with it. To render the + * scene we iterate over the tile bins and execute the commands + * in each bin. + * We'll do that with multiple threads... + */ + + #ifndef LP_RAST_H #define LP_RAST_H #include "pipe/p_compiler.h" #include "lp_jit.h" + /* Initially create and program a single rasterizer directly. Later * will want multiple of these, one or two per core. At that stage * will probably pass command buffers into the rasterizers rather than @@ -57,7 +67,6 @@ struct lp_rast_state { * the tile color/z/stencil data somehow: */ lp_jit_frag_func jit_function; - }; @@ -121,6 +130,9 @@ struct lp_rast_triangle { struct lp_rasterizer *lp_rast_create( struct pipe_screen *screen ); +void lp_rast_destroy( struct lp_rasterizer * ); + + boolean lp_rast_begin( struct lp_rasterizer *rast, struct pipe_surface *cbuf, struct pipe_surface *zsbuf, @@ -147,6 +159,7 @@ union lp_rast_cmd_arg { unsigned clear_zstencil; }; + /* Cast wrappers. Hopefully these compile to noops! */ static INLINE const union lp_rast_cmd_arg @@ -183,10 +196,12 @@ lp_rast_arg_null( void ) - - -/* Binnable Commands: +/** + * Binnable Commands. + * These get put into bins by the setup code and are called when + * the bins are executed. */ + void lp_rast_clear_color( struct lp_rasterizer *, const union lp_rast_cmd_arg ); @@ -214,9 +229,5 @@ void lp_rast_shade_tile( struct lp_rasterizer *, void lp_rast_end_tile( struct lp_rasterizer *rast ); -/* Shutdown: - */ -void lp_rast_destroy( struct lp_rasterizer * ); - #endif diff --git a/src/gallium/drivers/llvmpipe/lp_setup_context.h b/src/gallium/drivers/llvmpipe/lp_setup_context.h index 5abe66f5862..180b8f6e880 100644 --- a/src/gallium/drivers/llvmpipe/lp_setup_context.h +++ b/src/gallium/drivers/llvmpipe/lp_setup_context.h @@ -25,6 +25,13 @@ * **************************************************************************/ + +/** + * The setup code is concerned with point/line/triangle setup and + * putting commands/data into the bins. + */ + + #ifndef LP_SETUP_CONTEXT_H #define LP_SETUP_CONTEXT_H |