From 32177b99d532102edf2a2dda4ecf0bf015980f21 Mon Sep 17 00:00:00 2001 From: Olivia Lee Date: Wed, 5 Mar 2025 22:37:50 -0800 Subject: [PATCH] panvk: track whether we are in a vk_meta command This is needed to handle the provoking vertex mode correctly. vk_meta doesn't care which provoking vertex mode is used, but there is no way to express this directly in the vulkan api. Signed-off-by: Olivia Lee Tested-by: Mary Guillemard Reviewed-by: Mary Guillemard Reviewed-by: Ryan Mckeever Part-of: --- src/panfrost/vulkan/panvk_cmd_draw.h | 2 ++ src/panfrost/vulkan/panvk_vX_cmd_meta.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/panfrost/vulkan/panvk_cmd_draw.h b/src/panfrost/vulkan/panvk_cmd_draw.h index ffbb88fabf8..d30fd95a47e 100644 --- a/src/panfrost/vulkan/panvk_cmd_draw.h +++ b/src/panfrost/vulkan/panvk_cmd_draw.h @@ -171,6 +171,8 @@ struct panvk_cmd_graphics_state { struct panvk_rendering_state render; + bool vk_meta; + #if PAN_ARCH <= 7 uint64_t vpd; #endif diff --git a/src/panfrost/vulkan/panvk_vX_cmd_meta.c b/src/panfrost/vulkan/panvk_vX_cmd_meta.c index 787afd22d9f..3d1c6057203 100644 --- a/src/panfrost/vulkan/panvk_vX_cmd_meta.c +++ b/src/panfrost/vulkan/panvk_vX_cmd_meta.c @@ -106,6 +106,8 @@ panvk_per_arch(cmd_meta_gfx_start)( cmdbuf->state.gfx.occlusion_query.ptr = 0; cmdbuf->state.gfx.occlusion_query.mode = MALI_OCCLUSION_MODE_DISABLED; gfx_state_set_dirty(cmdbuf, OQ); + + cmdbuf->state.gfx.vk_meta = true; } void @@ -156,6 +158,8 @@ panvk_per_arch(cmd_meta_gfx_end)( gfx_state_set_dirty(cmdbuf, OQ); gfx_state_set_dirty(cmdbuf, DESC_STATE); gfx_state_set_dirty(cmdbuf, RENDER_STATE); + + cmdbuf->state.gfx.vk_meta = false; } VKAPI_ATTR void VKAPI_CALL