From: Eric Anholt Date: Thu, 1 May 2014 16:54:07 +0000 (-0700) Subject: i965: Refactor gen7_upload_constant_state to look more like gen8. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=51b79a657110044838380406fbb0930aa7664f4e;p=mesa.git i965: Refactor gen7_upload_constant_state to look more like gen8. Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/gen7_vs_state.c b/src/mesa/drivers/dri/i965/gen7_vs_state.c index e7fd4b59323..ba4a36e7e2e 100644 --- a/src/mesa/drivers/dri/i965/gen7_vs_state.c +++ b/src/mesa/drivers/dri/i965/gen7_vs_state.c @@ -35,31 +35,21 @@ gen7_upload_constant_state(struct brw_context *brw, const struct brw_stage_state *stage_state, bool active, unsigned opcode) { - if (!active || stage_state->push_const_size == 0) { - /* Disable the push constant buffers. */ - BEGIN_BATCH(7); - OUT_BATCH(opcode << 16 | (7 - 2)); - OUT_BATCH(0); - OUT_BATCH(0); - OUT_BATCH(0); - OUT_BATCH(0); - OUT_BATCH(0); - OUT_BATCH(0); - ADVANCE_BATCH(); - } else { - BEGIN_BATCH(7); - OUT_BATCH(opcode << 16 | (7 - 2)); - OUT_BATCH(stage_state->push_const_size); - OUT_BATCH(0); - /* Pointer to the constant buffer. Covered by the set of state flags - * from gen6_prepare_wm_contants - */ - OUT_BATCH(stage_state->push_const_offset | GEN7_MOCS_L3); - OUT_BATCH(0); - OUT_BATCH(0); - OUT_BATCH(0); - ADVANCE_BATCH(); - } + /* Disable if the shader stage is inactive or there are no push constants. */ + active = active && stage_state->push_const_size != 0; + + BEGIN_BATCH(7); + OUT_BATCH(opcode << 16 | (7 - 2)); + OUT_BATCH(active ? stage_state->push_const_size : 0); + OUT_BATCH(0); + /* Pointer to the constant buffer. Covered by the set of state flags + * from gen6_prepare_wm_contants + */ + OUT_BATCH(active ? (stage_state->push_const_offset | GEN7_MOCS_L3) : 0); + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); + ADVANCE_BATCH(); }