Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Valve has a rather long document on the design of their runtime that goes into a hell of a lot of detail. The short answer is: graphics. It has to pass the host's graphics drivers through to the runtime, and a graphics driver built as part of a distro today may very well not run against the potentially ancient glibc living in the Steam runtime.
Every program that needs Vulkan does indeed link against and call something with a well-known, long-time stable ABI. This is normally Vulkan-Loader, which provides libvulkan. For OpenGL, libglvnd is a nearly equivalent library that fulfills largely the same function and provides libGL/libGLES/etc.
It's... complicated. As an app/game developer, you just use libvulkan/libGL/blabla. You shouldn't really have to care about the drivers beyond that. The Flatpak & Freedesktop SDK crew are responsible for making sure that a suitable, updated GPU driver lives inside the Flatpak alongside your app. As the user pulls in updates to the base platform, they'll get newer drivers which'll also apply to your game. That said, the SDK has a limited lifecycle of around 2 years. It's my understanding that there are plans to extend the lifecycle for Mesa and the like at some point, but I can't find any formally stated policy other than "as long as possible". Due to the speed at which Mesa has been developed in the past few years, that hasn't been very long.