Intel and Microsoft* have joined forces to support Variable Rate Shading (VRS) in DirectX* 12 and Intel’s upcoming Gen11 hardware. The announcement was made at the 2019 Game Developer Conference (GDC) in San Francisco, accompanied by a demo by Firaxis Games*. It sets the stage for DirectX 12-savvy developers to take full advantage of VRS in their games.
VRS allows fine-grained control of a game’s shading rate, making it relatively straightforward to shade smarter. It allocates pixel shading resources to where they matter most and have the greatest visual impact, with minimal code changes.
For example, a developer might care more about closer objects, target areas, and oncoming opponents, and so let visual quality recede in the background. By controlling the level of detail (LOD) resources this way, the developer can reduce rendering times for complex scenes, yet retain the quality of important visual components.
Laura Wieme, Game Developer Relations Engineer at Intel, said interacting with a broad cross-section of developers gave her team valuable insights into making the new feature ready for implementation. “We needed to make the integration, setup, and control of VRS easy enough that developers could adopt the technique without too much overhead,” she explained. Her team conducted multiple meetings with major developers, absorbing feedback from potential users.
“Intel can add considerable value in a situation like this, because of our years of experience with the game dev community,” she said. “We anticipated how game developers could use VRS, but we also solicited industry feedback to best understand what would be needed for wide adoption.”
Wieme is a specialist in computer graphics and computer vision. Her undergraduate degree is in film and animation, and she completed an advanced degree in computer science at the Rochester Institute of Technology. She emphasized that the VRS project was a team effort, and cited two Intel colleagues in particular: Adam Lake, who presented on stage with Microsoft and has been a driving force behind the API (application programming interface) development, and Kelly Gawne, who integrated VRS techniques into Unreal Engine*, a technique that she demoed onstage.
“We were involved from the early development stages,” said Wieme noting that VRS is based on Intel’s previous work with pixel shading. Multiple engineers presented what was then a “novel architecture for flexible control of shading rates in a GPU pipeline.” The technique was termed coarse pixel shading (CPS), and reduced shading costs for various applications.
Shading and visibility were decoupled, by restricting and quantizing shading rates to a finite set of screen-aligned grids. The result: simpler and fewer changes to the GPU pipeline, compared to alternative approaches. The architecture offered programmable control of the shading rate in scenarios such as rendering for high pixel-density displays, foveated rendering, and adaptive shading for motion and defocus blur. In addition, CPS supported shading at multiple rates in a single pass, so developers could select the ones that best matched their frequency content.
Today, VRS is used by multiple vendors. With more developers moving to DirectX 12, adding VRS is a big step forward in making the GPU more efficient.
Before Microsoft even completed the API, Wieme’s team tested the new hardware capabilities, performed an early evaluation of the drivers, and simulated various hardware configurations. “We had to make the API easy enough that developers would want to adopt VRS and could use it with minimal code changes,” she recalled. “We are conducting more investigations to find the best way to use VRS in applications and provide those recommendations to developers.”
Figure 1. Intel’s Kelly Gawne (left) describes variable rate shading benefits at the 2019 GDC demo. (Image source: Intel® software)
The payoff came when the work was presented at GDC in March 2019. The demonstration, with Microsoft, emphasized Intel’s commitment to the technology, and hinted at upcoming support in Intel® hardware.
Intel also demonstrated a Gen11 hardware configuration with a demo created using Unreal Engine. “This was one of the first engine integrations to show how developers might use VRS,” Wieme said. “We drew big crowds of people interested in the possible speedups they could get with it.”
Figure 2. Intel’s Unreal Engine demo, running on Gen11 hardware, with continuously updated metrics in the upper right corner. (Image source: Intel software)
This was one of the first opportunities for developers to see the new technology, so Intel wanted them to be able to get up close. Users were able to pause the game and study the screen in detail. “I had a lot of interest,” Wieme said. The developers asked insightful technical questions, and Wieme said booth visitors were excited about VRS technology receiving official support in the Gen11 release.
"For each pixel in a screen, shaders are called to calculate the color this pixel should be,” Microsoft said in a recent blog post. “We’re very excited to announce that DirectX 12 is the first graphics API to offer broad hardware support for Variable Rate Shading.”
Microsoft and Firaxis Games teamed up at GDC to run Civilization* VI in a ‘VRS on/VRS off’ configuration. The demo showed near-identical visual quality in both halves of a split screen; the left side with VRS enabled, and running considerably faster; the right with VRS disabled.
Figure 3. Civilization VI demo from Firaxis Games and Microsoft: the left side has VRS enabled, and is running considerably faster, yet the quality of both sides is near-identical. (Image courtesy of Microsoft)
Hardware support for VRS is still developing, but it will receive a boost later in 2019 with Intel’s new Gen11 graphics hardware. Going forward, Gen11 will boost the performance of nearly every mainstream Intel® processor.
Intel is eager to work with independent software vendors to develop algorithms and rendering techniques that explore VRS further. Check in at Intel® Developer Zone for updates on VRS integration and Gen11 hardware. And, in the future, look for sample code, a VRS-enabled Windows® 10 RS6 release, and other major moves – and make sure you’re ready to take advantage of them.
Intel Video Series: Game Developers Conference 2019
Vaidyanathan, Karthik; Salvi, Marco; Toth, Robert; Foley, Tim; A., Tomas; Nilsson, Jim; Munkberg, Jacob; Hasselgren, Jon; Sugihara, Masamichi; Clarberg, Franz; Lefohn, Aaron: Coarse Pixel Shading
Van Rhyn, Jacques: Variable Rate Shading: a scalpel in a world of sledgehammers