From a923ea615df9eb1ffc82b5261c854ffffb1af111 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 19 Jul 2016 18:44:03 +0200 Subject: [PATCH] If we're doing a range partial replay, just skip work in vkExecCommands --- renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index d44119b90..a7888ceee 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -2160,6 +2160,13 @@ bool WrappedVulkan::Serialise_vkCmdExecuteCommands(Serialiser *localSerialiser, BakedCmdBufferInfo &parentCmdBufInfo = m_BakedCmdBufferInfo[m_LastCmdBufferID]; + // if we're replaying a range but not from the start, we are guaranteed to only be replaying + // one of our executed command buffers and doing it to an outside command buffer. The outer + // loop will be doing SetOffset() to jump to each event, and any time we land here is just for + // the markers we've added, which have this file offset, so just skip all of our work. + if(m_FirstEventID > 1 && m_FirstEventID + 1 < m_LastEventID) + return true; + // account for the execute commands event parentCmdBufInfo.curEventID++;