diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2020-03-29 02:16:06 -0700 |
---|---|---|
committer | Eric Engestrom <eric@engestrom.ch> | 2020-09-16 19:23:27 +0200 |
commit | 94faf66ad29e4ea9858f96bf71c76cf3cb84fb7f (patch) | |
tree | aaff6e510c67292de4da9358fee842f2779791cd | |
parent | e3fe502bfe41fac1da7133366477ebc5bd2c10de (diff) |
anv, iris: Set MediaSamplerDOPClockGateEnable for gen12+
This has been shown to help performance on TGL and DG1. This could be
applied to gen9+, but we still need to show if it helps with those
platforms.
Rework:
* Make change in src/intel/vulkan/genX_cmd_buffer.c too. (Ken)
* Keep mask as 3 for gen < 12
Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6684>
(cherry picked from commit 20a4235c4c96592e13648da494ca446288ac9a2f)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/gallium/drivers/iris/iris_state.c | 3 | ||||
-rw-r--r-- | src/intel/vulkan/genX_cmd_buffer.c | 3 | ||||
-rw-r--r-- | src/intel/vulkan/genX_state.c | 3 |
4 files changed, 7 insertions, 4 deletions
diff --git a/.pick_status.json b/.pick_status.json index 23cc8c60431..98f223e7fa2 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -562,7 +562,7 @@ "description": "anv, iris: Set MediaSamplerDOPClockGateEnable for gen12+", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index a5b825f1baf..58982cd5622 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -655,7 +655,8 @@ emit_pipeline_select(struct iris_batch *batch, uint32_t pipeline) iris_emit_cmd(batch, GENX(PIPELINE_SELECT), sel) { #if GEN_GEN >= 9 - sel.MaskBits = 3; + sel.MaskBits = GEN_GEN >= 12 ? 0x13 : 3; + sel.MediaSamplerDOPClockGateEnable = GEN_GEN >= 12; #endif sel.PipelineSelection = pipeline; } diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 7f47d929bd2..91d94f92a57 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -4557,7 +4557,8 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer, anv_batch_emit(&cmd_buffer->batch, GENX(PIPELINE_SELECT), ps) { #if GEN_GEN >= 9 - ps.MaskBits = 3; + ps.MaskBits = GEN_GEN >= 12 ? 0x13 : 3; + ps.MediaSamplerDOPClockGateEnable = GEN_GEN >= 12; #endif ps.PipelineSelection = pipeline; } diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c index 69c49a46ad3..ebd6c3ff03c 100644 --- a/src/intel/vulkan/genX_state.c +++ b/src/intel/vulkan/genX_state.c @@ -120,7 +120,8 @@ genX(init_device_state)(struct anv_device *device) anv_batch_emit(&batch, GENX(PIPELINE_SELECT), ps) { #if GEN_GEN >= 9 - ps.MaskBits = 3; + ps.MaskBits = GEN_GEN >= 12 ? 0x13 : 3; + ps.MediaSamplerDOPClockGateEnable = GEN_GEN >= 12; #endif ps.PipelineSelection = _3D; } |