diff --git a/src/util/metal_device.mm b/src/util/metal_device.mm index a8d23cbfb..12618553f 100644 --- a/src/util/metal_device.mm +++ b/src/util/metal_device.mm @@ -394,11 +394,12 @@ void MetalDevice::RenderBlankFrame() @autoreleasepool { - id drawable = [m_layer nextDrawable]; + id drawable = [[m_layer nextDrawable] retain]; m_layer_pass_desc.colorAttachments[0].texture = [drawable texture]; id encoder = [m_render_cmdbuf renderCommandEncoderWithDescriptor:m_layer_pass_desc]; [encoder endEncoding]; [m_render_cmdbuf presentDrawable:drawable]; + DeferRelease(drawable); SubmitCommandBuffer(); } } @@ -2019,7 +2020,7 @@ void MetalDevice::EndPresent() EndAnyEncoding(); [m_render_cmdbuf presentDrawable:m_layer_drawable]; - [m_layer_drawable release]; + DeferRelease(m_layer_drawable); m_layer_drawable = nil; SubmitCommandBuffer(); TrimTexturePool();