Could any of you knowledgeable people offer a more detailed explanation of the difference between Variable Rate Shading (as used in DX12 and Vulkan) and Variable Rate Rasterization (as used by Apple in Metal)? If I understand it correctly, VRS simply allows the fragment/pixel shader to run at a lower resolution than the rasterized image (it is not 100% clear to me how the output of the shader is mapped to the final image — is there some filtering going on, or are values just copied?). In contrast, Apple's VRR actually rasterizes at a lower rate, producing a distorted image, and then requires you to manually rescale it to the target resolution by sampling data from these distorted low-res tiles. At the same time, with VRS each cell can be set to a different shading rate, while Apple's VRR needs to preserve a certain kind of symmetry (you can only set rasterization rates for rows and columns, not for the cells themselves).
Is there anything important to add? What are the benefits and disadvantages of the respective approach?
Is there anything important to add? What are the benefits and disadvantages of the respective approach?