On an adjacent note, the work being done/posted by Collabora motivated me to try to get Mesa + Gallium soft pipe working with emscripten. Here is a demo of the classic glxgears: https://martinmullins.github.io/mesa-softpipe-emscripten/
The official binary Vulkan drivers for Mali IP have been fairly buggy for a while (especially comparing to Adreno), it's somewhat of a shame that it's not possible to bundle open Mesa drivers built for Android with an app due to the dynamic linker's enforcement of an "only use supported APIs" policy through namespacing.
Mali 400 cannot even support OpenGL ES 3.x, forget about Vulkan on that hardware. Mali-400 is old enough to have separate vertex and fragment shader cores.