19 Commits (6e205572532fa038babc60807d90689e3d2cc3fe)

Author SHA1 Message Date
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 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 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 b3bc46fcb7 Moved management of aliasable resources to the Fsr2Resources class and gave the methods more logical names. 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 ef20869c48 Added support for experimental auto-TCR generation pass 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 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
Nico de Poel 1ff980bea9 Changing my mind yet again about directory names 3 years ago
Nico de Poel da651c3d6f Moved some files 3 years ago
Nico de Poel 8cd818a3d9 A bit of comment cleanup 3 years ago
Nico de Poel 3ffbc0573e Implemented auto-exposure feature. 3 years ago
Nico de Poel 9b83409c71 Added debug checks for input and output resources, either through direct assignment or through existing global texture bindings. 3 years ago
Nico de Poel 92e360aa24 Implemented the debug checking upon dispatch from the original FSR2 source, with some Unity adaptations. 3 years ago
Nico de Poel 8f1be6d3e6 Re-added transparency & composition parameter, even though we never use it and just fall back to the default reactivity mask, we officially support it as an input now. 3 years ago
Nico de Poel 5ed7a5279b Progressed implementation of reactive mask generation pass. 3 years ago
Nico de Poel 158d5bc176 Perform render scaling by manipulating the Camera viewport rect, which removes the need for a second game object and camera altogether. 3 years ago
Nico de Poel c1326fc261 Added some comments to the main FSR2 classes 3 years ago
Nico de Poel 8ceffcadd1 Further cleanup and small details 3 years ago
Nico de Poel 86c16e3694 - Replaced all input/output parameters with RenderTargetIdentifiers, allowing more flexibility in how these resources are assigned 3 years ago
Nico de Poel 1a0945a283 Allow FSR2 commands to be added to a CommandBuffer passed in externally 3 years ago
Nico de Poel 84c02a1110 ExecuteCommandBuffer needs to be done last, otherwise the commands to release temporary RTs won't be executed and they'll be cleared on the next frame. Oops. 3 years ago
Nico de Poel 903c2f71f3 Updated code to make it compatible with Unity 2020.1, i.e. the oldest version that's technically usable. 3 years ago
Nico de Poel 141a4a8335 Added a bit of missing resource management 3 years ago
Nico de Poel 0f584b1098 Implemented generate reactive pass, which can be used separately from the main FSR2 upscale process. 3 years ago
Nico de Poel e624b61ea5 Removed all of the TCR auto-generation stuff, as I have no intention of actually supporting this anytime soon 3 years ago
Nico de Poel 0f5f3d9a69 Bits and bobs 3 years ago
Nico de Poel 2440486872 Implemented resource clearing logic on first execution and reset 3 years ago
Nico de Poel 13eb24289e Initial implementation of accumulation pass. It's doing... something but it's definitely not correct yet. 3 years ago
Nico de Poel d044cf2789 Moved resources into their own source file, to make it easier to pass them to pipelines in bulk. Added creation of resources for the accumulate pass. 3 years ago
Nico de Poel 6b74532793 Some cleanup and a few small details 3 years ago
Nico de Poel 650e805af8 Combined color and depth into a single dispatch parameter, which makes it easier to follow what's going on at the various stages. 3 years ago
Nico de Poel d607b1bf5a Apply jitter offset to dispatch parameters 3 years ago
Nico de Poel 56da810b50 Implemented lock pass 3 years ago
Nico de Poel 34598f3900 Moved default exposure and reactive resources to Fsr2Context 3 years ago
Nico de Poel 934a3d60fa Implemented depth clip pass. Solved the problem of UAV/SRV name mismatch by monkey-patching the relevant shaders. Added default reactive mask. 3 years ago
Nico de Poel 834c396321 Color, depth and motion vectors are now provided as regular texture inputs to the compute shaders, by blitting them from the game camera ahead of time. 3 years ago
Nico de Poel 8633cdcfc2 Initial implementation of Reconstruct & Dilate pass. Got a pretty decent way of dealing with double-buffered resources. 3 years ago
Nico de Poel 1b41f6b2d7 Provide pipelines with the entire context description, which makes intiialization a bit simpler. Also provide it when registering resources so that the corrext *max* render size can be used. Started on the reconstruct depth pipeline. 3 years ago
Nico de Poel 16f529bce8 Made shading change mip level into a reusable const value, and fixed mip sizes for exposure RTs. 3 years ago