summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Antognolli <rafael.antognolli@intel.com>2018-06-11 11:29:14 -0700
committerRafael Antognolli <rafael.antognolli@intel.com>2019-12-04 20:48:25 +0000
commit9db044792f609867654a016321f80511ce5f9bf6 (patch)
tree16b63e05700a1e624e579b6c4abe2211a151efbe
parent8983622995804aa5279647fc5bea75d0ca3b4612 (diff)
downloadmesa-9db044792f609867654a016321f80511ce5f9bf6.tar.gz
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 <caio.oliveira@intel.com>
-rw-r--r--src/intel/blorp/blorp_genX_exec.h7
1 files changed, 7 insertions, 0 deletions
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);