Valve Working On Radeon Dynamic VRS For The Steam Deck To Increase Power Savings
Vulkan has the VK_KHR_fragment_shading_rate extension for being able to control the shading rate depending upon the frame region being shaded. The shading at a lower resolution for less important areas of the screen can help with increasing performance as well as power-savings. One of the frequently cited examples around variable rate shading is often for the landscape within racing games.
The go-to Khronos graphic showing how with Variable Rate Shading the shading rate (quality) can be altered depending upon region of the frame. Now with Valve's proposed RADV patches, there would be VRS control support dynamically such that maybe they will be changing it if going from AC to battery power.
The RADV Vulkan driver has already supported variable rate shading while Valve's Samuel Pitoiset has been working on some changes to its forced behavior around VRS and allowing greater control. The patches posted on Tuesday allow for dynamically controlling the VRS rates and adds a new configuration file option where the VRS rate can write to that given file to control the shading rate on-demand.
Pitoiset commented, "It's now possible to force per-vertex VRS dynamically by writing eg. 2x2 via RADV_FORCE_VRS_CONFIG_FILE (previously the VRS rates were hardcoded in the vertex shaders)."
He also acknowledged that the intent of this RADV VRS alteration work is on power-savings. The patches also enable the functionality by default for AMD Van Gogh hardware -- notably used by the Steam Deck.
With allowing RADV_FORCE_VRS_CONFIG_FILE environment variable to point to a file for specifying the 2x2/2x1/1x2/1x1 shading rate, presumably they are looking to adjust the VRS rate on-demand depending upon whether the Steam Deck is connected to AC power. They may add a system service/event such that when going on/off battery to AC power that the VRS rate changes in order to adjust the power envelope and would work dynamically even if in-game while the power change is made or similarly the forced VRS rate could be tied to other system behavior such as the current thermal state.
These RADV VRS changes are now under review. The Mesa 22.0 feature freeze is expected this week so we'll see if they can manage to land it in time and under what conditions the Steam Deck will be forcing VRS behavior.