From 9ef979b48bc9a625609cd253a3c042ccd6b72ead Mon Sep 17 00:00:00 2001 From: Aitor Camacho Date: Wed, 17 Dec 2025 02:55:20 +0900 Subject: [PATCH] kk: Account for dynamic VI when flushing draw state Signed-off-by: Aitor Camacho Part-of: --- src/kosmickrisp/vulkan/kk_cmd_draw.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/kosmickrisp/vulkan/kk_cmd_draw.c b/src/kosmickrisp/vulkan/kk_cmd_draw.c index d99dccecef1..3acfc90c444 100644 --- a/src/kosmickrisp/vulkan/kk_cmd_draw.c +++ b/src/kosmickrisp/vulkan/kk_cmd_draw.c @@ -786,7 +786,10 @@ kk_flush_draw_state(struct kk_cmd_buffer *cmd) desc->root_dirty = true; } - if (gfx->dirty & KK_DIRTY_VB) { + if (BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_VI) || + BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_VI_BINDINGS_VALID) || + BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_VI_BINDING_STRIDES) || + gfx->dirty & KK_DIRTY_VB) { unsigned slot = 0; cmd->state.gfx.vb.max_vertices = 0u; u_foreach_bit(i, cmd->state.gfx.vb.attribs_read) { @@ -794,8 +797,6 @@ kk_flush_draw_state(struct kk_cmd_buffer *cmd) struct vk_vertex_attribute_state attr = dyn->vi->attributes[i]; struct kk_addr_range vb = gfx->vb.addr_range[attr.binding]; - mtl_render_use_resource(enc, gfx->vb.handles[attr.binding], - MTL_RESOURCE_USAGE_READ); desc->root.draw.attrib_clamps[slot] = kk_calculate_vbo_clamp( vb.addr, 0, vk_format_to_pipe_format(attr.format), vb.range, dyn->vi_binding_strides[attr.binding], attr.offset,