diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_common.cginc b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_common.cginc index 11f4edd..4d8ce66 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_common.cginc +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_common.cginc @@ -2,3 +2,10 @@ #pragma warning(disable: 3203) // Signed/unsigned mismatch #pragma warning(disable: 3205) // Conversion from larger type to smaller, possible loss of data #pragma warning(disable: 3556) // Integer divides might be much slower, try using uints if possible + +// Work around the lack of texture atomics on Metal +#if defined(SHADER_API_METAL) +#define InterlockedAdd(dest, val, orig) { (orig) = (dest); (dest) += (val); } +#define InterlockedMin(dest, val) { (dest) = min((dest), (val)); } +#define InterlockedMax(dest, val) { (dest) = max((dest), (val)); } +#endif diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fs.shader b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fs.shader index 4e1e847..9066d1e 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fs.shader +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fs.shader @@ -13,6 +13,9 @@ Shader "TND/ASR/ffx_fsr2_fs" #pragma fragment main #pragma target 4.5 //#pragma enable_d3d11_debug_symbols + + #pragma multi_compile __ FFXM_HALF + #pragma multi_compile __ UNITY_FFXM_TEXTURE2D_X_ARRAY #include "ffxm_fsr2_common.cginc" #include "shaders/ffxm_fsr2_vs.hlsl" @@ -31,6 +34,13 @@ Shader "TND/ASR/ffx_fsr2_fs" #pragma target 4.5 //#pragma enable_d3d11_debug_symbols + #pragma multi_compile __ FFXM_HALF + #pragma multi_compile __ FFXM_FSR2_OPTION_HDR_COLOR_INPUT + #pragma multi_compile __ FFXM_FSR2_OPTION_LOW_RESOLUTION_MOTION_VECTORS + #pragma multi_compile __ FFXM_FSR2_OPTION_JITTERED_MOTION_VECTORS + #pragma multi_compile __ FFXM_FSR2_OPTION_INVERTED_DEPTH + #pragma multi_compile __ UNITY_FFXM_TEXTURE2D_X_ARRAY + #include "ffxm_fsr2_common.cginc" #include "shaders/ffxm_fsr2_vs.hlsl" #include "shaders/ffxm_fsr2_reconstruct_previous_depth_pass_fs.hlsl" @@ -48,6 +58,12 @@ Shader "TND/ASR/ffx_fsr2_fs" #pragma target 4.5 //#pragma enable_d3d11_debug_symbols + #pragma multi_compile __ FFXM_HALF + #pragma multi_compile __ FFXM_FSR2_OPTION_LOW_RESOLUTION_MOTION_VECTORS + #pragma multi_compile __ FFXM_FSR2_OPTION_JITTERED_MOTION_VECTORS + #pragma multi_compile __ FFXM_FSR2_OPTION_INVERTED_DEPTH + #pragma multi_compile __ UNITY_FFXM_TEXTURE2D_X_ARRAY + #include "ffxm_fsr2_common.cginc" #include "shaders/ffxm_fsr2_vs.hlsl" #include "shaders/ffxm_fsr2_depth_clip_pass_fs.hlsl" @@ -65,6 +81,14 @@ Shader "TND/ASR/ffx_fsr2_fs" #pragma target 4.5 //#pragma enable_d3d11_debug_symbols + #pragma multi_compile __ FFXM_HALF + #pragma multi_compile __ FFXM_FSR2_OPTION_REPROJECT_USE_LANCZOS_TYPE + #pragma multi_compile __ FFXM_FSR2_OPTION_HDR_COLOR_INPUT + #pragma multi_compile __ FFXM_FSR2_OPTION_LOW_RESOLUTION_MOTION_VECTORS + #pragma multi_compile __ FFXM_FSR2_OPTION_JITTERED_MOTION_VECTORS + #pragma multi_compile __ FFXM_FSR2_OPTION_APPLY_SHARPENING + #pragma multi_compile __ UNITY_FFXM_TEXTURE2D_X_ARRAY + #include "ffxm_fsr2_common.cginc" #include "shaders/ffxm_fsr2_vs.hlsl" #include "shaders/ffxm_fsr2_accumulate_pass_fs.hlsl" @@ -82,6 +106,8 @@ Shader "TND/ASR/ffx_fsr2_fs" #pragma target 4.5 //#pragma enable_d3d11_debug_symbols + #pragma multi_compile __ UNITY_FFXM_TEXTURE2D_X_ARRAY + #include "ffxm_fsr2_common.cginc" #include "shaders/ffxm_fsr2_vs.hlsl" #include "shaders/ffxm_fsr2_rcas_pass_fs.hlsl"