Helping Valve to Power Up Steam Devices

Last week, Valve shocked the computer gaming world by simultaneously unveiling three new gaming devices: Steam Frame, a wireless VR headset; A gaming console in the vein of the Steam Machine, PlayStation or Xbox; and the Steam Controller, a handheld game controller. Successors to the highly successful Valve Index and Steam Deck, these tools are scheduled to be released in the coming year.

Igalia has long worked with Valve on SteamOS, which will power Machine and Frame, and is excited to contribute to these new tools, especially Frame. Frame, unlike Machine or Deck, which have x86 CPUs, runs on ARM-based CPUs.

Under normal circumstances, this would mean that only games compiled to run on ARM chips could be played on the frame. To overcome this limitation, a translation layer called FEX is used to run applications compiled for x86 chips (which are used in almost all gaming PCs) on ARM chips by translating x86 machine code into ARM64 machine code.

Paulo Matos, engineer on Igalia’s compilers team, said, “If you love video games like I do, working on FEX with Valve is a dream come true.” Still, the challenges can be daunting, as it often requires manual QA rather than automated testing to make sure the translation is working. “You have to start a game, sometimes an error appears in the colors or sound, or how the game behaves when you break the door in another level. Just debugging it can take a while,” Matos said. “For the optimization work that I did at the beginning of last year, I used a game called psychiatrist To test it. I must have played the first 3 to 4 minutes of the game several times for debugging purposes. Looking at my history, Steam tells me I played it for 29 hours, but it was always the first few minutes, nothing more.

Beyond the CPU, the Qualcomm Adreno 750 GPU used in the Steam Frame introduced its own set of challenges for running desktop games and other complex workloads on these devices. Doing this requires a rock-solid Vulkan driver that can ensure accuracy while eliminating major rendering bugs while maintaining high performance. This is a very difficult combination to achieve, and yet that’s exactly what we’ve done for Valve with Mesa3D Turnip, a FOSS Vulkan driver for Qualcomm Adreno GPUs.


valve monster hunter world misrendering
valve monster hunter world correct rendering
A sliding comparison of the main menu in the game “Monster Hunter World” before and after fixing the rendering error

Before we started our work, important optimizations like LRZ (which you can learn more about from our blog post here) or AutoTuner (and its subsequent overhaul) did not exist. Worse, there was no support at all for Adreno 700-series GPUs, which we eventually added with support for tile rendering.

“We implemented several Vulkan extensions and reviewed several others,” said Danilo Piliyayev, an engineer on the graphics team. “Over the years, we ensured that D3D11, D3D12, and OpenGL games rendered correctly through DXVK, vkd3d-proton, and Zink, checking for many rendering issues along the way. We achieved higher accuracy than the proprietary driver and, in many cases, Mesa3D is even faster.”

We’ve worked with many amazing people at Valve, Google, and other companies to iterate on the Vulkan driver over the years to introduce new features, bug fixes, performance improvements, as well as debugging workflows. Some of them later decided to join Igalia, like our colleague and graphics team developer Emma Anholt. “I’ve been working at Mesa for 22 years, and it’s great to now have a home where I can do the work I do on hardware projects, where the organization prioritizes the work experience of its developers and empowers them within the organization.”

Valve’s support in all this also cannot be underestimated. Their choice to build their devices using open software like Mesa3D Turnip and FEX means they are committed to working on and supporting the improvements and optimizations that become available to anyone using similar open-source projects.

Dhruv Mark Collins, another graphics team engineer who worked on Turnip, said, “We’ve received a lot of positive feedback about significantly improved performance and fewer rendering glitches from hobbyists who use these projects to run PC games on Android phones as a result of our work.” “And it goes both ways! We’ve caught some nasty bugs because of that extensive testing, which really highlights why the FOSS model is beneficial to everyone involved.”

valve turnip performance improvement trend
Automatically measured performance improvements in Turnip from June 2025

An interesting area of ​​graphics driver development is all the compiler work involved. Vulkan drivers like Mesa3D Turnip are needed to process shader programs sent to the GPU by applications, and these programs control how the pixels in our screen are shaded or colored with geometry, textures, and lighting while playing games. Job Norman, an engineer on our compilers team, made significant contributions to the compiler used by Mesa3D Turnip. He also contributed to the Mesa3D NIR shader compiler, a common part used by all Mesa drivers, including RADV (most popularly used on Steam decks) or V3DV (used on Raspberry Pi boards).

As is typical for Igalia, while we focused on delivering results for our clients, we also made our work as widely useful as possible. For example: “Although our target throughout our work has been the Snapdragon 8 Gen 3 in the frame, most of our work spans years of Snapdragon hardware, and we test it to ensure it remains Vulkan compliant,” Anholt said. This means that Igalia’s work for Frame has consistently exceeded Vulkan’s Conformity Test Suite (CTS) with over 2.8 million tests, some of which Igalia has been involved in creating.

Our own Vulcan CTS expert Ricardo Garcia says:

Igalia and other Valve contractors actively participate in several areas inside the Khronos Group, the organization that maintains and develops graphics API standards such as Vulkan. We contribute specification improvements and feedback, and we are regularly involved in the development of many new Vulkan extensions. Some of these eventually become important to game developers, such as mesh shading. Others ensure smooth and efficient translation of other APIs like DirectX to Vulkan, or help take advantage of hardware features to ensure applications perform well across multiple platforms, both mobile like Steam Frame or desktop like Steam Machine. Having Vulkan CTS coverage for these new extensions is an important step in the release process, helping to ensure that the specification is clear and drivers implement it correctly, and Igalia engineers have contributed millions of source code lines and tests since our collaboration with Valve began.

The biggest challenge we faced in moving forward with development was to ensure that we didn’t introduce regressions, small innocent-seeming changes that could completely break the rendering on the game in a way that even CTS couldn’t catch. What automated testing could be done was often quite limited, but Igalians found ways to overcome the obstacles. “I ran a continuous integration test to automatically run single-frame captures of a wide range of games spanning the D3D11, D3D9, D3D8, Vulkan, and OpenGL APIs,” Piliayev said of the development involved in his recent XDC 2025 talk, “making sure we didn’t have rendering or performance regressions.”

Looking ahead, Igalia’s work for Valve will continue to benefit the broader Linux gaming ecosystem. For example, as a battery-powered VR headset, Steam Frame needs to deliver high performance within a limited power budget. One way to address this is to create a more efficient task scheduler, which Changwoo Min of Igalia’s kernel team is working on. As he says, “I’m developing an optimized CPU scheduler for gaming, named LAVD: Latency-Criticality Aware Virtual Deadline Scheduler.”

In general terms, a scheduler automatically identifies important tasks and dynamically extends their deadlines to improve responsiveness. Most task schedulers do not take energy consumption into account, but Rust-based LAVD is different. “LAVD makes scheduling decisions considering each chip’s performance versus energy trade-offs. It instantly measures and predicts the required computing power, then selects the best set of CPUs to meet that demand with minimal energy consumption,” Min said.

One of our other kernel engineers, Melissa Wayne, is working on AMD kernel display drivers to maintain good color management and HDR support for SteamOS across the AMD hardware families for both Steam Deck and Steam Machine. This is especially important with the newer display hardware in the Steam Machine, which has some notable differences in color capabilities, aiming for more powerful and efficient color management that requires driver work.

…And thats a wrap! We will continue our efforts towards improving future versions of SteamOS, and with a strong partner like Valve, we look forward to doing even more work to make Linux gaming even better. If any of this sounds interesting and you’d like to work with us to tackle a pressing problem you have, please get in touch!



Leave a Comment