- 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.
- Changed the atomic counter from a temporary RT that gets reset every frame, to a permanent resource that gets set to 0 only on the first execution frame. Fixes auto-exposure causing a black screen on MacOS.
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.