diff --git a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp index 87eab494d..c9b2218b9 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp @@ -1200,6 +1200,11 @@ void WrappedVulkan::vkCmdDrawIndirect( Serialise_vkCmdDrawIndirect(localSerialiser, commandBuffer, buffer, offset, count, stride); record->AddChunk(scope.Get()); + + record->MarkResourceFrameReferenced(GetResID(buffer), eFrameRef_Read); + record->MarkResourceFrameReferenced(GetRecord(buffer)->baseResource, eFrameRef_Read); + if(GetRecord(buffer)->sparseInfo) + record->cmdInfo->sparse.insert(GetRecord(buffer)->sparseInfo); } } @@ -1261,6 +1266,11 @@ void WrappedVulkan::vkCmdDrawIndexedIndirect( Serialise_vkCmdDrawIndexedIndirect(localSerialiser, commandBuffer, buffer, offset, count, stride); record->AddChunk(scope.Get()); + + record->MarkResourceFrameReferenced(GetResID(buffer), eFrameRef_Read); + record->MarkResourceFrameReferenced(GetRecord(buffer)->baseResource, eFrameRef_Read); + if(GetRecord(buffer)->sparseInfo) + record->cmdInfo->sparse.insert(GetRecord(buffer)->sparseInfo); } } @@ -1389,5 +1399,10 @@ void WrappedVulkan::vkCmdDispatchIndirect( Serialise_vkCmdDispatchIndirect(localSerialiser, commandBuffer, buffer, offset); record->AddChunk(scope.Get()); + + record->MarkResourceFrameReferenced(GetResID(buffer), eFrameRef_Read); + record->MarkResourceFrameReferenced(GetRecord(buffer)->baseResource, eFrameRef_Read); + if(GetRecord(buffer)->sparseInfo) + record->cmdInfo->sparse.insert(GetRecord(buffer)->sparseInfo); } }