From ed3a0266d1b2f9fe2b313bda6ef84f623741dffc Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 12 Jan 2022 13:47:19 +0000 Subject: [PATCH] We still need to patch store ops away from DONT_CARE on fastest replay * Fastest replay optimisations mean applying all optimisations but we can't break the ability to debug - without patching this, using DONT_CARE on store might mean we can't inspect renderpass contents from part-way through. Even partially replayed they can be discarded by the driver if the store op is still DONT_CARE --- renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp index 3ae5743b4..fd565ea4f 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp @@ -955,13 +955,13 @@ bool WrappedVulkan::Serialise_vkCreateRenderPass(SerialiserType &ser, VkDevice d VkAttachmentDescription *att = (VkAttachmentDescription *)CreateInfo.pAttachments; for(uint32_t i = 0; i < CreateInfo.attachmentCount; i++) { + if(att[i].storeOp != VK_ATTACHMENT_STORE_OP_NONE_EXT) + att[i].storeOp = VK_ATTACHMENT_STORE_OP_STORE; + if(att[i].stencilStoreOp != VK_ATTACHMENT_STORE_OP_NONE_EXT) + att[i].stencilStoreOp = VK_ATTACHMENT_STORE_OP_STORE; + if(m_ReplayOptions.optimisation != ReplayOptimisationLevel::Fastest) { - if(att[i].storeOp != VK_ATTACHMENT_STORE_OP_NONE_EXT) - att[i].storeOp = VK_ATTACHMENT_STORE_OP_STORE; - if(att[i].stencilStoreOp != VK_ATTACHMENT_STORE_OP_NONE_EXT) - att[i].stencilStoreOp = VK_ATTACHMENT_STORE_OP_STORE; - if(att[i].loadOp == VK_ATTACHMENT_LOAD_OP_DONT_CARE) { att[i].loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;