27 Commits (dad922c3380f6249431eb2ddb18027bd26e8fa5c)

Author SHA1 Message Date
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 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 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 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 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 2f8a0ca595 Added output target pragmas for random write targets. Not sure if these are necessary but it's something to keep an eye on. 11 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 11 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 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 c4b59c7dc3 Bunch of fixes to make ASR Quality somewhat work on PS5, without reactive mask still: 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 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 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