From 9db044792f609867654a016321f80511ce5f9bf6 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 11 Jun 2018 11:29:14 -0700 Subject: [PATCH] intel/blorp: Use 3DSTATE_CONSTANT_ALL to setup push constants. In blorp, all the push constants are disabled, so we only need to emit a single 3DSTATE_CONSTANT_ALL with the bitmask for stage update appropriately set. v2: Update comment (Caio). Reviewed-by: Caio Marcelo de Oliveira Filho --- src/intel/blorp/blorp_genX_exec.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index 9f75efe012d..67b345cbf0b 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -1252,6 +1252,12 @@ blorp_emit_pipeline(struct blorp_batch *batch, (void)depth_stencil_state_offset; #endif +#if GEN_GEN >= 12 + blorp_emit(batch, GENX(3DSTATE_CONSTANT_ALL), pc) { + /* Update empty push constants for all stages (bitmask = 11111b) */ + pc.ShaderUpdateEnable = 0x1f; + } +#else blorp_emit(batch, GENX(3DSTATE_CONSTANT_VS), vs); #if GEN_GEN >= 7 blorp_emit(batch, GENX(3DSTATE_CONSTANT_HS), hs); @@ -1259,6 +1265,7 @@ blorp_emit_pipeline(struct blorp_batch *batch, #endif blorp_emit(batch, GENX(3DSTATE_CONSTANT_GS), gs); blorp_emit(batch, GENX(3DSTATE_CONSTANT_PS), ps); +#endif if (params->src.enabled) blorp_emit_sampler_state(batch); -- 2.30.2