diff options
author | Dave Airlie <airlied@redhat.com> | 2016-01-19 08:06:25 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-01-21 06:50:02 +1000 |
commit | 11a68b41c8b29b8ed1a5ee6317460d76c3f0063b (patch) | |
tree | 06a98cb15f26e93f6eaa802b3fe05ed13a24dd20 | |
parent | 4b6a3289ea40436d9f6773a99d4baf762af28fe9 (diff) |
xwayland: add support for use core profile for glamor. (v2)glamor-core-profile
This adds support to Xwayland to try and use OpenGL core
profile for glamor first.
v1.1: use version defines.
v2: let glamor work out core profile itself.
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | hw/xwayland/xwayland-glamor.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c index c357217fd..7f6fb9ae8 100644 --- a/hw/xwayland/xwayland-glamor.c +++ b/hw/xwayland/xwayland-glamor.c @@ -270,6 +270,15 @@ xwl_drm_init_egl(struct xwl_screen *xwl_screen) { EGLint major, minor; const char *version; + static const EGLint config_attribs_core[] = { + EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, + EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR, + EGL_CONTEXT_MAJOR_VERSION_KHR, + GLAMOR_GL_CORE_VER_MAJOR, + EGL_CONTEXT_MINOR_VERSION_KHR, + GLAMOR_GL_CORE_VER_MINOR, + EGL_NONE + }; if (xwl_screen->egl_display) return; @@ -298,7 +307,11 @@ xwl_drm_init_egl(struct xwl_screen *xwl_screen) ErrorF("glamor: EGL version %s:\n", version); xwl_screen->egl_context = eglCreateContext(xwl_screen->egl_display, - NULL, EGL_NO_CONTEXT, NULL); + NULL, EGL_NO_CONTEXT, config_attribs_core); + if (!xwl_screen->egl_context) + xwl_screen->egl_context = eglCreateContext(xwl_screen->egl_display, + NULL, EGL_NO_CONTEXT, NULL); + if (xwl_screen->egl_context == EGL_NO_CONTEXT) { ErrorF("Failed to create EGL context\n"); return; |