summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-09-12 12:58:38 -0700
committerJason Ekstrand <[email protected]>2016-09-14 17:53:16 -0700
commit89a96c8f43370cc84adf92ab32e3de302a1fa1d0 (patch)
treeb5262dfcae89b3be50ceb341d0f8d8aba70c42ec
parenta814e18c96ccc70473103cf08a675265f0d1b3c9 (diff)
anv/cmd_buffer: Set the L3 atomic disable mask bit in CHICKEN3 on HSW
Without this bit set, the value in "L3 Atomic Disable" won't get applied by the hardware so we won't properly get L3 atomic caching. Fixes dEQP-VK.spirv_assembly.instruction.compute.opatomic.compex and 198 of the dEQP-VK.image.atomic_operations.* tests on HSW Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
-rw-r--r--src/intel/genxml/gen75.xml1
-rw-r--r--src/intel/vulkan/genX_cmd_buffer.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/intel/genxml/gen75.xml b/src/intel/genxml/gen75.xml
index 27112b6fcc2..1debc3ac3e5 100644
--- a/src/intel/genxml/gen75.xml
+++ b/src/intel/genxml/gen75.xml
@@ -2951,6 +2951,7 @@
<register name="CHICKEN3" length="1" num="0xe49c">
<field name="L3 Atomic Disable" start="6" end="6" type="uint"/>
+ <field name="L3 Atomic Disable Mask" start="22" end="22" type="uint"/>
</register>
</genxml>
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index b6f93e7740d..6a84383c9ad 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -296,6 +296,7 @@ genX(cmd_buffer_config_l3)(struct anv_cmd_buffer *cmd_buffer,
anv_pack_struct(&scratch1, GENX(SCRATCH1),
.L3AtomicDisable = !has_dc);
anv_pack_struct(&chicken3, GENX(CHICKEN3),
+ .L3AtomicDisableMask = true,
.L3AtomicDisable = !has_dc);
emit_lri(&cmd_buffer->batch, GENX(SCRATCH1_num), scratch1);
emit_lri(&cmd_buffer->batch, GENX(CHICKEN3_num), chicken3);