summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorder richter <der.richter@gmx.de>2024-02-28 16:19:30 +0100
committerder richter <der.richter@gmx.de>2024-02-29 16:40:52 +0100
commit15c48f3dc122be4b29701355cc48eb63cf8e3029 (patch)
tree9aa0b3d903fe9227b5ae681a6a224e47351e77bf
parent7758f6f50e103ffecea7f02cf8cc148790b86bb6 (diff)
downloadmpv-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.swift4
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()