From bb4baec204666867d93260667dd9941971d2d391 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Tue, 10 Feb 2026 17:49:17 +0000 Subject: [PATCH] Fix Vulkan Wireframe overlay fallback when fillModeNonSolid is false Change the RenderState properties after calling PatchLineStripIndexBuffer() Mark the draw as an Indexed action --- renderdoc/driver/vulkan/vk_overlay.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_overlay.cpp b/renderdoc/driver/vulkan/vk_overlay.cpp index 4f7ad6f94..9c7d0e491 100644 --- a/renderdoc/driver/vulkan/vk_overlay.cpp +++ b/renderdoc/driver/vulkan/vk_overlay.cpp @@ -1268,7 +1268,6 @@ ResourceId VulkanReplay::RenderOverlay(ResourceId texid, FloatVector clearCol, D if(ia) ia->topology = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP; - state.primitiveTopology = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP; // thankfully, primitive restart is always supported! This makes the index buffer a bit // more @@ -1276,10 +1275,12 @@ ResourceId VulkanReplay::RenderOverlay(ResourceId texid, FloatVector clearCol, D // three lines, instead we have a single restart index after each triangle. if(ia) ia->primitiveRestartEnable = true; - state.primRestartEnable = true; GetDebugManager()->PatchLineStripIndexBuffer(mainDraw, patchedIB, patchedIndexCount); + state.primitiveTopology = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP; + state.primRestartEnable = true; + if(m_pDriver->ShaderObject()) state.dynamicStates[VkDynamicLineWidth] = true; } @@ -1433,6 +1434,7 @@ ResourceId VulkanReplay::RenderOverlay(ResourceId texid, FloatVector clearCol, D action.numIndices = patchedIndexCount; action.baseVertex = 0; action.indexOffset = 0; + action.flags |= ActionFlags::Indexed; m_pDriver->ReplayDraw(cmd, action); state.EndRenderPass(cmd);