Browse Source

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.

armasr
Nico de Poel 10 months ago
parent
commit
99f28af11d
  1. 1
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Runtime/AsrAssets.cs
  2. 10
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fragment_modern.shader
  3. 3
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_lock_modern.compute
  4. 8
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_legacy.compute
  5. 5
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_luma_pyramid_modern.compute

1
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.Metal:
case GraphicsDeviceType.PlayStation5: case GraphicsDeviceType.PlayStation5:
case GraphicsDeviceType.PlayStation5NGGC: case GraphicsDeviceType.PlayStation5NGGC:
case GraphicsDeviceType.GameCoreXboxSeries:
return modernShaders; return modernShaders;
default: default:
return legacyShaders; return legacyShaders;

10
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 vertex VertMain
#pragma fragment main #pragma fragment main
#pragma target 4.5 #pragma target 4.5
#pragma only_renderers d3d11 vulkan metal ps5 xboxseries
#pragma only_renderers d3d11 vulkan metal ps5
#pragma use_dxc #pragma use_dxc
#pragma require Native16Bit #pragma require Native16Bit
//#pragma enable_d3d11_debug_symbols //#pragma enable_d3d11_debug_symbols
@ -35,7 +35,7 @@ Shader "TND/ASR/ffxm_fsr2_fragment_modern"
#pragma vertex VertMain #pragma vertex VertMain
#pragma fragment main #pragma fragment main
#pragma target 4.5 #pragma target 4.5
#pragma only_renderers d3d11 vulkan metal ps5 xboxseries
#pragma only_renderers d3d11 vulkan metal ps5
#pragma use_dxc #pragma use_dxc
#pragma require Native16Bit #pragma require Native16Bit
//#pragma enable_d3d11_debug_symbols //#pragma enable_d3d11_debug_symbols
@ -62,7 +62,7 @@ Shader "TND/ASR/ffxm_fsr2_fragment_modern"
#pragma vertex VertMain #pragma vertex VertMain
#pragma fragment main #pragma fragment main
#pragma target 4.5 #pragma target 4.5
#pragma only_renderers d3d11 vulkan metal ps5 xboxseries
#pragma only_renderers d3d11 vulkan metal ps5
#pragma use_dxc #pragma use_dxc
#pragma require Native16Bit #pragma require Native16Bit
//#pragma enable_d3d11_debug_symbols //#pragma enable_d3d11_debug_symbols
@ -90,7 +90,7 @@ Shader "TND/ASR/ffxm_fsr2_fragment_modern"
#pragma vertex VertMain #pragma vertex VertMain
#pragma fragment main #pragma fragment main
#pragma target 4.5 #pragma target 4.5
#pragma only_renderers d3d11 vulkan metal ps5 xboxseries
#pragma only_renderers d3d11 vulkan metal ps5
#pragma use_dxc #pragma use_dxc
#pragma require Native16Bit #pragma require Native16Bit
//#pragma enable_d3d11_debug_symbols //#pragma enable_d3d11_debug_symbols
@ -120,7 +120,7 @@ Shader "TND/ASR/ffxm_fsr2_fragment_modern"
#pragma vertex VertMain #pragma vertex VertMain
#pragma fragment main #pragma fragment main
#pragma target 4.5 #pragma target 4.5
#pragma only_renderers d3d11 vulkan metal ps5 xboxseries
#pragma only_renderers d3d11 vulkan metal ps5
#pragma use_dxc #pragma use_dxc
#pragma require Native16Bit #pragma require Native16Bit
//#pragma enable_d3d11_debug_symbols //#pragma enable_d3d11_debug_symbols

3
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 kernel main
#pragma only_renderers d3d11 vulkan metal ps5 xboxseries
#pragma only_renderers d3d11 vulkan metal ps5
#pragma use_dxc #pragma use_dxc
#pragma require Native16Bit
//#pragma enable_d3d11_debug_symbols //#pragma enable_d3d11_debug_symbols
#pragma multi_compile __ FFXM_HALF #pragma multi_compile __ FFXM_HALF

8
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" #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 #define FFXM_SPD_NO_WAVE_OPERATIONS
#endif
#include "shaders/ffxm_fsr2_compute_luminance_pyramid_pass.hlsl" #include "shaders/ffxm_fsr2_compute_luminance_pyramid_pass.hlsl"

5
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 kernel main
#pragma only_renderers d3d11 vulkan metal ps5 xboxseries
#pragma only_renderers d3d11 vulkan metal ps5
#pragma use_dxc #pragma use_dxc
#pragma require Native16Bit
//#pragma enable_d3d11_debug_symbols //#pragma enable_d3d11_debug_symbols
#pragma multi_compile __ FFXM_HALF #pragma multi_compile __ FFXM_HALF
@ -13,7 +14,7 @@
#include "ffxm_fsr2_common.cginc" #include "ffxm_fsr2_common.cginc"
// Enable wave operations for the platforms that support it // 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 WaveBasic // Required for WaveGetLaneIndex
#pragma require WaveBallot // Required for WaveReadLaneAt #pragma require WaveBallot // Required for WaveReadLaneAt
#pragma require QuadShuffle // Required for QuadReadAcross #pragma require QuadShuffle // Required for QuadReadAcross

Loading…
Cancel
Save