183 Commits (66e3842ebf6cb1fbcd2b33df587b3cd04892eec0)

Author SHA1 Message Date
Nico de Poel 66e3842ebf Fixed jitter being weirdly inverted, though in Isonzo the opposite is required. Strange. 10 months ago
Nico de Poel a3f7914691 Prototype implementation of FSR 3.1 via a native plugin 10 months ago
Nico de Poel dad922c338 Swapped Luma and MotionVector outputs on the Reconstruct & Dilate pass, which fixes another apparent alignment issue on PS5 NGGC, causing the motion vectors to break occasionally when switching scaling ratios. 10 months ago
Nico de Poel f8483414f2 Fixed exposure instability for a few seconds after initialization on iOS Metal, and cleared out a shader compiler warning at run-time. 10 months ago
Nico de Poel 1dc6216750 Simplified platform wave operation support check 10 months ago
Nico de Poel fdf2125cfe Revert "Removed Xbox Series from the modern shaders, as it doesn't like Native16Bit at all and just falls back to legacy, and restored Native16Bit to all the modern shaders. Xbox Series will still use DXC and wave operations." 10 months ago
Nico de Poel 99f28af11d Removed Xbox Series from the modern shaders, as it doesn't like Native16Bit at all and just falls back to legacy, and restored Native16Bit to all the modern shaders. Xbox Series will still use DXC and wave operations. 10 months ago
Nico de Poel d7483c31c4 Added some commented-out debug pragmas to the compute shaders 10 months ago
Nico de Poel 1222d236f5 Fixed dynamic resolution scaling: 10 months ago
Nico de Poel 133343b285 Added texture array support for inputs and outputs 10 months ago
Nico de Poel 3ae6628a34 Added a few missing "in" keywords 10 months ago
Nico de Poel 760003744f Added missing bits of temporal reactive implementation in the FP32 code path, and only bind the relevant inputs to the Accumulate shader based on the ASR mode. Fixes Balanced and Performance modes on Xbox One, which for some reason still seems to be running the FP32 code path, no matter what the FFXM_HALF keyword is set to. 10 months ago
Nico de Poel cfae0072e9 Force enable FP16 shader code path, and redefine FFXM_HALF with a truthy value 10 months ago
Nico de Poel 4a8f9455e6 Removed the old license text from the C# source files 10 months ago
Nico de Poel 4c6a7b7309 Removed Native16Bit from the two compute shaders because Xbox Series does not like it. Seems fine for the fragment shader though, which is where it matters most. 10 months ago
Nico de Poel facfd037d2 Added Legacy variants of the ASR shaders, without DXC, Native16Bit or wave operations. Separated them into an AsrShaderBundle that can be selected from at run-time based on the current graphics device. 10 months ago
Nico de Poel 5faf6c2a56 Reworked ASR shaders for modern compilation on DX12, Vulkan, Metal, PS5 and Xbox Series: 10 months ago
Nico de Poel 89269073f7 Removed random write requirement from all render textures that aren't used as UAV (i.e. are used as fragment render targets). Sort of makes GLES3 work, and might provide an appreciable overall efficiency boost as well. 10 months ago
Nico de Poel 3293533bf9 Minor: print the ASR variant to the log when creating the context, makes for easier readback of the log 10 months ago
Nico de Poel 3912c66b0d Bind new locks to the accumulate shader as a regular SRV (read-only), and clear the locks buffer ahead of time instead of at the end of the accumulate shader. This simplifies the shader binding setup, as well as being "more correct" because we're using a temporary RT for the locks buffer, meaning it makes no sense to clear it for the next frame. 10 months ago
Nico de Poel 16cf41493a Swapped the order of the render targets around for the depth clip pass. Fixes prepared input color being black in NGGC because... I don't know, probably an alignment issue of some sort? PS5 is being really stupid here. 10 months ago
Nico de Poel 51e5a86112 Reverted dilated reactive masks format back to R8G8_UNorm, as that works correctly now 10 months ago
Nico de Poel c52a40f706 Use implicit register binding when using UAVs in fragment shaders. Fixes remaining issues with reconstruct and accumulate passes on PS5 CGGC. 10 months ago
Nico de Poel cc74a9cd2f Use implicit register binding for fragment shader random write targets. Fixes UAVs not binding properly on PS5. 10 months ago
Nico de Poel 90490e8819 Temp disabled Native16Bit again, as it does cause compilation issues when building for standalone. Need to make a split between Modern and Legacy here. 10 months ago
Nico de Poel 2f8a0ca595 Added output target pragmas for random write targets. Not sure if these are necessary but it's something to keep an eye on. 10 months ago
Nico de Poel 9aee5758b6 Made some progress towards making ASR FP16 work on PS5: 10 months ago
Nico de Poel bd18c12408 Updated PSSL target output format pragmas with what *should* be the correct values, though the PS5 still disagrees with this 10 months ago
Nico de Poel 5f4d4b37ad Fixed a big derp in the PSSL type definitions, copy-pasted code still contained FFX_HALF instead of FFXM_HALF, which caused 16-bit types to be compiled as 32-bit, causing a bunch of duplicate function definitions. 11 months ago
Nico de Poel 884ca84071 Moved unorm and globallycoherent definitions to the common cginc, rather than stuffing them somewhere in between all the types 11 months ago
Nico de Poel e4ad05a414 Made PSSL pragmas only get included for PSSL to prevent compiler warnings, and require native 16-bit compilation for PSSL. 11 months ago
Nico de Poel 8d85253def Enabled Native16Bit requirement for Vulkan, which sets a precedent for other graphics APIs to use this as well 11 months ago
Nico de Poel 090b9135e8 Reworked auto-exposure to use a double buffered render texture, which allows the smooth exposure transition logic to load a value that's guaranteed to be from the previous frame. Fixes artifacting and flickering issues caused by loading & storing to the same texture. 11 months ago
Nico de Poel d088d440f5 Allow live switching between FP16 and FP32 11 months ago
Nico de Poel c0cf3de364 Temporarily disable FP16 altogether, which makes PSSL shader compilation a lot happier. Need to figure out how to make the FP16 utility function definitions work without the shader compiler complaining about duplicate declarations. 11 months ago
Nico de Poel c4b59c7dc3 Bunch of fixes to make ASR Quality somewhat work on PS5, without reactive mask still: 11 months ago
Nico de Poel 6824f1f652 Enable FP16 (FFXM_HALF keyword) usage by default 11 months ago
Nico de Poel 4c93edccde Added type definitions for PSSL (PS4/5) and removed hard-coded FFMX_HALF defines. Let the multi-compile shaders and C# code control that. 11 months ago
Nico de Poel 9ef2bfdef0 Reverted rework of accumulation parameter initialization function to what it originally was, but with a struct clear to zero. 11 months ago
Nico de Poel 389faf3b65 Minor fixes (clearing auto-exposure to 1e8f achieves faster convergence but might cause issues with OpenGL on Nvidia, keep an eye on this!) 11 months ago
Nico de Poel 4a0fc42c2a Fixed RCAS pass still using compute shader bindings 11 months ago
Nico de Poel c92e35ff73 Added balanced and performance preset keywords to the depth clip and accumulate passes, which seem to be the only ones that use it. Makes the Balanced variant work. Performance variant still problematic. 11 months ago
Nico de Poel 943d119706 Fixed a number of issues to make Quality variant work: 11 months ago
Nico de Poel c4df3d45aa Got UAV bindings in fragment shaders to work in what I think is the correct way 11 months ago
Nico de Poel 82734c7606 Went over all the shader inputs and output and implemented them. Realized that some fragment shaders use UAVs with random write, is that even possible in Unity? 11 months ago
Nico de Poel d71b061d16 Added new shader IDs and resource definitions 11 months ago
Nico de Poel 20a930097e Added keywords for balanced/performance presets and GLES support 11 months ago
Nico de Poel 3ef31fac65 Some cleanup and minor fixes 11 months ago
Nico de Poel 2a88584eb2 Added a quick and dirty upscaler integration and fixed global keyword creation 11 months ago
Nico de Poel ac0adc168b Added definition for quality preset variants 11 months ago