On Thu, May 12, 2016 at 06:21:38PM +0100, Plamena Manolova wrote: > According to the EGL specifications eglQueryString(EGL_CLIENT_APIS) > should return a string containing a combination of "OpenGL", "OpenGL_ES" > and "OpenVG", any other values would be considered invalid. Due to this > when the API string is constructed, the version of GLES should be > disregarded and "OpenGL_ES" should be attached once instead of > "OpenGL_ES2" and "OpenGL_ES3".
Adding Matt who originally authored this... I think you misstated this. It's not invalid to have any other value. It's invalid to not have one of the 3 values, which I suppose is technically possible if you say support ES2, but not ES or GL (for example) "Returns a string describing which client rendering APIs are supported. The string contains a space-separate list of API names. The list must include at least one of OpenGL, OpenGL_ES, or OpenVG. These strings correspond respectively to values EGL_OPENGL_API, EGL_OPENGL_ES_API, and EGL_OPENVG_API of the eglBindAPI, api argument." I am concerned by this change since I genuinely have no clue how EGL clients might currently be depending on this, and as such could I request that you not change the existing behavior (spit out when ES2 or ES3). At the bottom I put an untested version of what i would have done. This fixes a test apparently, in the future, could you please mention that in the commit message? > > Signed-off-by: Plamena Manolova <plamena.manol...@intel.com> > --- > src/egl/main/eglapi.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c > index eb612c0..be2c90f 100644 > --- a/src/egl/main/eglapi.c > +++ b/src/egl/main/eglapi.c > @@ -431,14 +431,11 @@ _eglCreateAPIsString(_EGLDisplay *dpy) > if (dpy->ClientAPIs & EGL_OPENGL_BIT) > strcat(dpy->ClientAPIsString, "OpenGL "); > > - if (dpy->ClientAPIs & EGL_OPENGL_ES_BIT) > + if (dpy->ClientAPIs & EGL_OPENGL_ES_BIT || > + dpy->ClientAPIs & EGL_OPENGL_ES2_BIT || > + dpy->ClientAPIs & EGL_OPENGL_ES3_BIT_KHR) { > strcat(dpy->ClientAPIsString, "OpenGL_ES "); > - > - if (dpy->ClientAPIs & EGL_OPENGL_ES2_BIT) > - strcat(dpy->ClientAPIsString, "OpenGL_ES2 "); > - > - if (dpy->ClientAPIs & EGL_OPENGL_ES3_BIT_KHR) > - strcat(dpy->ClientAPIsString, "OpenGL_ES3 "); > + } > > if (dpy->ClientAPIs & EGL_OPENVG_BIT) > strcat(dpy->ClientAPIsString, "OpenVG "); diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index eb612c0..8101840 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -431,8 +431,12 @@ _eglCreateAPIsString(_EGLDisplay *dpy) if (dpy->ClientAPIs & EGL_OPENGL_BIT) strcat(dpy->ClientAPIsString, "OpenGL "); + /* If any ES is supported, make sure we get that */ if (dpy->ClientAPIs & EGL_OPENGL_ES_BIT) strcat(dpy->ClientAPIsString, "OpenGL_ES "); + else if (dpy->ClientAPIs & EGL_OPENGL_ES2_BIT || + dpy->ClientAPIs & EGL_OPENGL_ES3_BIT_KHR) + strcat(dpy->ClientAPIsString, "OpenGL_ES "); if (dpy->ClientAPIs & EGL_OPENGL_ES2_BIT) strcat(dpy->ClientAPIsString, "OpenGL_ES2 "); _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev