From b1d581b3c209284850c6b109af8002b033158bcd Mon Sep 17 00:00:00 2001 From: Remi Palandri Date: Wed, 5 Feb 2025 15:36:20 +0100 Subject: [PATCH] prevent subsequent calls to setobjectname increasing chunk count --- .../driver/vulkan/wrappers/vk_misc_funcs.cpp | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp index 4396d267e..908aa5348 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp @@ -2321,6 +2321,22 @@ VkResult WrappedVulkan::vkDebugMarkerSetObjectNameEXT(VkDevice device, Chunk *chunk = scope.Get(); + data.record->LockChunks(); + while(data.record->HasChunks()) + { + Chunk *end = data.record->GetLastChunk(); + + if(end->GetChunkType() == VulkanChunk::vkDebugMarkerSetObjectNameEXT) + { + end->Delete(); + data.record->PopChunk(); + continue; + } + + break; + } + data.record->UnlockChunks(); + data.record->AddChunk(chunk); } } @@ -2449,6 +2465,22 @@ VkResult WrappedVulkan::vkSetDebugUtilsObjectNameEXT(VkDevice device, Chunk *chunk = scope.Get(); + data.record->LockChunks(); + while(data.record->HasChunks()) + { + Chunk *end = data.record->GetLastChunk(); + + if(end->GetChunkType() == VulkanChunk::vkSetDebugUtilsObjectNameEXT) + { + end->Delete(); + data.record->PopChunk(); + continue; + } + + break; + } + data.record->UnlockChunks(); + data.record->AddChunk(chunk); } }