On 12 August 2015 at 18:53, Matt Turner <matts...@gmail.com> wrote: > On Wed, Aug 12, 2015 at 8:36 AM, Frank Binns <frank.bi...@imgtec.com> wrote: >> The EGL 1.4 spec states for eglCreateContext: >> >> "attribute EGL_CONTEXT_CLIENT_VERSION is only valid when the current >> rendering API is EGL_OPENGL_ES_API" >> >> Additionally, if the EGL_KHR_create_context EGL extension is supported >> (this is mandatory in EGL 1.5) then the EGL_CONTEXT_MAJOR_VERSION_KHR, >> which is an alias for EGL_CONTEXT_CLIENT_VERSION, and >> EGL_CONTEXT_MINOR_VERSION_KHR attributes are also accepted by >> eglCreateContext with the extension spec stating: >> >> "The values for attributes EGL_CONTEXT_MAJOR_VERSION_KHR and >> EGL_CONTEXT_MINOR_VERSION_KHR specify the requested client API >> version. They are only meaningful for OpenGL and OpenGL ES >> contexts, and specifying them for other types of contexts will >> generate an error." >> >> Add the necessary checks against the extension and rendering APIs when >> validating these attributes as part of eglCreateContext. >> >> Signed-off-by: Frank Binns <frank.bi...@imgtec.com> >> --- >> src/egl/main/eglcontext.c | 30 +++++++++++++++++++++++++++++- >> 1 file changed, 29 insertions(+), 1 deletion(-) >> >> diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c >> index e767f4b..01781a9 100644 >> --- a/src/egl/main/eglcontext.c >> +++ b/src/egl/main/eglcontext.c >> @@ -101,11 +101,39 @@ _eglParseContextAttribList(_EGLContext *ctx, >> _EGLDisplay *dpy, >> >> switch (attr) { >> case EGL_CONTEXT_CLIENT_VERSION: >> + /* The EGL 1.4 spec says: > > I'd put a new line here. > >> + * "attribute EGL_CONTEXT_CLIENT_VERSION is only valid when the >> + * current rendering API is EGL_OPENGL_ES_API" >> + * >> + * The EGL_KHR_create_context spec says: > > here > >> + * "EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 >> + * (this token is an alias for EGL_CONTEXT_CLIENT_VERSION)" >> + * >> + * "The values for attributes EGL_CONTEXT_MAJOR_VERSION_KHR and >> + * EGL_CONTEXT_MINOR_VERSION_KHR specify the requested client >> API >> + * version. They are only meaningful for OpenGL and OpenGL ES >> + * contexts, and specifying them for other types of contexts >> will >> + * generate an error." >> + */ >> + if ((api != EGL_OPENGL_ES_API && >> + (!dpy->Extensions.KHR_create_context || api != >> EGL_OPENGL_API))) { >> + err = EGL_BAD_ATTRIBUTE; >> + break; >> + } >> + >> ctx->ClientMajorVersion = val; >> break; >> >> case EGL_CONTEXT_MINOR_VERSION_KHR: >> - if (!dpy->Extensions.KHR_create_context) { >> + /* The EGL_KHR_create_context spec says: > > and here. > >> + * "The values for attributes EGL_CONTEXT_MAJOR_VERSION_KHR and >> + * EGL_CONTEXT_MINOR_VERSION_KHR specify the requested client >> API >> + * version. They are only meaningful for OpenGL and OpenGL ES >> + * contexts, and specifying them for other types of contexts >> will >> + * generate an error." >> + */ >> + if (!dpy->Extensions.KHR_create_context || >> + (api != EGL_OPENGL_ES_API && api != EGL_OPENGL_API)) { >> err = EGL_BAD_ATTRIBUTE; >> break; >> } >> -- > > But I can do that myself before pushing. > > Reviewed-by: Matt Turner <matts...@gmail.com> I've addressed the new line comments and pushed all this (and earlier) set to master.
Thanks Frank ! -Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev