Nico de Poel
05db2a9c39
Changed prebaked RCAS configurations into an array, as there is no need for a dynamically sized list here.
2 years ago
Nico de Poel
b4ddc41f1b
Reworked input/output resource management using a new RenderTargetView 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. It also removes the need for the slightly awkward input/output resource debug checks.
2 years ago
Nico de Poel
51c5a44c1a
Set constant buffer data as part of the command buffers, instead of immediately.
3 years ago
Nico de Poel
a73b7ba0e2
Clear initial auto-exposure value to zero instead of negative one. Fixes black screen flashes on Metal when performing an accumulation reset.
3 years ago
Nico de Poel
5ee49f68a8
Reset atomic counter on any kind of reset, not just on first execution. Fixes black screen on Metal when doing a history reset.
3 years ago
Nico de Poel
fe10480628
Refactored undo mipmap bias callback such that the RP integration does not need to maintain any bias offset state. Added NaN/Infinity check to the standard apply mipmap bias callback implementation.
3 years ago
Nico de Poel
f35b63f292
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.
3 years ago
Nico de Poel
c6c45fc2bc
Moved management of aliasable resources to the Fsr2Resources class and gave the methods more logical names.
3 years ago
Nico de Poel
70c7ea0e51
Restored compatibility with Unity versions older than 2021.2, which didn't have the LocalKeyword struct yet.
3 years ago
Nico de Poel
6504adeea6
Create temporary resources at actual render size, reducing VRAM usage when dynamic resolution is in effect.
3 years ago
Nico de Poel
79211d3dbb
- Consolidated accumulate and accumulate+sharpen pipelines into a single pipeline, with the sharpening option being changed into a local keyword that can be enabled or disabled on-the-fly. This removes the need for an additional copy of the accumulate shader, saving a considerable amount of memory.
- 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.
3 years ago
Nico de Poel
6ecfb65943
Imported FSR2 shaders and core classes
3 years ago