Nico de Poel
80f42cae73
Struct constraint on dispatch parameters can now be enforced
2 years ago
Nico de Poel
33f410125f
Minor cleanup
2 years ago
Nico de Poel
9c377cc144
Use derived classes to reference passes.
2 years ago
Nico de Poel
76d0ee5425
Changed all dispatch descriptions into structs, renamed some fields, cleaned up some unused code.
Changing to lowercase field names for public struct members now, which follows the C# naming conventions. FSR2/3 won't follow suit for now, because too much code already makes use of the capitalized names.
2 years ago
Nico de Poel
452f9e13a9
Turned all dispatch descriptions into structs with a default value, applied in-parameters wherever appropriate, renamed a few things, and made pass references use the most derived type.
2 years ago
Nico de Poel
2ff4b9772b
Made block size and texture size available through the optical flow context, which is better encapsulation.
2 years ago
Nico de Poel
b1ddc9ba0d
Moved duplicated BackbufferTransferFunction enum to a common enums file
2 years ago
Nico de Poel
43e0f15ab8
Made the pass classes sealed, which is a more sensible way to please the compiler about using virtual methods inside constructors.
2 years ago
Nico de Poel
404a090adf
Reworked optical flow passes to inherit from FfxPassBase, with a bit of a hack to work around the need for the extra level parameter.
Made the pass classes sealed, which is a more sensible way to please the compiler about using virtual methods inside constructors.
2 years ago
Nico de Poel
371743ca70
Applied in-parameter for context and dispatch descriptions more consistently
2 years ago
Nico de Poel
b21b1b43c4
Reworked passes to make the context description copy unnecessary, and made use of extension methods to simplify resource binding in Optical Flow passes.
2 years ago
Nico de Poel
b565ca029f
Made flags a field of the FfxPassWithFlags class, obviating the need to hold on to a context description copy, or the need to pass flags around.
2 years ago
Nico de Poel
acb54c821f
Refactored frame interpolation passes to use the common base class, and simplified all of the shader resource bindings.
2 years ago
Nico de Poel
7b988fd39d
Reworked dispatching code to use the common SPD and depth params methods.
2 years ago
Nico de Poel
de4f5bd83d
Refactored context classes to use common base class, and reworked constant buffers to use the wrapper class.
2 years ago
Nico de Poel
097eaa960a
Refactored resources classes to use common base class
2 years ago
Nico de Poel
3e4e0bb003
Moved SetupDeviceDepthToViewSpaceDepthParams to the common FfxUtils class
2 years ago
Nico de Poel
74a127a40d
Further generalized SPD constants and setup
2 years ago
Nico de Poel
d583c750d2
Moved SPD setup method into a separate common FfxSpd class
2 years ago
Nico de Poel
328011f7ba
Added profiling samplers around the entire FSR2/3 process
2 years ago
Nico de Poel
c5130f8236
Renamed frameIndex to bufferIndex
2 years ago
Nico de Poel
3e91f84cf8
Simplified handling of compute buffer data by wrapping it inside a helper class
2 years ago
Nico de Poel
19a74fee45
Created an abstract base class for context objects, with a few common helper methods
2 years ago
Nico de Poel
c33ec9d4ed
Further abstracted base pass class to allow for passes without shader keyword flags, and to allow custom kernel names.
2 years ago
Nico de Poel
7c923f8ce8
Renamed frameIndex to bufferIndex, which works in all contexts and makes it more clear that it'll be used as an array index
2 years ago
Nico de Poel
13b9b98318
Created additional extension methods to bind various compute shader resources, to make the dispatching code a lot more straightforward.
2 years ago
Nico de Poel
15b380eebf
Abstracted some of the common pass code into a new base class for passes.
2 years ago
Nico de Poel
2d446333c1
Created additional shared helped methods for creating lookup textures and the Lanczos2 LUT
2 years ago
Nico de Poel
3bb3d78610
Refactored resource creation to make use of shared helped methods
2 years ago
Nico de Poel
6219d6159d
Moved all create/destroy methods for various types of resources to a new common base class
2 years ago
Nico de Poel
9f06f24943
Moved a number of shared static helper methods to a new FfxUtils class
2 years ago
Nico de Poel
4282b10eb4
Revert "Disabling inverted depth flag while I try to figure out what the correct way to deal with this is. For now, this fixes the broken disocclusion mask causing holes in the interpolated frame, which then get filled in with junk by the inpainting pass."
This reverts commit 49d197e60f .
2 years ago
Nico de Poel
49d197e60f
Disabling inverted depth flag while I try to figure out what the correct way to deal with this is. For now, this fixes the broken disocclusion mask causing holes in the interpolated frame, which then get filled in with junk by the inpainting pass.
2 years ago
Nico de Poel
32692053a4
Small cleanup
2 years ago
Nico de Poel
875b90f6ef
Simplified backbuffer selection for interpolation source
2 years ago
Nico de Poel
4e29c3dfb4
Replaced allocating lambda expression with a regular method.
2 years ago
Nico de Poel
01eb878a3e
Removed pointless dispatch count, when it's only used to check for first execution
2 years ago
Nico de Poel
c215db4017
Removed a few TODOs for things that have been checked and seem fine
2 years ago
Nico de Poel
4b675d285e
Modified inpainting pyramid passes to use a maximum of 7 mip levels. This allows the shaders to stay within the limit of 8 UAV bindings required by DX11.0, and gets rid of Unity's warnings and errors about breaking this limit.
2 years ago
Nico de Poel
a72e842bee
Fixed unintentional cap on SPD mip levels
2 years ago
Nico de Poel
279edd4429
Allocate double buffers only when async compute support is enabled
2 years ago
Nico de Poel
80d63d74fa
Fixed mipmap bindings when going over the RT's mipmap count, and pick the correct backbuffer to copy for the next frame.
2 years ago
Nico de Poel
910621b019
Couple of tweaks to facilitate integration
2 years ago
Nico de Poel
ec705e3d8d
Implemented remaining dispatch code
2 years ago
Nico de Poel
28ca91c32f
Implemented prepare process and started on main dispatch
2 years ago
Nico de Poel
1fab819f35
Implemented remaining passes
2 years ago
Nico de Poel
4cd63e62a8
Implemented a bunch more FI passes
2 years ago
Nico de Poel
57b78d7bac
Implemented prepare (reconstruct and dilate) pass
2 years ago
Nico de Poel
df9db23e6a
Set up shader IDs and dispatch descriptions
2 years ago
Nico de Poel
e9c46dfdd7
Set up pass classes and instances
2 years ago