Variable Rate Shading: Get Smarter About Shading, Too
In addition to optimizing the way Turing processes geometry, Nvidia also supports a mechanism for choosing the rate at which 16x16 blocks of pixels are shaded in different parts of a scene to improve performance. Naturally, the hardware can still shade every single pixel in a 1x1 pattern. But the architecture also facilitates 2x1 and 1x2 options, along with 2x2 and 4x4 blocks.
Nvidia offers several use cases where variable rate shading is practical (you don’t want to apply it gratuitously and negatively affect image quality). The first is content-adaptive shading, where less detailed parts of a scene don’t change as much and can be shaded at a lower rate. There’s actually a build of Wolfenstein II with variable rate shading active. In it, you can turn on the shading rate visualization to watch how complex objects aren’t affected at all by this technology, while lower-frequency areas get shaded at a lower resolution. A number of intermediate steps facilitate multiple rates. We must imagine that game developers looking to exploit variable rate shading in a content-adaptive manner will prioritize quality over performance. Still, we’d like to see this enabled as a toggleable option so third parties can draw comparisons with the feature on and off.
Motion-adaptive shading is another interesting application of Nvidia’s variable rate shading technology, where objects flying by are perceived at a lower resolution than whatever subject we’re focused on. Based on the motion vector of each pixel, game developers can determine how aggressively to reduce the shading rate and apply the same patterns seen in the content-adaptive example. Doing this correctly does require an accurate frequency response model to ensure the right rates are used when you spin around, sprint forward, or slow back down.
Again, Nvidia presented a demo of Wolfenstein II with content- and motion-adaptive shading enabled. The performance uplift attributed to variable rate shading in that title was on the order of ~15%, if only because Wolfenstein II already runs at such high frame rates. But on a slower card in a more demanding game, it may become possible to get 20%+-higher performance at the 60ish FPS level. Perhaps more important, there was no perceivable image quality loss.
Although Nvidia hasn’t said much about how these capabilities are going to be utilized by developers, we do know that its Wolfenstein II demo was made possible through Vulkan extensions. The company is working with Microsoft to enable DirectX support for Variable Rate Shading. Until then, it'll expose Adaptive Shading functionality through the NVAPI software development kit, which allows direct access to GPU features beyond the scope of DirectX and OpenGL.
MORE: Best Graphics Cards
MORE: All Graphics Content