FidelityFX Single Pass Downsampler (SPD) v2.0 released

Originally posted:

We’re delighted to announce the latest version for one of the newer members of our FidelityFX family – FidelityFX SPD 2.0! This powerful shader provides an RDNA-optimized solution for generating up to 12 MIP levels of a texture. 

FidelityFX SPD 2.0 includes:

  • Support for cube textures and array textures. The SpdDownsample function takes the slice index as a new parameter. The total number of slices is passed in with the z component of your dispatch size.

Example Radeon GPU Profiler (RGP) traces – downsampling of a cube texture 512×512 with 6 slices:

Traditional pixel shader approach: For each of the 6 slices there are 9 passes, one for each MIP.

SPD: A single dispatch call computing all 54 MIPs of the cube texture.

  • Support for downsampling a sub-rectangle, in case only a known region of the source texture has been updated.

  • CPU side helper function to compute constants:

    • Dispatch size x and y.
    • Thread group offsets in case only a sub-rectangle has modified data.
    • Number of thread groups.
    • Number of MIPs.
  • Automatic reset of the global atomic counter after each SPD run: only one single initialization for the first run of SPD is required now.

Find out more about FidelityFX SPD:

Related news and technical articles

Related videos