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 <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
BRW_STATE_COMPUTE_PROGRAM,
BRW_STATE_CS_WORK_GROUPS,
BRW_STATE_URB_SIZE,
+ BRW_STATE_CC_STATE,
BRW_NUM_STATE_BITS
};
#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 */
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}
};
.mesa = _NEW_COLOR |
_NEW_STENCIL,
.brw = BRW_NEW_BATCH |
+ BRW_NEW_CC_STATE |
BRW_NEW_STATE_BASE_ADDRESS,
},
.emit = gen6_upload_color_calc_state,