Module: Mesa Branch: staging/22.0 Commit: 7bbc12a3969f56ce1647f4b8a87d0902828dfdb0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7bbc12a3969f56ce1647f4b8a87d0902828dfdb0
Author: Lionel Landwerlin <[email protected]> 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 <[email protected]> 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 <[email protected]> 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
