From 027a7e951b4e03e2b05fdfa272688595786898b5 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 29 Dec 2017 18:27:51 +0000 Subject: [PATCH] Fix copy-paste error with vkCmdDrawIndirect & vkCmdDrawIndexedIndirect --- renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp index bd2ef5f89..55de5a0c6 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp @@ -437,7 +437,7 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndirect(SerialiserType &ser, VkCommandBu AddEvent(); draw.name = name; - draw.flags = DrawFlags::Drawcall | DrawFlags::Instanced; + draw.flags = DrawFlags::Drawcall | DrawFlags::Instanced | DrawFlags::Indirect; AddDrawcall(draw, true); @@ -685,12 +685,14 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirect(SerialiserType &ser, uint32_t eventId = HandlePreCallback(commandBuffer, DrawFlags::Drawcall, drawidx + 1); ObjDisp(commandBuffer) - ->CmdDrawIndirect(Unwrap(commandBuffer), Unwrap(buffer), offset, count, stride); + ->CmdDrawIndexedIndirect(Unwrap(commandBuffer), Unwrap(buffer), offset, count, + stride); if(eventId && m_DrawcallCallback->PostDraw(eventId, commandBuffer)) { ObjDisp(commandBuffer) - ->CmdDrawIndirect(Unwrap(commandBuffer), Unwrap(buffer), offset, count, stride); + ->CmdDrawIndexedIndirect(Unwrap(commandBuffer), Unwrap(buffer), offset, count, + stride); m_DrawcallCallback->PostRedraw(eventId, commandBuffer); } } @@ -750,7 +752,8 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirect(SerialiserType &ser, AddEvent(); draw.name = name; - draw.flags = DrawFlags::Drawcall | DrawFlags::Instanced; + draw.flags = DrawFlags::Drawcall | DrawFlags::Instanced | DrawFlags::UseIBuffer | + DrawFlags::Indirect; AddDrawcall(draw, true); @@ -801,7 +804,8 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirect(SerialiserType &ser, multi.name = "vkCmdDrawIndexedIndirect[" + ToStr(i) + "](<" + ToStr(multi.numIndices) + ", " + ToStr(multi.numInstances) + ">)"; - multi.flags |= DrawFlags::Drawcall | DrawFlags::Instanced | DrawFlags::Indirect; + multi.flags |= DrawFlags::Drawcall | DrawFlags::Instanced | DrawFlags::UseIBuffer | + DrawFlags::Indirect; // add a fake chunk for this individual indirect draw SDChunk *fakeChunk = new SDChunk(multi.name.c_str());