From 99f28af11d13bd4cfbfe6a0c8eda167e26c5f7e1 Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Wed, 26 Mar 2025 23:59:42 +0100 Subject: [PATCH] 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. --- .../Runtime/Effects/Upscaling/ASR/Runtime/AsrAssets.cs | 1 - .../ASR/Shaders/ffxm_fsr2_fragment_modern.shader | 10 +++++----- .../ASR/Shaders/ffxm_fsr2_lock_modern.compute | 3 ++- .../ASR/Shaders/ffxm_fsr2_luma_pyramid_legacy.compute | 8 +++++++- .../ASR/Shaders/ffxm_fsr2_luma_pyramid_modern.compute | 5 +++-- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Runtime/AsrAssets.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Runtime/AsrAssets.cs index 1d65342..7bdd2b7 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Runtime/AsrAssets.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Runtime/AsrAssets.cs @@ -70,7 +70,6 @@ namespace ArmASR case GraphicsDeviceType.Metal: case GraphicsDeviceType.PlayStation5: case GraphicsDeviceType.PlayStation5NGGC: - case GraphicsDeviceType.GameCoreXboxSeries: return modernShaders; default: return legacyShaders; diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fragment_modern.shader b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fragment_modern.shader index ec7f5a8..d922996 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fragment_modern.shader +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fragment_modern.shader @@ -12,7 +12,7 @@ Shader "TND/ASR/ffxm_fsr2_fragment_modern" #pragma vertex VertMain #pragma fragment main #pragma target 4.5 - #pragma only_renderers d3d11 vulkan metal ps5 xboxseries + #pragma only_renderers d3d11 vulkan metal ps5 #pragma use_dxc #pragma require Native16Bit //#pragma enable_d3d11_debug_symbols @@ -35,7 +35,7 @@ Shader "TND/ASR/ffxm_fsr2_fragment_modern" #pragma vertex VertMain #pragma fragment main #pragma target 4.5 - #pragma only_renderers d3d11 vulkan metal ps5 xboxseries + #pragma only_renderers d3d11 vulkan metal ps5 #pragma use_dxc #pragma require Native16Bit //#pragma enable_d3d11_debug_symbols @@ -62,7 +62,7 @@ Shader "TND/ASR/ffxm_fsr2_fragment_modern" #pragma vertex VertMain #pragma fragment main #pragma target 4.5 - #pragma only_renderers d3d11 vulkan metal ps5 xboxseries + #pragma only_renderers d3d11 vulkan metal ps5 #pragma use_dxc #pragma require Native16Bit //#pragma enable_d3d11_debug_symbols @@ -90,7 +90,7 @@ Shader "TND/ASR/ffxm_fsr2_fragment_modern" #pragma vertex VertMain #pragma fragment main #pragma target 4.5 - #pragma only_renderers d3d11 vulkan metal ps5 xboxseries + #pragma only_renderers d3d11 vulkan metal ps5 #pragma use_dxc #pragma require Native16Bit //#pragma enable_d3d11_debug_symbols @@ -120,7 +120,7 @@ Shader "TND/ASR/ffxm_fsr2_fragment_modern" #pragma vertex VertMain #pragma fragment main #pragma target 4.5 - #pragma only_renderers d3d11 vulkan metal ps5 xboxseries + #pragma only_renderers d3d11 vulkan metal ps5 #pragma use_dxc #pragma require Native16Bit //#pragma enable_d3d11_debug_symbols diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_lock_modern.compute b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_lock_modern.compute index 50138c7..8b1aca0 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_lock_modern.compute +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_lock_modern.compute @@ -1,6 +1,7 @@ #pragma kernel main -#pragma only_renderers d3d11 vulkan metal ps5 xboxseries +#pragma only_renderers d3d11 vulkan metal ps5 #pragma use_dxc +#pragma require Native16Bit //#pragma enable_d3d11_debug_symbols #pragma multi_compile __ FFXM_HALF diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_legacy.compute b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_legacy.compute index 04c03ac..d760c72 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_legacy.compute +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_legacy.compute @@ -10,7 +10,13 @@ #include "ffxm_fsr2_common.cginc" -// Disable wave operations altogether +// Enable wave operations for the platforms that support it +#if defined(SHADER_API_GAMECORE_XBOXSERIES) +#pragma require WaveBasic // Required for WaveGetLaneIndex +#pragma require WaveBallot // Required for WaveReadLaneAt +#pragma require QuadShuffle // Required for QuadReadAcross +#else #define FFXM_SPD_NO_WAVE_OPERATIONS +#endif #include "shaders/ffxm_fsr2_compute_luminance_pyramid_pass.hlsl" diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_modern.compute b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_modern.compute index a9d80c2..7848883 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_modern.compute +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_modern.compute @@ -1,6 +1,7 @@ #pragma kernel main -#pragma only_renderers d3d11 vulkan metal ps5 xboxseries +#pragma only_renderers d3d11 vulkan metal ps5 #pragma use_dxc +#pragma require Native16Bit //#pragma enable_d3d11_debug_symbols #pragma multi_compile __ FFXM_HALF @@ -13,7 +14,7 @@ #include "ffxm_fsr2_common.cginc" // Enable wave operations for the platforms that support it -#if (defined(SHADER_API_D3D12) || defined(SHADER_API_VULKAN) || defined(SHADER_API_METAL) || defined(SHADER_API_GAMECORE)) && !defined(SHADER_API_MOBILE) +#if (defined(SHADER_API_D3D12) || defined(SHADER_API_VULKAN) || defined(SHADER_API_METAL)) && !defined(SHADER_API_MOBILE) #pragma require WaveBasic // Required for WaveGetLaneIndex #pragma require WaveBallot // Required for WaveReadLaneAt #pragma require QuadShuffle // Required for QuadReadAcross