ChromeOS currently uses the VirGL framework to enable accelerated graphics via OpenGL for applications such as Steam games, Android apps and Linux apps , all while maintaining the security advantages of running these apps in a virtual machine (VM). However, OpenGL has been around for 30 years and while it has clearly stood the test of time, it has some design quirks like statefulness and implicit fencing that can get in the way of efficiency. That’s where Vulkan comes in. We recently launched Venus to enable the graphics performance improvements of Vulkan for Steam and Android games, and other applications in ChromeOS.
Vulkan is a low-overhead graphics API designed for modern CPU and GPU architectures. Because the Vulkan API is lighter weight than OpenGL and doesn’t need complicated state tracking, you can achieve better performance with it. This also makes it more suitable for virtualization of graphics: the virtualization layer in the guest OS (VM) knows exactly what state to send to the host OS (ChromeOS).
ChromeOS games benefit from Vulkan the most, so we brought Vulkan into Borealis (Steam VM) and ARCVM (Android VM) . For Borealis, an increasing number of Linux Steam games already target Vulkan, and supporting Vulkan lets us gain access to a larger library of games via Steam Play . And because new Android devices support hardware-accelerated Vulkan, more apps and game engines are using the API to achieve better performance.