Merge "Update placeholder ImageReader to close images" into androidx-main
diff --git a/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerManager.android.kt b/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerManager.android.kt
index cb37425..f2833bd 100644
--- a/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerManager.android.kt
+++ b/compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerManager.android.kt
@@ -87,7 +87,11 @@
1,
PixelFormat.RGBA_8888,
1
- ).also { imageReader = it }
+ ).apply {
+ // We don't care about the result, but release the buffer back to the queue
+ // for subsequent renders to ensure the RenderThread is free as much as possible
+ setOnImageAvailableListener({ it?.acquireLatestImage()?.close() }, handler)
+ }.also { imageReader = it }
val surface = reader.surface
val canvas = LockHardwareCanvasHelper.lockHardwareCanvas(surface)
// on Robolectric even this canvas is not hardware accelerated and drawing render nodes