X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fllvmpipe%2Flp_rast.h;h=d9be7f392ef892fefaf4ca0889fe06b73edd0420;hb=6291f19f71d660b82cc16ca6af9da66f8fa33956;hp=e6e44c58262841796bbe933e9b1f974a98e329f1;hpb=2e4da1f59444c550e4b1e31dd5cfec39d7ef2a26;p=mesa.git diff --git a/src/gallium/drivers/llvmpipe/lp_rast.h b/src/gallium/drivers/llvmpipe/lp_rast.h index e6e44c58262..d9be7f392ef 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.h +++ b/src/gallium/drivers/llvmpipe/lp_rast.h @@ -38,6 +38,7 @@ #define LP_RAST_H #include "pipe/p_compiler.h" +#include "util/u_pack_color.h" #include "lp_jit.h" @@ -46,15 +47,28 @@ struct lp_scene; struct lp_fence; struct cmd_bin; +#define FIXED_TYPE_WIDTH 64 /** For sub-pixel positioning */ -#define FIXED_ORDER 4 +#define FIXED_ORDER 8 #define FIXED_ONE (1<stride)) #define GET_DADY(inputs) ((float (*)[4])((char *)((inputs) + 1) + 2 * (inputs)->stride)) @@ -139,9 +162,6 @@ lp_rast_create( unsigned num_threads ); void lp_rast_destroy( struct lp_rasterizer * ); -unsigned -lp_rast_get_num_threads( struct lp_rasterizer * ); - void lp_rast_queue_scene( struct lp_rasterizer *rast, struct lp_scene *scene ); @@ -157,7 +177,7 @@ union lp_rast_cmd_arg { unsigned plane_mask; } triangle; const struct lp_rast_state *set_state; - union pipe_color_union clear_color; + const struct lp_rast_clear_rb *clear_rb; struct { uint64_t value; uint64_t mask; @@ -170,7 +190,7 @@ union lp_rast_cmd_arg { /* Cast wrappers. Hopefully these compile to noops! */ -static INLINE union lp_rast_cmd_arg +static inline union lp_rast_cmd_arg lp_rast_arg_inputs( const struct lp_rast_shader_inputs *shade_tile ) { union lp_rast_cmd_arg arg; @@ -178,7 +198,7 @@ lp_rast_arg_inputs( const struct lp_rast_shader_inputs *shade_tile ) return arg; } -static INLINE union lp_rast_cmd_arg +static inline union lp_rast_cmd_arg lp_rast_arg_triangle( const struct lp_rast_triangle *triangle, unsigned plane_mask) { @@ -194,7 +214,7 @@ lp_rast_arg_triangle( const struct lp_rast_triangle *triangle, * All planes are enabled, so instead of the plane mask we pass the upper * left coordinates of the a block that fully encloses the triangle. */ -static INLINE union lp_rast_cmd_arg +static inline union lp_rast_cmd_arg lp_rast_arg_triangle_contained( const struct lp_rast_triangle *triangle, unsigned x, unsigned y) { @@ -204,7 +224,7 @@ lp_rast_arg_triangle_contained( const struct lp_rast_triangle *triangle, return arg; } -static INLINE union lp_rast_cmd_arg +static inline union lp_rast_cmd_arg lp_rast_arg_state( const struct lp_rast_state *state ) { union lp_rast_cmd_arg arg; @@ -212,7 +232,7 @@ lp_rast_arg_state( const struct lp_rast_state *state ) return arg; } -static INLINE union lp_rast_cmd_arg +static inline union lp_rast_cmd_arg lp_rast_arg_fence( struct lp_fence *fence ) { union lp_rast_cmd_arg arg; @@ -221,7 +241,7 @@ lp_rast_arg_fence( struct lp_fence *fence ) } -static INLINE union lp_rast_cmd_arg +static inline union lp_rast_cmd_arg lp_rast_arg_clearzs( uint64_t value, uint64_t mask ) { union lp_rast_cmd_arg arg; @@ -231,7 +251,7 @@ lp_rast_arg_clearzs( uint64_t value, uint64_t mask ) } -static INLINE union lp_rast_cmd_arg +static inline union lp_rast_cmd_arg lp_rast_arg_query( struct llvmpipe_query *pq ) { union lp_rast_cmd_arg arg; @@ -239,7 +259,7 @@ lp_rast_arg_query( struct llvmpipe_query *pq ) return arg; } -static INLINE union lp_rast_cmd_arg +static inline union lp_rast_cmd_arg lp_rast_arg_null( void ) { union lp_rast_cmd_arg arg; @@ -271,8 +291,19 @@ lp_rast_arg_null( void ) #define LP_RAST_OP_BEGIN_QUERY 0xf #define LP_RAST_OP_END_QUERY 0x10 #define LP_RAST_OP_SET_STATE 0x11 - -#define LP_RAST_OP_MAX 0x12 +#define LP_RAST_OP_TRIANGLE_32_1 0x12 +#define LP_RAST_OP_TRIANGLE_32_2 0x13 +#define LP_RAST_OP_TRIANGLE_32_3 0x14 +#define LP_RAST_OP_TRIANGLE_32_4 0x15 +#define LP_RAST_OP_TRIANGLE_32_5 0x16 +#define LP_RAST_OP_TRIANGLE_32_6 0x17 +#define LP_RAST_OP_TRIANGLE_32_7 0x18 +#define LP_RAST_OP_TRIANGLE_32_8 0x19 +#define LP_RAST_OP_TRIANGLE_32_3_4 0x1a +#define LP_RAST_OP_TRIANGLE_32_3_16 0x1b +#define LP_RAST_OP_TRIANGLE_32_4_16 0x1c + +#define LP_RAST_OP_MAX 0x1d #define LP_RAST_OP_MASK 0xff void