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
This commit is contained in:
baldurk
2022-01-12 13:47:19 +00:00
parent ef5de41140
commit ed3a0266d1
@@ -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;