From 857f20d1647e17c9fe6a5b38e101ab85af444e28 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 22 Sep 2015 12:00:50 +0200 Subject: [PATCH] Mark memory records as dirty (for now - buffers shouldn't dirty at all) --- .../driver/vulkan/wrappers/vk_draw_funcs.cpp | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp index e31d9e639..8a5d4eb1d 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp @@ -170,6 +170,11 @@ void WrappedVulkan::vkCmdBlitImage( record->AddChunk(scope.Get()); record->dirtied.insert(GetResID(destImage)); + { + VkResourceRecord *im = GetRecord(destImage); + if(im->GetMemoryRecord()) + record->dirtied.insert(im->GetMemoryRecord()->GetResourceID()); + } record->MarkResourceFrameReferenced(GetResID(srcImage), eFrameRef_Read); record->MarkResourceFrameReferenced(GetResID(destImage), eFrameRef_Write); } @@ -244,7 +249,12 @@ void WrappedVulkan::vkCmdCopyImage( record->MarkResourceFrameReferenced(GetResID(destImage), eFrameRef_Write); // VKTODOHIGH init states not implemented yet... - //record->dirtied.insert(GetResID(destImage)); + record->dirtied.insert(GetResID(destImage)); + { + VkResourceRecord *im = GetRecord(destImage); + if(im->GetMemoryRecord()) + record->dirtied.insert(im->GetMemoryRecord()->GetResourceID()); + } } } @@ -326,6 +336,11 @@ void WrappedVulkan::vkCmdCopyBufferToImage( record->AddChunk(scope.Get()); record->dirtied.insert(GetResID(destImage)); + { + VkResourceRecord *im = GetRecord(destImage); + if(im->GetMemoryRecord()) + record->dirtied.insert(im->GetMemoryRecord()->GetResourceID()); + } record->MarkResourceFrameReferenced(GetResID(srcBuffer), eFrameRef_Read); record->MarkResourceFrameReferenced(GetResID(destImage), eFrameRef_Write); } @@ -399,6 +414,11 @@ void WrappedVulkan::vkCmdCopyImageToBuffer( // VKTODOMED: need to dirty the memory bound to the buffer? record->dirtied.insert(GetResID(destBuffer)); + { + VkResourceRecord *buf = GetRecord(destBuffer); + if(buf->GetMemoryRecord()) + record->dirtied.insert(buf->GetMemoryRecord()->GetResourceID()); + } } } @@ -481,6 +501,11 @@ void WrappedVulkan::vkCmdCopyBuffer( // VKTODOMED: need to dirty the memory bound to the buffer? record->dirtied.insert(GetResID(destBuffer)); + { + VkResourceRecord *buf = GetRecord(destBuffer); + if(buf->GetMemoryRecord()) + record->dirtied.insert(buf->GetMemoryRecord()->GetResourceID()); + } } }