Vulkan in Open-Source
A discussion of the new Vulkan graphics API and its impact on Open-source software
Vulkan is the new next-generation graphics API from Khronos that is meant to replace OpenGL for many high-performance graphics applications. The talk will focus on three main topics: The Vulkan API itself, the impact of of the Vulkan API on open-source software including both open-source applications and running closed-source applications on open-source operating systems, and support of Vulkan APIs in open-source drivers on Intel platforms.
The OpenGL API has been the standard for 3-D graphics on Linux and MacOS for the long as 3-D has existed on those platforms. (On Windows, the standard is usally DirectX, although OpenGL is also available.) In the last couple of years, there has been a substantial push for low-level and low-overhead API's similar to what game consoles provide. In response to thise, multiple new APIs have emerged: Mantle, DirectX 12, Metal, and now Vulkan. This talk will focus on Vulkan, as it aims to be the new cross-platform industry standard and the one that will be the most available for Open-source platforms and applications.
In the last 24 years since OpenGL was first released, a lot has changed in the world of graphics hardware and many of the concepts in OpenGL no longer map well to modern hardware and software. One such mismatch is that OpenGL uses a state machine model with a thread-local implicit context. While this wasn't a problem at the time, the prevalence of multi-threaded programming to take advantage of multi-core processors has made this a substantial pain-point when working with OpenGL. Vulkan and other next-gen APIs use a more object-oriented model where multi-threading hazards are more explicit. There are many other examples of where OpenGL no longer matches modern graphics hardware or programming paradigms. Vulkan seeks to solve a lot of these problems while also providing substantially lower CPU overhead and the latest in modern graphics features.
The Vulkan API also provides substantial opportunity to the free software community. Because there is so much industry momentum behind Vulkan, there will probably be substantial support from both Hardware and Software vendors. This means that we may see more availability of games and other high-performance graphics applications on Linux. It also means that free software can now get the benefits of more modern graphics APIs. Not only should Vulkan be a more performant API, but it should also be easier to integrate into toolkits such as GTK and Qt.