- Updated FSR2 to version 2.3.2, including some fixes backported from FSR3 Upscaler.
- Reworked PPV2 integration to allow switching between different upscalers via a flexible plugin system.
- Reduced number of SPD mip levels used by FSR3 luma pyramid and shading change pyramid passes for OpenGL Core, to ensure they stay within the limit of 8 UAV bindings.
- Fixed multiple FSR2 auto-exposure issues with OpenGL Core on Nvidia GPUs, that were causing artifacting and black screen flashes.
- Reorganized profiler sampling to work around issues in non-development builds on Unity 2020.x
- Optimized multi-compile keywords to reduce the number of shader variants.
- Moved FSR core classes and shaders into their own package
- Added FSR 2.2 implementation side-by-side with FSR 3.1
- Updated BiRP and PPV2 integrations for FSR 3.1
- Added experimental HDRP 17 integration
- Reworked input/output resource management using a new ResourceView struct, which encompasses all relevant data required to bind textures from various sources.
This eliminates the need for resource binding code outside of the core FSR2 classes, and makes the public API more strict and consistent, but also more flexible. In addition, it allows the input/output resource debug checks to happen every frame for that frame.
- Changed prebaked RCAS configurations into an array, as there is no need for a dynamically sized list here.
- Renamed Pipelines to Passes.
- Disable plugin importer settings on all FSR2 header include files.
- Made undoing of mipmap bias a distinct separate callback, so that it can be overridden by client apps.
- Skip textures that don't have mipmaps and thus don't have any use for a mipmap bias.
Previously the code relied on undefined behavior, whereby an already released temporary render texture just happened to remain in memory at the same location. On Xbox One with its unique ESRAM cache this would fail.