162 Commits (9aee5758b6bfedf6a6bd0c17291ea9da177f572e)
 

Author SHA1 Message Date
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. 10 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 10 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. 10 months ago
Nico de Poel 1f7beb397f Merge branch 'armasr' into asr-console 10 months ago
Nico de Poel 8d85253def Enabled Native16Bit requirement for Vulkan, which sets a precedent for other graphics APIs to use this as well 10 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. 10 months ago
Nico de Poel d088d440f5 Allow live switching between FP16 and FP32 10 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
Nico de Poel d320a76b89 Turned dispatch descriptions into structs, using in-parameters where applicable 11 months ago
Nico de Poel a0eeda1e84 Updated fragment shader passes to provide their output render targets to the Blit function, including multi-render targets 11 months ago
Nico de Poel d5bbadaa77 Made all the ASR shader keywords global and encapsulated all of the keyword management into a separate class, which will enable and disable keywords globally based on the initialization flags and dispatch parameters. 11 months ago
Nico de Poel dd33e77b6f Reworked ASR passes to allow for blitting using fragment shaders, and got an idea of the problems yet to solve. Modified assets script and added it to the PPV2 resources. Some additional refactoring and bug fixing as well. 11 months ago
Nico de Poel d7191b98e7 Applied a few more recent fixes from the FSR2 codebase 11 months ago
Nico de Poel d3f60e2650 Added ASR runtime source files, as a copy of the FSR2 sources, with a bunch of renaming and stripped of some parts that we know we're not going to need. 11 months ago
Nico de Poel c8eebd63ed Added multi-compile keywords for all fragment shaders, and added Metal workaround for texture atomics 11 months ago
Nico de Poel a85e242d4c Added shaders for the two compute passes, plus a few minor fixes 11 months ago
Nico de Poel d77922cc4b Backported fixes that we already know are going to be necessary for full Unity support: 11 months ago
Nico de Poel 1551a3ccf8 Added the remaining vertex/fragment shader passes and made the same modifications to get them to compile 11 months ago
Nico de Poel c27195fb9a Defined a vertex/fragment shader for the accumulate pass, with initial modifications to make things compile as a proof of concept: 11 months ago
Nico de Poel 66059cb742 Imported ARM ASR shader code for HLSL without any modifications 11 months ago
Nico de Poel 299200cb9c Ported over jitter UV fixes from Snapdragon GitHub repo 1 year ago
Nico de Poel 9971d85ce4 Changed output texture formats from half to float, fixes Metal shader compilation issues on iOS 1 year ago
Nico de Poel 9f4b96ea25 Made integration more PPV2-like by using property sheets, material property blocks and the BlitFullScreenTriangle method. 1 year ago
Nico de Poel df58df61d6 Reorganized shader code such that standard BiRP and PPV2 can share the same common code with only some light wrappers to implement the differences 1 year ago
Nico de Poel 72df347315 Reworked 2-pass FS implementation to integrate more directly with the PPV2 framework, allowing for multi-target rendering using the fullscreen triangle blit, which eliminates the need for an extra blit at the end. 1 year ago
Nico de Poel cac783bebc Working SGSR2 2-pass FS implementation, bit dirty but good enough for testing. 1 year ago
Nico de Poel 87237bbddc Initial conversion to HLSL 1 year ago
Nico de Poel a0fa2c9e60 First import of GLSL fragment shaders plus some initial Unity shader setup 1 year ago
Nico de Poel a56f0742b5 Further tweaked motion vector processing, now the camera motion vectors from Unity produce an exact match with the auto-generated motion from the clip-delta matrix, in both D3D, Vulkan and OpenGL. It also makes sense with regards to the flipped Y-coordinate in screen space now. The final result looks good now too. 1 year ago
Nico de Poel 05989857c0 Added an untested and as of yet unused HDRP include file, just as an expression of what this file will look like for SRPs 1 year ago
Nico de Poel d354d07d81 Added scaleRatio to unify the cbuffer definition for all shaders, including the fragment shader variant. 1 year ago
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