Nico de Poel
ed566a8beb
Empirically determined the best setup for motion vectors in OpenGL, though it still doesn't make a whole lot of sense. Added opt-in debug symbols line to the upscale shaders to make analysis easier.
1 year ago
Nico de Poel
4f8cf086bf
More specifically, set NDC Y-coordinate to be up when the Unity graphics API has UV's starting at the top
1 year ago
Nico de Poel
80a8532cb4
Cleaned up an unused argument
1 year ago
Nico de Poel
5b203e7ef5
Set normalized device coordinates Y direction to be up, which is standard in Unity, and properly detect non-zero motion vector inputs. This *seems* to be the correct recipe.
1 year ago
Nico de Poel
19b2969e58
Added macros to change nearest-depth and depth-clipping logic based on whether the Unity graphics API uses reversed Z or not
1 year ago
Nico de Poel
8635b131f6
Renamed SGSR2 compute shader resources class, to allow an easier distinction between fragment and compute variants later on
1 year ago
Nico de Poel
8d6036c91c
Moved a bunch of common definitions and functions into a separate file
1 year ago
Nico de Poel
0469bb921f
Reverted use of CBUFFER_ macros, as it was breaking the shaders on Vulkan
1 year ago
Nico de Poel
3285c552f4
Verified motion vector "decoding" against the auto-generated camera MVs based on the clip-space delta matrix, and made a small fix
1 year ago
Nico de Poel
c43c8d11f9
Reworked SGSR2 classes, moving more logic to the base class, and implemented clip-space delta matrix as well as the is-camera-still logic.
1 year ago
Nico de Poel
9bf6a12c97
Minor optimization: use half float types wherever the original GLSL code uses mediump floats.
1 year ago
Nico de Poel
7217b0fc32
Unity-fied all SGSR2 shaders by changing all texture declarations and accesses into TextureXR-style macros, with a shared BiRP definitions file.
1 year ago
Nico de Poel
0f7baf0b52
Implemented 2-pass CS dispatch
1 year ago
Nico de Poel
d4c1d3f56e
Made SGSR2 upscaler plugin abstract and split off 3-pass CS version into its own separate class
1 year ago
Nico de Poel
14fa1bc7d2
Initial port of SGSR2 2-pass compute shaders to HLSL (untested)
1 year ago
Nico de Poel
708e4308c5
Consolidated SGSR2 shaders into single .compute files as there's not much point in using includes, and grouped them together into a 3-pass folder. This will make it easier to add the other variants later.
1 year ago
Nico de Poel
7a259062d8
Working SGSR2 3-pass:
- Added padding field to fix buffer data misalignment issue
- Simplified the translation of GLSL globalInvocationID to HLSL
1 year ago
Nico de Poel
5646e0a325
Added PoC SGSR2 upscaler
1 year ago
Nico de Poel
3ab97172e6
Upgraded project to Unity 2022.3.47f1, enabled Trinity support and set up some initial resolution values
1 year ago
Nico de Poel
ceb8421e79
Updated debug tools to allow A/B comparisons between upscalers
1 year ago
Nico de Poel
6ad499c57d
Added CAS sharpening shader
1 year ago
Nico de Poel
8db82e664c
Reworked upscaling integration to allow for multiple upscaler algorithms that can be switched on the fly.
1 year ago
Nico de Poel
31eb875b79
Fixed an issue that would cause the wrong depth buffer to be passed to FSR when using forward rendering on newer Unity versions.
2 years ago
Nico de Poel
79298e140b
Updated namespaces now that FSR3 is in a separate sub-namespace.
2 years ago
Nico de Poel
911ae9bb29
Removed .19f1 requirement from PPV2 package. Any Unity 2020.1 and up should be supported.
2 years ago
Nico de Poel
582cd80713
Took FSR3 code and shaders out of the PPV2 package and replaced it with an FSR3 package reference
2 years ago
Nico de Poel
d1808d542e
Updated SuperResolution effect implementation to be compatible with FSR 3.1
2 years ago
Nico de Poel
63d46a6c8e
Imported FSR 3.1 implementation
2 years ago
Nico de Poel
7b37a0fba1
Correctly destroy resources when not in play mode
2 years ago
Nico de Poel
c66ab6136d
Applied correct macros to input and output texture definitions for HDRP support
2 years ago
Nico de Poel
a6b7b7235e
Prevent Unity from treating shader include headers as native plugin code
2 years ago
Nico de Poel
004cbc9468
Fixed opaque-only copy buffer not keeping dynamic resolution scaling in mind.
2 years ago
Nico de Poel
d1f207d691
Removed empty parantheses from macro definition, as it breaks the Unity 2020.1 shader compiler.
2 years ago
Nico de Poel
415154ff54
- Separated FSR3 shader aggregate from the scriptable object, so that they can be embedded directly inside PostProcessResources
- No longer need to send callbacks to the FSR3 Context.
2 years ago
Nico de Poel
6b590b64af
Refactored loading of FSR3 compute shaders, using an aggregate object containing pre-loaded compute shaders instead of the old callbacks.
This gives more control to the application about how shaders are loaded/unloaded, and it fits in much more nicely with PPV2's resources.
2 years ago
Nico de Poel
b7b3842b95
Moved ResourceView out of the Fsr3Upscaler class and into the FidelityFX namespace, making usages of ResourceView a lot cleaner.
ResourceView is also generic enough that it could/should be reused for any other FidelityFX effects, so this move makes sense.
2 years ago
Nico de Poel
6fc389f137
Fixed a few comments that still referred to FSR2
2 years ago
Nico de Poel
c71e487b15
Updated SuperResolution shaders and code to FSR3
2 years ago
Nico de Poel
7384b4486a
Fixed aspect ratio for dual-viewport setups
2 years ago
Nico de Poel
f399aaee4f
Upgraded to PPV2 version 3.4.0 with WebGPU support and several bug fixes
2 years ago
Nico de Poel
ad3966f3f6
Revert "Removed unnecessary aspect ratio lines that broke screen aspect when using non-standard viewports."
This reverts commit 79f2ab14bf .
2 years ago
Nico de Poel
79f2ab14bf
Removed unnecessary aspect ratio lines that broke screen aspect when using non-standard viewports.
2 years ago
Nico de Poel
3fcb2cfc57
Renamed Pipelines to Passes
2 years ago
Nico de Poel
8c7aeae4a7
Renamed RenderTargetView to ResourceView, which is a bit shorter to type and captures the essence well.
2 years ago
Nico de Poel
87f11b5f7c
Made all RenderTargetView fields non-nullable, and introduced a special Empty value for optional fields.
This removes the need for a lot of HasValue checks, especially since all fields will eventually get a value anyway, making those checks rather redundant. This also makes it clearer that all SRVs will get bound with a valid input texture, even if the input is optional.
2 years ago
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
02427c2c42
[PPV2] PPB-6 Disabled compute effects on WebGL and Android OpenGL ( #7936 )
* Disabled compute based effects not supported on WebGL and Android OpenGL
* Improved editor warning messages.
* Fix editor warning messages.
3 years ago
Nico de Poel
56d0050a72
Create opaque-only color buffer copy after opaque-only post-processing is done, and use the correct color format for the copy.
This creates a more accurate opaque-only reference for the auto-reactive pass, and improves compatibility with custom opaque-only effects.
3 years ago
Nico de Poel
51c5a44c1a
Set constant buffer data as part of the command buffers, instead of immediately.
3 years ago