From f8c792d84e5c70803adf10108e980aab95198769 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Tue, 12 Apr 2022 04:59:22 +0100 Subject: [PATCH] PR Feedback MTLCommandBuffer::commit record tweak MarkResourceFrameReferenced() on the buffer record instead of the resource manager Transfer the frame references on the buffer record to the resource manager when the buffer is committed. --- renderdoc/driver/metal/metal_command_buffer.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/renderdoc/driver/metal/metal_command_buffer.cpp b/renderdoc/driver/metal/metal_command_buffer.cpp index d89be74bd..a04642cd9 100644 --- a/renderdoc/driver/metal/metal_command_buffer.cpp +++ b/renderdoc/driver/metal/metal_command_buffer.cpp @@ -98,15 +98,16 @@ void WrappedMTLCommandBuffer::commit() Serialise_commit(ser); chunk = scope.Get(); } - MetalResourceRecord *record = GetRecord(this); - record->AddChunk(chunk); + MetalResourceRecord *bufferRecord = GetRecord(this); + bufferRecord->AddChunk(chunk); bool capframe = IsActiveCapturing(m_State); if(capframe) { record->AddRef(); - GetResourceManager()->MarkResourceFrameReferenced(GetResID(m_WrappedMTLCommandQueue), - eFrameRef_Read); + bufferRecord->MarkResourceFrameReferenced(GetResID(m_WrappedMTLCommandQueue), eFrameRef_Read); + // pull in frame refs from this command buffer + bufferRecord->AddResourceReferences(GetResourceManager()); } } else