chromium: missing swiftshader, breaking graphics on headless
The chromium package lacks the swiftshader GL .so libraries, so the browser completely lacks webgl when running in headless mode or on a machine without a GPU.
Here is proof that the .so files exist on Google Chrome as installed on Arch Linux. Note that their chromium package lacks them too, which is why I filed https://bugs.archlinux.org/index.php?do=details&task_id=64307.
- Chromium 78.0.3904.70 Arch Linux
- Google Chrome 78.0.3904.70
$ pacman -Ql google-chrome | grep swift
google-chrome /opt/google/chrome/swiftshader/
google-chrome /opt/google/chrome/swiftshader/libEGL.so
google-chrome /opt/google/chrome/swiftshader/libGLESv2.so
$ pacman -Ql chromium | grep swift
To prove that swiftshader works on google-chrome but not on your chromium, do:
google-chrome-stable --headless --screenshot https://www.khronos.org/registry/webgl/sdk/demos/google/san-angeles/
xdg-open screenshot.png
You'll see a screenshot of a 3D webgl object, mostly dark. If you do the same with chromium:
chromium-browser --headless --screenshot https://www.khronos.org/registry/webgl/sdk/demos/google/san-angeles/
xdg-open screenshot.png
You'll see an error screenshot, showing "It doesn't appear your computer can support WebGL".