glamor: add core profile support to EGL glamor. (v2)

v1.1: use version defines.
v2: let glamor work it out itself

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Dave Airlie 2016-01-19 07:59:59 +10:00 committed by Eric Anholt
parent 98c3504dcf
commit 79c3925532

View File

@ -738,6 +738,15 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
#endif #endif
EGL_NONE EGL_NONE
}; };
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
};
glamor_identify(0); glamor_identify(0);
glamor_egl = calloc(sizeof(*glamor_egl), 1); glamor_egl = calloc(sizeof(*glamor_egl), 1);
@ -798,12 +807,21 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
KHR_surfaceless_opengl); KHR_surfaceless_opengl);
#endif #endif
#ifndef GLAMOR_GLES2
glamor_egl->context = eglCreateContext(glamor_egl->display, glamor_egl->context = eglCreateContext(glamor_egl->display,
NULL, EGL_NO_CONTEXT, NULL, EGL_NO_CONTEXT,
config_attribs); config_attribs_core);
if (glamor_egl->context == EGL_NO_CONTEXT) { #else
xf86DrvMsg(scrn->scrnIndex, X_ERROR, "Failed to create EGL context\n"); glamor_egl->context = NULL;
goto error; #endif
if (!glamor_egl->context) {
glamor_egl->context = eglCreateContext(glamor_egl->display,
NULL, EGL_NO_CONTEXT,
config_attribs);
if (glamor_egl->context == EGL_NO_CONTEXT) {
xf86DrvMsg(scrn->scrnIndex, X_ERROR, "Failed to create EGL context\n");
goto error;
}
} }
if (!eglMakeCurrent(glamor_egl->display, if (!eglMakeCurrent(glamor_egl->display,