diff --git a/compose/ui/ui/src/iosMain/kotlin/androidx/compose/ui/window/MetalRedrawer.ios.kt b/compose/ui/ui/src/iosMain/kotlin/androidx/compose/ui/window/MetalRedrawer.ios.kt index 1547468c7e75f..50cabebd85f43 100644 --- a/compose/ui/ui/src/iosMain/kotlin/androidx/compose/ui/window/MetalRedrawer.ios.kt +++ b/compose/ui/ui/src/iosMain/kotlin/androidx/compose/ui/window/MetalRedrawer.ios.kt @@ -439,9 +439,6 @@ internal class MetalRedrawer( picture.close() surface.flushAndSubmit() - surface.close() - renderTarget.close() - if (useSeparateRenderThreadWhenPossible) { dispatch_semaphore_signal(drawCanvasSemaphore) } @@ -481,6 +478,9 @@ internal class MetalRedrawer( } } + surface.close() + renderTarget.close() + // Track current inflight command buffers to synchronously wait for their schedule in case app goes background inflightCommandBuffers.add(commandBuffer)