Today is a day I’ve been waiting for for a long time: Vulkan support in Crostini is a reality. Technically, it’s been available in the default “termina” virtual machine since Chrome OS 93. The catch was that the Debian container inside the virtual machine needs an updated and experimental graphics driver (the VirtIO Venus driver). Thankfully, we can run any container we want! That includes Arch Linux. The same Linux distribution that the upcoming Steam OS 3 on the Steam Deck is based on, where tinkering with the latest packages and drivers is, relatively speaking, a breeze.
Enabling Vulkan support right now is not for the faint of heart. There are a lot of technical steps to get this working on Chrome OS today. We believe this may be available to the wider public in Chrome OS 94 along with the new Debian 11 container. We had noticed that, with Debian 11, there is now a (very slow) CPU-based “lavapipe” driver for Vulkan available by default. This is not what we are talking about today. The Venus driver provides full GPU-accelerated Vulkan graphics.
The timing of all this happens to line up nicely for the official Steam support via Borealis beta that has been rumored. The most exciting part is that we can finally get to see what the performance of Borealis will be like!
For hardware, I have been testing this on a Chromebook Pixel 2. For the software, my Chromebook actually thinks it’s a shiny new ASUS Chromebook CX9. I’ve got it updated to the latest Chrome OS 94 Canary image for the CX9. The Vulkan support will likely not work on most Chrome OS devices. It has close ties to Borealis which is only coming to a select few newer Chrome OS devices, including the CX9 which is why I picked it. More on that in a future article.
I won’t be posting the full steps on how to do this in this article. I quickly wanted to get an update out to the world about how cool and amazing this is. What does Vulkan support in Crostini really mean for us consumers? The big thing would be full support for Steam Play’s Proton. That’s the compatibility layer that allows Windows games to run on Linux. Put in an over-simplified and slightly inaccurate way, think of Proton without and with Vulkan support as the graphical difference between the original Xbox and the new Xbox Series X.
Unfortunately, my old Chromebook only supports Vulkan 1.0 whereas Proton requires Vulkan 1.2. More specifically, both DXVK and VKD3D-Proton, the translation layers for DirectX 9 through 12 to Vulkan, need the latest version of Vulkan. The VirtIO Venus driver also ignorantly reports that it has Vulkan 1.2 support when, on my Chromebook, it doesn’t. That means I couldn’t try any exciting games like Halo 3 or Skyrim. However, I can prove to you that this does work with one of the most popular and moddable games: Quake!
I was able to hop into a game instantly and start playing. Even on my low-end iGPU, I’m getting high frames in this ancient title. No surprises there but it goes to show that this VirtIO Venus driver may not be a slouch. We’re working on getting benchmarks for comparison to share and will have more details to reveal soon. Stay tuned!