From 15c48f3dc122be4b29701355cc48eb63cf8e3029 Mon Sep 17 00:00:00 2001 From: der richter Date: Wed, 28 Feb 2024 16:19:30 +0100 Subject: [PATCH] cocoa-cb: render on main queue instead of dedicated queue initially we drew on a dedicated render queue to circumvent certain bottlenecks on the main queue, like concurrent events that could lead to late drawing. though due to the way cocoa works we need to draw an the main queue otherwise we get undefined behaviour that could lead to crashes. Fixes #10276 --- video/out/mac/gl_layer.swift | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/video/out/mac/gl_layer.swift b/video/out/mac/gl_layer.swift index d0d3a6de16..f39ac15ba1 100644 --- a/video/out/mac/gl_layer.swift +++ b/video/out/mac/gl_layer.swift @@ -82,8 +82,6 @@ class GLLayer: CAOpenGLLayer { enum Draw: Int { case normal = 1, atomic, atomicEnd } var draw: Draw = .normal - let queue: DispatchQueue = DispatchQueue(label: "io.mpv.queue.draw") - var needsICCUpdate: Bool = false { didSet { if needsICCUpdate == true { @@ -239,7 +237,7 @@ class GLLayer: CAOpenGLLayer { func update(force: Bool = false) { if force { forceDraw = true } - queue.async { + DispatchQueue.main.async { if self.forceDraw || !self.inLiveResize { self.needsFlip = true self.display()