egl: Fix context API check and be verbose.
The API of the context was not checked against EGL_RENDERABLE_TYPE when there was no attribute list. Move the check to _eglInitContext, and be verbose about common mistakes (EGL_RENDERABLE_TYPE not set, EGL_CONTEXT_CLIENT_VERSION not set, or eglBindAPI not called).
This commit is contained in:
parent
ce2cae4130
commit
5eb33596a0
|
@ -460,11 +460,14 @@ _eglMatchConfig(const _EGLConfig *conf, const _EGLConfig *criteria)
|
|||
}
|
||||
|
||||
if (!matched) {
|
||||
#ifdef DEBUG
|
||||
#ifndef DEBUG
|
||||
/* only print the common errors when DEBUG is not defined */
|
||||
if (attr != EGL_RENDERABLE_TYPE)
|
||||
break;
|
||||
#endif
|
||||
_eglLog(_EGL_DEBUG,
|
||||
"the value (0x%x) of attribute 0x%04x did not meet the criteria (0x%x)",
|
||||
val, attr, cmp);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,15 +83,6 @@ _eglParseContextAttribList(_EGLContext *ctx, const EGLint *attrib_list)
|
|||
}
|
||||
}
|
||||
|
||||
if (err == EGL_SUCCESS && ctx->Config) {
|
||||
EGLint renderable_type, api_bit;
|
||||
|
||||
renderable_type = GET_CONFIG_ATTRIB(ctx->Config, EGL_RENDERABLE_TYPE);
|
||||
api_bit = _eglGetContextAPIBit(ctx);
|
||||
if (!(renderable_type & api_bit))
|
||||
err = EGL_BAD_CONFIG;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -121,6 +112,17 @@ _eglInitContext(_EGLContext *ctx, _EGLDisplay *dpy, _EGLConfig *conf,
|
|||
ctx->ClientVersion = 1; /* the default, per EGL spec */
|
||||
|
||||
err = _eglParseContextAttribList(ctx, attrib_list);
|
||||
if (err == EGL_SUCCESS && ctx->Config) {
|
||||
EGLint renderable_type, api_bit;
|
||||
|
||||
renderable_type = GET_CONFIG_ATTRIB(ctx->Config, EGL_RENDERABLE_TYPE);
|
||||
api_bit = _eglGetContextAPIBit(ctx);
|
||||
if (!(renderable_type & api_bit)) {
|
||||
_eglLog(_EGL_DEBUG, "context api is 0x%x while config supports 0x%x",
|
||||
api_bit, renderable_type);
|
||||
err = EGL_BAD_CONFIG;
|
||||
}
|
||||
}
|
||||
if (err != EGL_SUCCESS)
|
||||
return _eglError(err, "eglCreateContext");
|
||||
|
||||
|
|
Loading…
Reference in New Issue