Version 2.41.5 of WebKitGTK removed support for the OpenGL API in the web process, instead requiring the use of GLES[1]. However, while the current net-libs/webkit-gtk ebuilds depend on media-libs/mesa, they do not enforce that media-libs/mesa be built with USE=gles2. This was noticed when running app-office/gnucash on a system where media-libs/mesa had been built without USE=gles2. In that case, attempting to open a report in GnuCash (which uses WebKit to render reports) simply displays a white screen and prints the message "Could not create EGL surfaceless context: EGL_BAD_ALLOC." to the console. This message originates from WebKit's Source/WebCore/platform/graphics/egl/GLContext.cpp file[2][3]. Rebuilding media-libs/mesa with USE=gles2 causes GnuCash reports to display properly with no error message. [1] https://github.com/WebKit/WebKit/commit/cfe917fec45bf72c371087ece034feee8454f1b4 [2] https://github.com/WebKit/WebKit/blob/6247bb871b437b9106c762def60044cc8ed5c3ca/Source/WebCore/platform/graphics/egl/GLContext.cpp#L380 [3] https://github.com/WebKit/WebKit/blob/6247bb871b437b9106c762def60044cc8ed5c3ca/Source/WebCore/platform/graphics/egl/GLContext.cpp#L429
Technically at least in 2.44 it only build depends on libepoxy and the rest is at runtime. Which is complicated and confusing to me in relation to closed source drivers like nvidia-drivers.