diff options
author | Francisco Jerez <[email protected]> | 2015-12-23 18:44:59 +0200 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2016-01-14 19:26:23 -0800 |
commit | 22ac1f692228d8c44155bfa637c8e34356c7e0b7 (patch) | |
tree | 6d6e2f4ae04666e29e61b52b76d71f1fcbd3a0c8 /src/mesa/drivers | |
parent | fffb559129dd1ae978ec7f9ba30b4ae97a5ebbcc (diff) |
i965: Add state bit to trigger re-emission of color calculator state.
This will be used on Gen8+ to make sure that the color calculator
state pointers are re-emitted when switching back to the 3D pipeline
after some GPGPU workload due to a hardware workaround. There are
other state bits already defined that could be used to achieve the
same effect but they all cause a ton of unrelated state to be
re-emitted (e.g. BRW_NEW_STATE_BASE_ADDRESS), so just define a new
one, state bits are cheap.
Reviewed-by: Matt Turner <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_context.h | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_state_upload.c | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/gen6_cc.c | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 7b0340fc2ab..b80db00eb75 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -221,6 +221,7 @@ enum brw_state_id { BRW_STATE_COMPUTE_PROGRAM, BRW_STATE_CS_WORK_GROUPS, BRW_STATE_URB_SIZE, + BRW_STATE_CC_STATE, BRW_NUM_STATE_BITS }; @@ -309,6 +310,7 @@ enum brw_state_id { #define BRW_NEW_COMPUTE_PROGRAM (1ull << BRW_STATE_COMPUTE_PROGRAM) #define BRW_NEW_CS_WORK_GROUPS (1ull << BRW_STATE_CS_WORK_GROUPS) #define BRW_NEW_URB_SIZE (1ull << BRW_STATE_URB_SIZE) +#define BRW_NEW_CC_STATE (1ull << BRW_STATE_CC_STATE) struct brw_state_flags { /** State update flags signalled by mesa internals */ diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c index 2a671a58d8c..876e130f1cd 100644 --- a/src/mesa/drivers/dri/i965/brw_state_upload.c +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c @@ -664,6 +664,7 @@ static struct dirty_bit_map brw_bits[] = { DEFINE_BIT(BRW_NEW_COMPUTE_PROGRAM), DEFINE_BIT(BRW_NEW_CS_WORK_GROUPS), DEFINE_BIT(BRW_NEW_URB_SIZE), + DEFINE_BIT(BRW_NEW_CC_STATE), {0, 0, 0} }; diff --git a/src/mesa/drivers/dri/i965/gen6_cc.c b/src/mesa/drivers/dri/i965/gen6_cc.c index 3bab8f46ae8..cee139b7fd4 100644 --- a/src/mesa/drivers/dri/i965/gen6_cc.c +++ b/src/mesa/drivers/dri/i965/gen6_cc.c @@ -298,6 +298,7 @@ const struct brw_tracked_state gen6_color_calc_state = { .mesa = _NEW_COLOR | _NEW_STENCIL, .brw = BRW_NEW_BATCH | + BRW_NEW_CC_STATE | BRW_NEW_STATE_BASE_ADDRESS, }, .emit = gen6_upload_color_calc_state, |