Public bug reported: I use a headless browser with Selenium to automate access to a WebGL- heavy site. The current Snap package of Chromium (Chromium 97.0.4692.99 snap) running on Ubuntu 20.04.3 LTS cannot use WebGL in headless mode.
I was able to use the same script with the Snap package previously, but unfortunately a lot of time has elapsed since I last tried it, so I'm not sure exactly when this issue first appeared. I believe that the implementation of headless WebGL has changed recently, so perhaps this is related. I can can easily reproduce this issue in the terminal by attempting to open a WebGL test page in a headless browser. This outputs multiple errors: $ chromium --headless "https://webglreport.com/?v=2" [0128/113614.313931:ERROR:angle_platform_impl.cc(44)] Display.cpp:894 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an objec t could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1068. [0128/113614.314052:ERROR:gl_surface_egl.cc(783)] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1068. [0128/113614.314112:ERROR:gl_surface_egl.cc(1391)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED [0128/113614.314154:ERROR:gl_ozone_egl.cc(20)] GLSurfaceEGL::InitializeOneOff failed. [0128/113614.315496:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization [0128/113614.324786:ERROR:angle_platform_impl.cc(44)] Display.cpp:894 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an objec t could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1068. [0128/113614.324890:ERROR:gl_surface_egl.cc(783)] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1068. [0128/113614.324929:ERROR:gl_surface_egl.cc(1391)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED [0128/113614.324978:ERROR:gl_ozone_egl.cc(20)] GLSurfaceEGL::InitializeOneOff failed. [0128/113614.325972:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization [0128/113614.333428:ERROR:angle_platform_impl.cc(44)] Display.cpp:894 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-3): Initialization of an objec t could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1068. [0128/113614.333559:ERROR:gl_surface_egl.cc(783)] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-3): Initialization of an object could not be completed for implementation-specific reasons, in ../../third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp, initialize:1068. [0128/113614.333617:ERROR:gl_surface_egl.cc(1391)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED [0128/113614.333657:ERROR:gl_ozone_egl.cc(20)] GLSurfaceEGL::InitializeOneOff failed. [0128/113614.334806:ERROR:viz_main_impl.cc(161)] Exiting GPU process due to errors during initialization [0128/113614.339446:ERROR:gpu_init.cc(457)] Passthrough is not supported, GL is disabled, ANGLE is When I ran a script to use selenium to save the output of this webpage, it reported that WebGL was disabled. (Using the screenshot option, which I was previously unaware of, should provide the same result.) I have confirmed that the identical version of Google Chrome (installed from the .deb package on Google's website) works, and so does a slightly older version of Chromium from a .deb package installed from a PPA. The executables from these packages do not produce the errors above, and WebGL works correctly in headless mode. While searching for these error messages I found various bug reports for similar WebGL-related problems. I noticed that some of the suggested solutions referred to library files which are installed by the working packages but not by the Snap package (for example libvk_swiftshader.so). ** Affects: chromium-browser (Ubuntu) Importance: Undecided Status: New ** Tags: headless webgl -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1959416 Title: WebGL broken in headless mode To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1959416/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs