Mesa (staging/22.0): anv: disable preemption on 3DPRIMITIVE on gfx12

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Apr 6 21:44:49 UTC 2022


Module: Mesa
Branch: staging/22.0
Commit: 7bbc12a3969f56ce1647f4b8a87d0902828dfdb0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7bbc12a3969f56ce1647f4b8a87d0902828dfdb0

Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date:   Tue Apr  5 15:35:57 2022 +0300

anv: disable preemption on 3DPRIMITIVE on gfx12

To workaround a push constant corruption issue.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5963
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5662
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15753>
(cherry picked from commit 88f77aa811befffd931571216bb4d6978a1fb155)

---

 .pick_status.json             | 2 +-
 src/intel/genxml/gen12.xml    | 2 ++
 src/intel/vulkan/genX_state.c | 5 +++++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index 0c8b2148015..214250298d9 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -36,7 +36,7 @@
         "description": "anv: disable preemption on 3DPRIMITIVE on gfx12",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "because_sha": null
     },
     {
diff --git a/src/intel/genxml/gen12.xml b/src/intel/genxml/gen12.xml
index c250da0c07c..2d708b5746a 100644
--- a/src/intel/genxml/gen12.xml
+++ b/src/intel/genxml/gen12.xml
@@ -7201,7 +7201,9 @@
       <value name="Mid-cmdbuffer Preemption" value="0"/>
       <value name="Object Level Preemption" value="1"/>
     </field>
+    <field name="Disable Preemption and High Priority Pausing due to 3DPRIMITIVE Command" start="10" end="10" type="bool"/>
     <field name="Replay Mode Mask" start="16" end="16" type="bool"/>
+    <field name="Disable Preemption and High Priority Pausing due to 3DPRIMITIVE Command Mask" start="26" end="26" type="bool"/>
   </register>
 
   <register name="CS_DEBUG_MODE2" length="1" num="0x20d8">
diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c
index a91c07418f6..b6b5eae554c 100644
--- a/src/intel/vulkan/genX_state.c
+++ b/src/intel/vulkan/genX_state.c
@@ -262,6 +262,11 @@ init_render_queue_state(struct anv_queue *queue)
    anv_batch_write_reg(&batch, GENX(CS_CHICKEN1), cc1) {
       cc1.ReplayMode = MidcmdbufferPreemption;
       cc1.ReplayModeMask = true;
+
+#if GFX_VERx10 == 120
+      cc1.DisablePreemptionandHighPriorityPausingdueto3DPRIMITIVECommand = true;
+      cc1.DisablePreemptionandHighPriorityPausingdueto3DPRIMITIVECommandMask = true;
+#endif
    }
 
 #if GFX_VERx10 < 125



More information about the mesa-commit mailing list