From 21798650dea34426abef01697698166e37ab6ca4 Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Thu, 26 Oct 2023 17:11:30 +0200 Subject: [PATCH] tu: Fix reading of stale (V)PC_PRIMITIVE_CNTL_0 PC_PRIMITIVE_CNTL_0 is not set in a draw state and may be changed by 3d blits, so we have to re-emit it a the start of a renderpass. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9941 Fixes: 7be8d0f7f490ea58c89798efca7e45b84dc395da ("tu: Use common dirty tracking for PC_PRIMITIVE_CNTL_0") Signed-off-by: Danylo Piliaiev Part-of: (cherry picked from commit cdbb8b541266b1095c9565eef6d115adac73c1aa) --- .pick_status.json | 2 +- src/freedreno/vulkan/tu_cmd_buffer.cc | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 12f4eed2be9..5bdbb02380d 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -134,7 +134,7 @@ "description": "tu: Fix reading of stale (V)PC_PRIMITIVE_CNTL_0", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "7be8d0f7f490ea58c89798efca7e45b84dc395da", "notes": null diff --git a/src/freedreno/vulkan/tu_cmd_buffer.cc b/src/freedreno/vulkan/tu_cmd_buffer.cc index f07e8615735..23a1e4ae53f 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.cc +++ b/src/freedreno/vulkan/tu_cmd_buffer.cc @@ -1610,6 +1610,11 @@ tu_emit_renderpass_begin(struct tu_cmd_buffer *cmd) */ BITSET_SET(cmd->vk.dynamic_graphics_state.dirty, MESA_VK_DYNAMIC_MS_RASTERIZATION_SAMPLES); + /* PC_PRIMITIVE_CNTL_0 isn't a part of a draw state and may be changed + * by blits. + */ + BITSET_SET(cmd->vk.dynamic_graphics_state.dirty, + MESA_VK_DYNAMIC_IA_PRIMITIVE_RESTART_ENABLE); } template