From 22e9ef197205a5ff93b9b307ba664f6dd76cc9e9 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 14 Jan 2025 15:22:30 +0000 Subject: [PATCH] Ignore initial states for images that are still in UNDEFINED * By definition they can't have meaningful contents. --- renderdoc/driver/vulkan/vk_initstate.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_initstate.cpp b/renderdoc/driver/vulkan/vk_initstate.cpp index 89713f52f..8bf96ca4b 100644 --- a/renderdoc/driver/vulkan/vk_initstate.cpp +++ b/renderdoc/driver/vulkan/vk_initstate.cpp @@ -207,6 +207,7 @@ bool WrappedVulkan::Prepare_InitialState(WrappedVkRes *res) if(!state || !state->isMemoryBound) return true; + bool allUndef = true; for(auto it = state->subresourceStates.begin(); it != state->subresourceStates.end(); ++it) { if(it->state().newQueueFamilyIndex == VK_QUEUE_FAMILY_FOREIGN_EXT || @@ -216,6 +217,17 @@ bool WrappedVulkan::Prepare_InitialState(WrappedVkRes *res) // the initial contents. return true; } + + const ImageSubresourceState &subState = it->state(); + if(subState.newLayout != UNKNOWN_PREV_IMG_LAYOUT && + subState.newLayout != VK_IMAGE_LAYOUT_UNDEFINED) + allUndef = false; + } + + if(allUndef) + { + RDCDEBUG("Ignoring init states for %s as it never left undefined", ToStr(im->id).c_str()); + return true; } VkDevice d = GetDev();