summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-06-10 20:31:28 +0200
committerwm4 <wm4@nowhere>2016-06-10 20:31:28 +0200
commitbea2e39721e18eddcfd7c501f8e40fff0ecdfda0 (patch)
tree016b9eb8e0acd765fb2f4b42f65b322de4644ff6 /video
parent2b1656b1aced3d81b31c83e8c310a630ca5d5d1c (diff)
downloadmpv-bea2e39721e18eddcfd7c501f8e40fff0ecdfda0.tar.bz2
mpv-bea2e39721e18eddcfd7c501f8e40fff0ecdfda0.tar.xz
vo_opengl: request core profile on X11/EGL too
Avoids that some OpenGL implementation will pin it to 3.0.
Diffstat (limited to 'video')
-rw-r--r--video/out/opengl/context_x11egl.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/video/out/opengl/context_x11egl.c b/video/out/opengl/context_x11egl.c
index e6069b7839..14ca3f9e25 100644
--- a/video/out/opengl/context_x11egl.c
+++ b/video/out/opengl/context_x11egl.c
@@ -21,6 +21,11 @@
#include <EGL/egl.h>
#include <EGL/eglext.h>
+#ifndef EGL_VERSION_1_5
+#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
+#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
+#endif
+
#include "common/common.h"
#include "video/out/x11_common.h"
#include "context.h"
@@ -79,9 +84,15 @@ static bool create_context_egl(MPGLContext *ctx, EGLConfig config,
EGLint context_attributes[] = {
// aka EGL_CONTEXT_MAJOR_VERSION_KHR
EGL_CONTEXT_CLIENT_VERSION, es ? 2 : 3,
+ EGL_NONE, EGL_NONE,
EGL_NONE
};
+ if (!es) {
+ context_attributes[2] = EGL_CONTEXT_OPENGL_PROFILE_MASK;
+ context_attributes[3] = EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT;
+ }
+
p->egl_surface = eglCreateWindowSurface(p->egl_display, config, window, NULL);
if (p->egl_surface == EGL_NO_SURFACE) {