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
c184748907
Separate out depth from the color buffer using RenderTextureSubElement, which does work now.
This whittles down the additional blitting to just motion vectors, with only a single shader/material required.
3 years ago
Nico de Poel
56da810b50
Implemented lock pass
3 years ago
Nico de Poel
38d5f81ccc
Added missing RT releases
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.
Uploading Lanczos table in R16_SFloat format using pre-normalized values.
Fixed frametime delta being converted improperly.
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.
Actually tested the output of the luminance pyramid shader now and it seems to be working.
3 years ago
Nico de Poel
cd414d75f1
Register aliasable UAV resources globally, before and after scheduling shader dispatches, so that all compute shaders can make use of them but without requiring a whole lot of additional resource management code.
3 years ago
Nico de Poel
9489a19cd8
Progress on managing resources. Compute luminance pyramid shader is starting to do something.
Also looked at the Lanczos LUT resource and ran into some roadblocks there.
3 years ago
Nico de Poel
16055d7dd9
Continued pipeline implementations: declaring all input/output bindings using shared resource IDs.
3 years ago
Nico de Poel
913c5879fa
Started work on luminance pyramid and acculumate pipelines.
Added keywords for customization options to the compute shaders using multi_compile_local.
3 years ago
Nico de Poel
08e034584c
Reorganized context and dispatch code:
- Resource binding and shader dispatch is now done in separate Pipeline classes per stage, mirroring the design of the original FSR2 code.
- Moved some classes and structs around to make them available outside of the Fsr2Context class.
3 years ago