From 2bfccb1321e13799a600f3b92a25f59608397f35 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 5 Nov 2020 21:24:18 +0000 Subject: [PATCH] Properly apply vertexOffset for builtin in indexed draws --- renderdoc/driver/vulkan/vk_postvs.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_postvs.cpp b/renderdoc/driver/vulkan/vk_postvs.cpp index 49dd7ac1a..3f52bc3e9 100644 --- a/renderdoc/driver/vulkan/vk_postvs.cpp +++ b/renderdoc/driver/vulkan/vk_postvs.cpp @@ -894,6 +894,14 @@ static void ConvertToMeshOutputCompute(const ShaderReflection &refl, const SPIRV if(builtin == ShaderBuiltin::VertexIndex) { valueID = vertexIndexID; + // although for indexed draws we accounted for vertexOffset when looking up fixed + // function vertex inputs, we still need to apply it to the VertexIndex builtin here. + if(draw->flags & DrawFlags::Indexed) + { + valueID = + ops.add(rdcspv::OpIAdd(uint32ID, editor.MakeId(), valueID, + editor.AddConstantImmediate(draw->vertexOffset))); + } } else if(builtin == ShaderBuiltin::InstanceIndex) {