i965: Introduce a BRW_NEW_DRAW_CALL dirty bit.
This allows us to have atoms which are signalled on every draw call. Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
@@ -214,6 +214,7 @@ enum brw_state_id {
|
||||
BRW_STATE_BLORP,
|
||||
BRW_STATE_VIEWPORT_COUNT,
|
||||
BRW_STATE_CONSERVATIVE_RASTERIZATION,
|
||||
BRW_STATE_DRAW_CALL,
|
||||
BRW_NUM_STATE_BITS
|
||||
};
|
||||
|
||||
@@ -304,6 +305,7 @@ enum brw_state_id {
|
||||
#define BRW_NEW_CC_STATE (1ull << BRW_STATE_CC_STATE)
|
||||
#define BRW_NEW_BLORP (1ull << BRW_STATE_BLORP)
|
||||
#define BRW_NEW_CONSERVATIVE_RASTERIZATION (1ull << BRW_STATE_CONSERVATIVE_RASTERIZATION)
|
||||
#define BRW_NEW_DRAW_CALL (1ull << BRW_STATE_DRAW_CALL)
|
||||
|
||||
struct brw_state_flags {
|
||||
/** State update flags signalled by mesa internals */
|
||||
|
@@ -675,6 +675,11 @@ brw_try_draw_prims(struct gl_context *ctx,
|
||||
estimated_max_prim_size += 1024; /* gen6 WM push constants */
|
||||
estimated_max_prim_size += 512; /* misc. pad */
|
||||
|
||||
/* Flag BRW_NEW_DRAW_CALL on every draw. This allows us to have
|
||||
* atoms that happen on every draw call.
|
||||
*/
|
||||
brw->ctx.NewDriverState |= BRW_NEW_DRAW_CALL;
|
||||
|
||||
/* Flush the batch if it's approaching full, so that we don't wrap while
|
||||
* we've got validated state that needs to be in the same batch as the
|
||||
* primitives.
|
||||
|
@@ -340,6 +340,7 @@ static struct dirty_bit_map brw_bits[] = {
|
||||
DEFINE_BIT(BRW_NEW_BLORP),
|
||||
DEFINE_BIT(BRW_NEW_VIEWPORT_COUNT),
|
||||
DEFINE_BIT(BRW_NEW_CONSERVATIVE_RASTERIZATION),
|
||||
DEFINE_BIT(BRW_NEW_DRAW_CALL),
|
||||
{0, 0, 0}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user