Both gl2.h and gl3.h are included when USE_OPENGL_ES is enabled in [1]. This breaks the build for systems that only support OpenGLES2, but not OpenGLES3. USE_OPENGL_ES should specify the version of the API and include the corresponding header only, to avoid any confusion. [1] https://github.com/WebKit/webkit/blob/master/Source/WebCore/platform/graphics/GLContext.cpp#L31 Thanks, -hyun
USE_OPENGL_ES is supposed to require only OpenGL ES 2, not OpenGL ES 3. Looks like this has been broken since r209233, bug #165283, over a year ago. I thought we had a requirement to support WebKit on devices that have only OpenGL ES 2. However, if nobody has noticed that this has been broken for over a year, maybe that's not so important anymore.
> Both gl2.h and gl3.h are included when USE_OPENGL_ES is enabled in [1]. This > breaks the build for systems that only support OpenGLES2, but not OpenGLES3. > USE_OPENGL_ES should specify the version of the API and include the > corresponding header only, to avoid any confusion. It was that way actually. USE_OPENGL_ES was USE_OPENGL_ES_2 and (for linux ports) meant we were using the GLES2 API, but it was renamed to USE_OPENGL_ES in r228590 as in apple ports it can mean GLES2 or GLES3 APIs. In any case, the <GLES3/gl3.h> include should not be necessary. They seem to include it just for the definition of GL_MAJOR_VERSION, which which seems to be only used in Extensions3DOpenGLCommon::initializeAvailableExtensions() in a platform guarded code. I'll send a temptative patch removing that include to see what exactly (if anything) fails in the wincairo bot.
Created attachment 334443 [details] Patch
Comment on attachment 334443 [details] Patch Clearing flags on attachment: 334443 Committed r228917: <https://trac.webkit.org/changeset/228917>
All reviewed patches have been landed. Closing bug.