summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorJames Ross-Gowan <rossy@jrg.systems>2017-09-17 13:44:31 +1000
committerNiklas Haas <git@haasn.xyz>2017-09-21 15:01:22 +0200
commitcee764849e4fe22b00fb3f31838a63906e2e0d54 (patch)
treec51e156cf51d81d5e0c1bb27d0738af844775af4 /video
parent75c0c06640da677477a0cfd08deee1d4e23a4361 (diff)
downloadmpv-cee764849e4fe22b00fb3f31838a63906e2e0d54.tar.bz2
mpv-cee764849e4fe22b00fb3f31838a63906e2e0d54.tar.xz
cocoa: re-enable double buffering
This causes a performance regression on 10.11 and newer, but the single buffered method was broken and could cause partially rendered frames to be presented to the screen. This reverts 9f30cd8292b4b7bfe5d7db29fe31a07cc76dec2c and e543853a7ff0ab4dcd4ccaf06c448013fd41c03a.
Diffstat (limited to 'video')
-rw-r--r--video/out/cocoa_common.m2
-rw-r--r--video/out/opengl/context_cocoa.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m
index abead0fb53..8f09c25b91 100644
--- a/video/out/cocoa_common.m
+++ b/video/out/cocoa_common.m
@@ -811,6 +811,8 @@ void vo_cocoa_swap_buffers(struct vo *vo)
}
pthread_mutex_unlock(&s->sync_lock);
+ CGLFlushDrawable(s->cgl_ctx);
+
pthread_mutex_lock(&s->lock);
s->frame_w = vo->dwidth;
s->frame_h = vo->dheight;
diff --git a/video/out/opengl/context_cocoa.c b/video/out/opengl/context_cocoa.c
index 585c49f9a9..6d3d8282e1 100644
--- a/video/out/opengl/context_cocoa.c
+++ b/video/out/opengl/context_cocoa.c
@@ -72,6 +72,7 @@ static CGLError test_gl_version(struct ra_ctx *ctx, CGLOpenGLProfile ver)
// rejected attribute to preserve the fallback code
kCGLPFAOpenGLProfile,
(CGLPixelFormatAttribute) ver,
+ kCGLPFADoubleBuffer,
kCGLPFAAccelerated,
kCGLPFAAllowOfflineRenderers,
// keep this one last to apply the cocoa-force-dedicated-gpu option
@@ -155,9 +156,7 @@ static void cocoa_uninit(struct ra_ctx *ctx)
static void cocoa_swap_buffers(struct ra_ctx *ctx)
{
- GL *gl = &p->gl;
vo_cocoa_swap_buffers(ctx->vo);
- gl->Flush();
}
static bool cocoa_init(struct ra_ctx *ctx)