Indeed, that is the main issue that Khronos API advocates always miss.
OpenGL, and now Vulkan, are pretty bare bones, and just a tiny part of what means to have a proper game engine, so basically everyone that bets on their "portability" ends up writing a middleware engine anyway.
Because not only one has to deal with everything a game engine requires, it also needs to handle extensions, possible code paths to work around driver bugs, and to handle the various levels of support for those extensions.
I have done my degree thesis in OpenGL, back when writing a particles engine was still big enough to be worthy of a thesis, instead of a checkbox on game engine middleware, so I am beyond that now.
However it kind of irritates me to see it is still the rite of passage for what differentiates boys from men when dealing with Khronos APIs.
OpenGL, and now Vulkan, are pretty bare bones, and just a tiny part of what means to have a proper game engine, so basically everyone that bets on their "portability" ends up writing a middleware engine anyway.
Because not only one has to deal with everything a game engine requires, it also needs to handle extensions, possible code paths to work around driver bugs, and to handle the various levels of support for those extensions.
I have done my degree thesis in OpenGL, back when writing a particles engine was still big enough to be worthy of a thesis, instead of a checkbox on game engine middleware, so I am beyond that now.
However it kind of irritates me to see it is still the rite of passage for what differentiates boys from men when dealing with Khronos APIs.