From aa78f90d3486f1589e5e76b2c35055b7dbd3affe Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 7 Aug 2026 14:28:50 +0100 Subject: [PATCH] Sync before any map updates if we have already submitted GPU work --- renderdoc/driver/vulkan/vk_core.cpp | 2 ++ renderdoc/driver/vulkan/vk_core.h | 2 ++ renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp | 2 ++ renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp | 6 ++++++ 4 files changed, 12 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 3b7abb5d8..2f90b19bd 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -3942,6 +3942,8 @@ RDResult WrappedVulkan::ContextReplayLog(CaptureState readType, uint32_t startEv { m_FrameReader->SetOffset(0); + m_HasSubmit = false; + ReadSerialiser ser(m_FrameReader, Ownership::Nothing); ser.SetStringDatabase(&m_StringDB); diff --git a/renderdoc/driver/vulkan/vk_core.h b/renderdoc/driver/vulkan/vk_core.h index 3883e8c6f..2b2050fbb 100644 --- a/renderdoc/driver/vulkan/vk_core.h +++ b/renderdoc/driver/vulkan/vk_core.h @@ -1207,6 +1207,8 @@ private: uint32_t m_FirstEventID, m_LastEventID; VulkanChunk m_LastChunk; + bool m_HasSubmit = false; + ResourceId m_LastPresentedImage; std::set m_SparseBindResources; diff --git a/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp index 90a6a2fda..ee633c87d 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp @@ -276,6 +276,8 @@ WrappedVulkan::CommandBufferNode *WrappedVulkan::BuildSubmitTree(ResourceId cmdI void WrappedVulkan::ReplayQueueSubmit(VkQueue queue, VkSubmitInfo2 submitInfo, rdcstr basename) { + m_HasSubmit = true; + if(IsLoading(m_State)) { AddEvent(); diff --git a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp index 8b3870a3e..f7cff5393 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_resource_funcs.cpp @@ -1491,6 +1491,12 @@ bool WrappedVulkan::Serialise_vkFlushMappedMemoryRanges(SerialiserType &ser, VkD it++; } + + if(m_HasSubmit) + { + FlushQ(); + m_HasSubmit = false; + } } if(directStream)