diff options
author | der richter <der.richter@gmx.de> | 2024-02-28 16:19:30 +0100 |
---|---|---|
committer | der richter <der.richter@gmx.de> | 2024-02-29 16:40:52 +0100 |
commit | 15c48f3dc122be4b29701355cc48eb63cf8e3029 (patch) | |
tree | 9aa0b3d903fe9227b5ae681a6a224e47351e77bf | |
parent | 7758f6f50e103ffecea7f02cf8cc148790b86bb6 (diff) | |
download | mpv-15c48f3dc122be4b29701355cc48eb63cf8e3029.tar.bz2 mpv-15c48f3dc122be4b29701355cc48eb63cf8e3029.tar.xz |
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
-rw-r--r-- | video/out/mac/gl_layer.swift | 4 |
1 files changed, 1 insertions, 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() |