In Rust land, the Rend3/WGPU stack is able to target Vulkan and Metal, pretty much invisibly to the application. Also Android and WebGL, although not as seamlessly, because the threading model is different in those worlds.
It's supposed to also support DirectX on Windows, but since Windows supports Vulkan, why bother? I have the same code running on Windows and Linux with no conditional compilation in my code.
The Bevy game engine reportedly runs happily on all those platforms.
In C++ land, Godot has similar portability. So do UE5 and Unity.
If it wasn't for Apple shooting themselves in the foot with Metal, we'd all be on Vulkan now, without these portability layers.