i965/cs: Add BRW_NEW_COMPUTE_PROGRAM state flag.
Also add code to brw_upload_state to set it when the compute program changes. Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
committed by
Jordan Justen
parent
02e9773bc8
commit
6ee4dac1ef
@@ -209,6 +209,7 @@ enum brw_state_id {
|
||||
BRW_STATE_CLIP_VP,
|
||||
BRW_STATE_SAMPLER_STATE_TABLE,
|
||||
BRW_STATE_VS_ATTRIB_WORKAROUNDS,
|
||||
BRW_STATE_COMPUTE_PROGRAM,
|
||||
BRW_NUM_STATE_BITS
|
||||
};
|
||||
|
||||
@@ -288,6 +289,7 @@ enum brw_state_id {
|
||||
#define BRW_NEW_CLIP_VP (1ull << BRW_STATE_CLIP_VP)
|
||||
#define BRW_NEW_SAMPLER_STATE_TABLE (1ull << BRW_STATE_SAMPLER_STATE_TABLE)
|
||||
#define BRW_NEW_VS_ATTRIB_WORKAROUNDS (1ull << BRW_STATE_VS_ATTRIB_WORKAROUNDS)
|
||||
#define BRW_NEW_COMPUTE_PROGRAM (1ull << BRW_STATE_COMPUTE_PROGRAM)
|
||||
|
||||
struct brw_state_flags {
|
||||
/** State update flags signalled by mesa internals */
|
||||
@@ -1205,6 +1207,7 @@ struct brw_context
|
||||
const struct gl_vertex_program *vertex_program;
|
||||
const struct gl_geometry_program *geometry_program;
|
||||
const struct gl_fragment_program *fragment_program;
|
||||
const struct gl_compute_program *compute_program;
|
||||
|
||||
/**
|
||||
* Number of samples in ctx->DrawBuffer, updated by BRW_NEW_NUM_SAMPLES so
|
||||
|
||||
@@ -580,6 +580,7 @@ static struct dirty_bit_map brw_bits[] = {
|
||||
DEFINE_BIT(BRW_NEW_CLIP_VP),
|
||||
DEFINE_BIT(BRW_NEW_SAMPLER_STATE_TABLE),
|
||||
DEFINE_BIT(BRW_NEW_VS_ATTRIB_WORKAROUNDS),
|
||||
DEFINE_BIT(BRW_NEW_COMPUTE_PROGRAM),
|
||||
{0, 0, 0}
|
||||
};
|
||||
|
||||
@@ -670,6 +671,11 @@ brw_upload_pipeline_state(struct brw_context *brw,
|
||||
}
|
||||
}
|
||||
|
||||
if (brw->compute_program != ctx->ComputeProgram._Current) {
|
||||
brw->compute_program = ctx->ComputeProgram._Current;
|
||||
brw->ctx.NewDriverState |= BRW_NEW_COMPUTE_PROGRAM;
|
||||
}
|
||||
|
||||
if (brw->meta_in_progress != _mesa_meta_in_progress(ctx)) {
|
||||
brw->meta_in_progress = _mesa_meta_in_progress(ctx);
|
||||
brw->ctx.NewDriverState |= BRW_NEW_META_IN_PROGRESS;
|
||||
|
||||
Reference in New Issue
Block a user