On 05/17/2016 09:59 AM, Ben Widawsky wrote: > 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.
I think this might be right. Outside of Mesa sources, I can't find any mention of OpenGL_ES2 or OpenGL_ES3 strings anywhere on the Internet. At least VLC (http://www.videolan.org/developers/vlc/modules/video_output/egl.c) uses OpenGL_ES for both OpenGL ES 1.x and 2.x. > 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 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev