summaryrefslogtreecommitdiff
path: root/src/egl/main
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2016-09-09 12:25:33 -0400
committerAdam Jackson <ajax@redhat.com>2016-09-12 11:28:38 -0400
commitcc45a5c30872e2070aae6a79dbe0e2bcf7404917 (patch)
treedeee3fae4a2f6838dd79ed79c7f1683724602487 /src/egl/main
parente5009b7c2638e1fe10443ae2efafaa3a4e7f19c7 (diff)
egl: QueryContext on a configless context returns zero
MESA_configless_context does not specify the interaction with QueryContext at all, and the code to generate an error in this case predates the Mesa extension. Since EGL_NO_CONFIG_{KHR,MESA} are numerically identical there's no way to distinguish which one the application asked for, so use the KHR behaviour. Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'src/egl/main')
-rw-r--r--src/egl/main/eglcontext.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c
index 58740c31f9f..7eac79ac952 100644
--- a/src/egl/main/eglcontext.c
+++ b/src/egl/main/eglcontext.c
@@ -538,9 +538,14 @@ _eglQueryContext(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *c,
switch (attribute) {
case EGL_CONFIG_ID:
- if (!c->Config)
- return _eglError(EGL_BAD_ATTRIBUTE, "eglQueryContext");
- *value = c->Config->ConfigID;
+ /*
+ * From EGL_KHR_no_config_context:
+ *
+ * "Querying EGL_CONFIG_ID returns the ID of the EGLConfig with
+ * respect to which the context was created, or zero if created
+ * without respect to an EGLConfig."
+ */
+ *value = c->Config ? c->Config->ConfigID : 0;
break;
case EGL_CONTEXT_CLIENT_VERSION:
*value = c->ClientMajorVersion;