Bug 255847

Summary: [WPE][GTK] ExtensionsGLOpenGLES.cpp uses GLES3 symbols unconditionally in 2.38.x
Product: WebKit Reporter: Adrian Perez <aperez>
Component: Tools / TestsAssignee: Adrian Perez <aperez>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply, clopez, mcatanzaro, psaavedra
Priority: P2    
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=255846

Description Adrian Perez 2023-04-23 13:25:53 PDT
File Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.cpp uses
OpenGL ES 3 symbols glVertexAttribDivisor(), glDrawArraysInstanced(), and
glDrawElementsInstanced(); and the GL_MAJOR_VERSION definition unconditionally
without guarding the usage with HAVE(OPENGL_ES_3).

This results in build failures with OpenGL ES driver headers which are
strictly defining only ES2 symbols, and likely has been working most of the
time because many drivers which also support ES3 (or the particular symbols
used) included them when picking <GLES2/gl2.h> and/or <GLES/gl2ext.h>.

One case in which build failures happen is the Mali driver provided by
Buildroot's sunxi-mali-utgard package patches to allow using the Wayland
variant with the following patch:

  https://o.perezdecastro.org/buildroot-sunxi-mali-utgard-wayland.diff

Note that bug #255846 also needs solving to successfully compile WebKitGTK
with the aforementioned Mali driver.
Comment 1 Adrian Perez 2023-04-23 14:01:15 PDT
Pull request: https://github.com/WebKit/WebKit/pull/13084
Comment 2 Adrian Perez 2023-11-14 00:06:23 PST
Closing, the patch landed in the release branch long ago =)