Vulkan is too low level, but AFAICS it is not something one use directly, instead a library which uses it as a back-end should be used.
Vulkan is too low level, but AFAICS it is not something one use directly, instead a library which uses it as a back-end should be used.
For the RPi4 specifically:
That GPU has hardware limitations that make it unable of OpenGL 3.0. However, it supports GLES 3.2.
If you want GL desktop minus the unsupported features by the hardware, you can set MESA_GL_VERSION_OVERRIDE=3.3 for example. That will however never be compliant.
Vulkan has many extensions to allow it to work on hardware which doesn’t support the full feature set. (by not implementing them, instead of having only version numbers)
I'm not quite completely clueless, but I have the feeling that clarification on this point will nudge me in the right direction to understanding these things better.
The OpenGL driver also doesn't have to emit 1 logical hardware operation for each OpenGL API call.
Unconditionally exposing the latest GL version by emulating missing GPU functionality sounds like a recipe for applications to fall off performance cliffs.