Valve’s tweaking Linux drivers to squeeze more battery life out of the Steam Deck on SteamOS 3.0
Valve engineers have been beavering away to try and improve the Steam Deck‘s battery life ahead of its impending launch on February 25. In order to achieve this, its Linux devs have been making changes to the open-source Radeon Vulkan (RADV) driver, which the Steam Deck uses to control variable rate shading.
Currently under review, the driver changes could help the Steam Deck battery last longer than first anticipated, and even give the much-anticipated, handheld gaming device a handy performance boost in supported games.
Variable Rate Shading (VRS) is a wonderful thing when implemented properly. It gives developers intricate control over how intensely the shading is implemented for each portion of the screen, or frame region. That means it doesn’t need to put so many GPU resources into rendering parts of the scene that don’t change, or that the user isn’t really paying attention to.
It’s easy to break down when you look at something like a racing game. Game devs will have it so the car and the road ahead use a higher shading rate than that of the road behind, or anything off at the edge of the screen. Basically, for anything you’re not going to be staring intently at, the devs will try to save processing power by making it less of a priority for the graphics card’s precious resources.
The upshot of this is that you could get higher frame rates because the GPU isn’t being so hammered by a particular game, or if the frame rates are locked you could get lower power use, and therefore longer battery life in a handheld like the Steam Deck.
Phoronix highlights the words and work of Valve’s Samuel Pitoiset, who talks a little of the changes being made to the RADV Vulkan driver. “Previously the VRS rates were hardcoded in the vertex shaders,” he explains. “It’s now possible to force per-vertex VRS dynamically.”
This forced behavior gives developers greater, more accurate control over exactly how much of the screen is shaded at the desired rate. Subsequently, the Steam Deck could easily see a boost in performance and/or battery life when the system is unplugged. The whole purpose of the changes, Pitoiset points out, was to improve the battery life of the handheld device.
Many have aired concerns that the play-time might be on the short side, especially after Valve developer Pierre-Loup Griffais told IGN it could last “about 2-8 hours, depending on what you’re doing. You can play Portal 2 for four hours on this thing. If you limit it to 30 fps, you’re going to be playing for 5-6 hours.”
The Tuesday patch rolled out dynamic VRS rate control, as well as adding a configuration file option for devs in which the VRS can be rewritten to control the shading rate on demand (perhaps depending on whether its plugged in or not).
Right now the changes are under review, with the deadline being the Mesa 22.0 code branching and feature freeze that’s already been delayed once. The implication is that, with these changes, you’ll likely see better battery life on the SteamOS 3.0 operating system the Steam Deck ships with compared to the brave folk who decide to drop Windows onto their new handheld gaming PC instead.
Hopefully the changes can be finalised by then, so all this can come to fruition before the imminent Steam Deck release date of February 25.