51 Commits (c6912f3ffade728d0abca7cc6dc410b17a98665f)

Author SHA1 Message Date
Nico de Poel b03217eebd Initial update of dispatch parameters and enums for FSR 3.1 2 years ago
Nico de Poel d21b57083b Fixed potential nullref when Destroy gets called repeatedly 2 years ago
Nico de Poel 8b4a7fd78f Correctly destroy resources when not in play mode 2 years ago
Nico de Poel 8e879726d7 Split the FSR3 shaders aggregate class from the scriptable object part. This allows the shader references to be serialized as a single asset still, but also for them to be embedded inline inside of a different scriptable object (for PPV2) 2 years ago
Nico de Poel 734770b75e Callbacks don't need to be passed to the FSR3 Context anymore. 2 years ago
Nico de Poel 2d05d08f86 Added the ability to clone the shaders, in case multiple FSR3 instances with different configurations are needed. 2 years ago
Nico de Poel fdcc85355c Try our best to ensure a shaders asset is assigned to the image effect component. 2 years ago
Nico de Poel bd98fdf00d Turned shaders aggregate into a scriptable object, with a default asset instance that automatically resets to look up the correct shader references. 2 years ago
Nico de Poel 84e5e72ab7 Refactored loading of FSR3 compute shaders, using an aggregate object containing pre-loaded compute shaders instead of the old callbacks. 2 years ago
Nico de Poel 13910c8687 Moved ResourceView out of the Fsr3Upscaler class and into the FidelityFX namespace, making usages of ResourceView a lot cleaner. 2 years ago
Nico de Poel ebb9d84171 Rename FSR2 to FSR3 Upscaler, part 3: missing bits. 2 years ago
Nico de Poel 9854cd1279 Rename FSR2 to FSR3 Upscaler, part 2: class and file names. 2 years ago
Nico de Poel 62a924ae83 Rename FSR2 to FSR3 Upscaler, part 1: strings and comments. 2 years ago
Nico de Poel c2f397892f Forward ported TCR autogen pass to fit in with the rest of the FSR3 shader code 2 years ago
Nico de Poel c83c3e5805 Cleaned up compute shader initialization, as the Nvidia-specific FP16 exception for the accumulate stage doesn't seem to be required anymore. 2 years ago
Nico de Poel 6e20557253 Ported clearing code for reconstructed depth buffer, which is new in FSR3. This replaces clearing in the Lock pass, allowing the buffer to be reused after upscaling is done. 2 years ago
Nico de Poel fa1704e65f First working proof of concept of FSR3 upscaling in Unity 2 years ago
Nico de Poel c010b6aa28 Renamed Pipelines to Passes 2 years ago
Nico de Poel 22701fdd17 Renamed RenderTargetView to ResourceView, which is a bit shorter to type and covers the essence well. 2 years ago
Nico de Poel d9f9ef10ff Modified RenderTargetView yet again: made a distinction between an invalid (Unassigned) texture reference and a valid-but-empty (None) texture reference. Inverted IsEmpty as well to be a more generic IsValid property now. 2 years ago
Nico de Poel d8a4bc3f61 Unity 2020.1 compatibility testing results 2 years ago
Nico de Poel 47cba76dee Made all RenderTargetView fields non-nullable, and introduced a special Empty value for optional fields. 2 years ago
Nico de Poel e8d12c201e - Reworked input/output resource management using a new RenderTargetView struct, which encompasses all relevant data required to bind textures from various sources. 2 years ago
Nico de Poel 7c41364109 Set constant buffer data as part of the command buffers, instead of immediately. 3 years ago
Nico de Poel 9668b132e7 Clear initial exposure value with zero. Seems to work fine for all tested platforms, and eliminates the black screen flashes on Metal without requiring any platform-specific hacks. 3 years ago
Nico de Poel c65cab824e Clear auto-exposure texture using zeroes on Metal. Should fix black screen flashes on accumulation reset, when auto-exposure is enabled. 3 years ago
Nico de Poel e577240354 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 8c43881c8d Added zero check to make undo mipmap bias offset an idempotent operation 3 years ago
Nico de Poel 9911642947 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 bc3192fc40 Made undoing of mipmap bias a distinct separate callback, so that it can be overridden by client apps. 3 years ago
Nico de Poel 9e53cf52f8 Skip textures that don't have mipmaps and thus don't have any use for a mipmap bias 3 years ago
Nico de Poel b3bc46fcb7 Moved management of aliasable resources to the Fsr2Resources class and gave the methods more logical names. 3 years ago
Nico de Poel 3f17ca1fe2 Revert "Create temporary resources at actual render size, further reducing VRAM usage when dynamic resolution is in effect." 3 years ago
Nico de Poel 45ce81610d Restored compatibility with Unity versions older than 2021.2, which didn't have the LocalKeyword struct yet. 3 years ago
Nico de Poel a2c1211d98 Create temporary resources at actual render size, further reducing VRAM usage when dynamic resolution is in effect. 3 years ago
Nico de Poel cf316ebf4f Comment that the atomic counter shouldn't be aliasable 3 years ago
Nico de Poel 63d6fd3203 Changed atomic counter from a temporary RT to a permanent one, and set it to 0 only on the first frame. Potential fix for auto-exposure on MacOS. 3 years ago
Nico de Poel 47c2560476 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. 3 years ago
Nico de Poel 53e8164f0e Clear the atomic counter used by the luminance pyramid pass. This fixes auto-exposure being broken and causing a black screen on some platforms (Xbox, OpenGL). 3 years ago
Nico de Poel 501b1b0638 Added workaround for HDRP using texture arrays for its camera buffers on some platforms 3 years ago
Nico de Poel ef20869c48 Added support for experimental auto-TCR generation pass 3 years ago
Nico de Poel a2d670d0f8 Added a dummy field to the main FSR2 constant buffer, to make it exactly 128 bytes long. This fixes a data alignment issue on iOS Metal. 3 years ago
Nico de Poel 9f887a5c3c Check shader after loading it, throw an exception with a message on failure. This is better than having a random nullref happen, if the shaders cannot be loaded for whatever reason. 3 years ago
Nico de Poel 38cc3a83fd Don't validate input/output resources on reset, so the application has a way to prevent error messages when re-enabling a camera. 3 years ago
Nico de Poel 47d40fb71d More accurate representation of where SystemInfo.computeSubGroupSize is available 3 years ago
Nico de Poel bfa9d5196a Made Callbacks into a property and just use rounding to int for dealing with floating point inaccuracies. 3 years ago
Nico de Poel 73fa30927b Got rid of the global callbacks thing and made callbacks a local field of the Fsr2ImageEffect script. 3 years ago
Nico de Poel f6da12c854 Brought back Ultra Quality mode (1.2x) scale, likely for good this time. 3 years ago
Nico de Poel e0027ed77a Added MIT license header to every source file, similar to the FFX FSR2 codebase 3 years ago
Nico de Poel 1cc0de7c89 Moved Shader ID constants to a separate class file 3 years ago