Browse Source

- Moved ResourceView into its own source file.

- Using texture arrays is now a boolean flag that can be set on dispatch, removing the need for HDRP-specific checks inside the FSR3 code and shaders.
- Debug view shader is no longer conditionally included.
- Reduced the number of multi-compile variants by removing unused keywords for each shader.
- Optimized temporary RT use; two resources can reuse the same generic intermediate temp RT.
- Reorganized some of the shader code to work nicer with the rest of the FidelityFX SDK sources.
fsr3.1
Nico de Poel 2 years ago
parent
commit
4ad9853a05
  1. 117
      Assets/Scripts/Core/Fsr3ShaderIDs.cs
  2. 32
      Assets/Scripts/Core/Fsr3Upscaler.cs
  3. 11
      Assets/Scripts/Core/Fsr3UpscalerAssets.cs
  4. 4
      Assets/Scripts/Core/Fsr3UpscalerCallbacks.cs
  5. 5
      Assets/Scripts/Core/Fsr3UpscalerContext.cs
  6. 16
      Assets/Scripts/Core/Fsr3UpscalerPass.cs
  7. 7
      Assets/Scripts/Core/Fsr3UpscalerResources.cs
  8. 55
      Assets/Scripts/Core/ResourceView.cs
  9. 11
      Assets/Scripts/Core/ResourceView.cs.meta
  10. 6
      Assets/Shaders/FSR3/ffx_fsr3upscaler_accumulate_pass.compute
  11. 7
      Assets/Shaders/FSR3/ffx_fsr3upscaler_autogen_reactive_pass.compute
  12. 10
      Assets/Shaders/FSR3/ffx_fsr3upscaler_debug_view_pass.compute
  13. 10
      Assets/Shaders/FSR3/ffx_fsr3upscaler_luma_instability_pass.compute
  14. 10
      Assets/Shaders/FSR3/ffx_fsr3upscaler_luma_pyramid_pass.compute
  15. 9
      Assets/Shaders/FSR3/ffx_fsr3upscaler_prepare_inputs_pass.compute
  16. 10
      Assets/Shaders/FSR3/ffx_fsr3upscaler_prepare_reactivity_pass.compute
  17. 10
      Assets/Shaders/FSR3/ffx_fsr3upscaler_rcas_pass.compute
  18. 10
      Assets/Shaders/FSR3/ffx_fsr3upscaler_shading_change_pass.compute
  19. 10
      Assets/Shaders/FSR3/ffx_fsr3upscaler_shading_change_pyramid_pass.compute
  20. 6
      Assets/Shaders/FSR3/ffx_fsr3upscaler_tcr_autogen_pass.compute
  21. 60
      Assets/Shaders/FSR3/ffx_fsr_unity_common.cginc
  22. 0
      Assets/Shaders/FSR3/ffx_fsr_unity_common.cginc.meta
  23. 2
      Assets/Shaders/FSR3/shaders.meta
  24. 0
      Assets/Shaders/FSR3/shaders/ffx_common_types.h
  25. 10
      Assets/Shaders/FSR3/shaders/ffx_common_types.h.meta
  26. 0
      Assets/Shaders/FSR3/shaders/ffx_core.h
  27. 10
      Assets/Shaders/FSR3/shaders/ffx_core.h.meta
  28. 0
      Assets/Shaders/FSR3/shaders/ffx_core_gpu_common.h
  29. 10
      Assets/Shaders/FSR3/shaders/ffx_core_gpu_common.h.meta
  30. 0
      Assets/Shaders/FSR3/shaders/ffx_core_gpu_common_half.h
  31. 10
      Assets/Shaders/FSR3/shaders/ffx_core_gpu_common_half.h.meta
  32. 0
      Assets/Shaders/FSR3/shaders/ffx_core_hlsl.h
  33. 10
      Assets/Shaders/FSR3/shaders/ffx_core_hlsl.h.meta
  34. 0
      Assets/Shaders/FSR3/shaders/ffx_core_portability.h
  35. 10
      Assets/Shaders/FSR3/shaders/ffx_core_portability.h.meta
  36. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_accumulate_pass.hlsl.meta
  37. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_autogen_reactive_pass.hlsl.meta
  38. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_debug_view_pass.hlsl.meta
  39. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_luma_instability_pass.hlsl.meta
  40. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_luma_pyramid_pass.hlsl.meta
  41. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_prepare_inputs_pass.hlsl.meta
  42. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_prepare_reactivity_pass.hlsl.meta
  43. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_rcas_pass.hlsl.meta
  44. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_shading_change_pass.hlsl.meta
  45. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_shading_change_pyramid_pass.hlsl.meta
  46. 2
      Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_tcr_autogen_pass.hlsl.meta
  47. 2
      Assets/Shaders/FSR3/shaders/fsr1.meta
  48. 0
      Assets/Shaders/FSR3/shaders/fsr1/ffx_fsr1.h
  49. 60
      Assets/Shaders/FSR3/shaders/fsr1/ffx_fsr1.h.meta
  50. 2
      Assets/Shaders/FSR3/shaders/fsr3upscaler.meta
  51. 10
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_accumulate.h.meta
  52. 62
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_callbacks_hlsl.h
  53. 10
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_callbacks_hlsl.h.meta
  54. 10
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_common.h.meta
  55. 22
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_debug_view.h.meta
  56. 22
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_instability.h.meta
  57. 2
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h
  58. 22
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h.meta
  59. 22
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h.meta
  60. 22
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h.meta
  61. 4
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas.h
  62. 10
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas.h.meta
  63. 10
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_reproject.h.meta
  64. 10
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_resources.h.meta
  65. 10
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_sample.h.meta
  66. 22
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change.h.meta
  67. 2
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h
  68. 22
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h.meta
  69. 10
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_tcr_autogen.h.meta
  70. 10
      Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_upsample.h.meta
  71. 68
      Assets/Shaders/FSR3/shaders/fsr3upscaler/fsr1/ffx_fsr1.h.meta
  72. 68
      Assets/Shaders/FSR3/shaders/fsr3upscaler/spd/ffx_spd.h.meta
  73. 2
      Assets/Shaders/FSR3/shaders/spd.meta
  74. 0
      Assets/Shaders/FSR3/shaders/spd/ffx_spd.h
  75. 60
      Assets/Shaders/FSR3/shaders/spd/ffx_spd.h.meta

117
Assets/Scripts/Core/Fsr3ShaderIDs.cs

@ -22,69 +22,70 @@ using UnityEngine;
namespace FidelityFX
{
internal static class Fsr3ShaderIDs
public static class Fsr3ShaderIDs
{
// Shader resource views, i.e. read-only bindings
internal static readonly int SrvInputColor = Shader.PropertyToID("r_input_color_jittered");
internal static readonly int SrvOpaqueOnly = Shader.PropertyToID("r_input_opaque_only");
internal static readonly int SrvInputMotionVectors = Shader.PropertyToID("r_input_motion_vectors");
internal static readonly int SrvInputDepth = Shader.PropertyToID("r_input_depth");
internal static readonly int SrvInputExposure = Shader.PropertyToID("r_input_exposure");
internal static readonly int SrvFrameInfo = Shader.PropertyToID("r_frame_info");
internal static readonly int SrvReactiveMask = Shader.PropertyToID("r_reactive_mask");
internal static readonly int SrvTransparencyAndCompositionMask = Shader.PropertyToID("r_transparency_and_composition_mask");
internal static readonly int SrvReconstructedPrevNearestDepth = Shader.PropertyToID("r_reconstructed_previous_nearest_depth");
internal static readonly int SrvDilatedMotionVectors = Shader.PropertyToID("r_dilated_motion_vectors");
internal static readonly int SrvDilatedDepth = Shader.PropertyToID("r_dilated_depth");
internal static readonly int SrvInternalUpscaled = Shader.PropertyToID("r_internal_upscaled_color");
internal static readonly int SrvAccumulation = Shader.PropertyToID("r_accumulation");
internal static readonly int SrvLumaHistory = Shader.PropertyToID("r_luma_history");
internal static readonly int SrvRcasInput = Shader.PropertyToID("r_rcas_input");
internal static readonly int SrvLanczosLut = Shader.PropertyToID("r_lanczos_lut");
internal static readonly int SrvSpdMips = Shader.PropertyToID("r_spd_mips");
internal static readonly int SrvDilatedReactiveMasks = Shader.PropertyToID("r_dilated_reactive_masks");
internal static readonly int SrvNewLocks = Shader.PropertyToID("r_new_locks");
internal static readonly int SrvFarthestDepth = Shader.PropertyToID("r_farthest_depth");
internal static readonly int SrvFarthestDepthMip1 = Shader.PropertyToID("r_farthest_depth_mip1");
internal static readonly int SrvShadingChange = Shader.PropertyToID("r_shading_change");
internal static readonly int SrvCurrentLuma = Shader.PropertyToID("r_current_luma");
internal static readonly int SrvPreviousLuma = Shader.PropertyToID("r_previous_luma");
internal static readonly int SrvLumaInstability = Shader.PropertyToID("r_luma_instability");
internal static readonly int SrvPrevColorPreAlpha = Shader.PropertyToID("r_input_prev_color_pre_alpha");
internal static readonly int SrvPrevColorPostAlpha = Shader.PropertyToID("r_input_prev_color_post_alpha");
public static readonly int SrvInputColor = Shader.PropertyToID("r_input_color_jittered");
public static readonly int SrvOpaqueOnly = Shader.PropertyToID("r_input_opaque_only");
public static readonly int SrvInputMotionVectors = Shader.PropertyToID("r_input_motion_vectors");
public static readonly int SrvInputDepth = Shader.PropertyToID("r_input_depth");
public static readonly int SrvInputExposure = Shader.PropertyToID("r_input_exposure");
public static readonly int SrvFrameInfo = Shader.PropertyToID("r_frame_info");
public static readonly int SrvReactiveMask = Shader.PropertyToID("r_reactive_mask");
public static readonly int SrvTransparencyAndCompositionMask = Shader.PropertyToID("r_transparency_and_composition_mask");
public static readonly int SrvReconstructedPrevNearestDepth = Shader.PropertyToID("r_reconstructed_previous_nearest_depth");
public static readonly int SrvDilatedMotionVectors = Shader.PropertyToID("r_dilated_motion_vectors");
public static readonly int SrvDilatedDepth = Shader.PropertyToID("r_dilated_depth");
public static readonly int SrvInternalUpscaled = Shader.PropertyToID("r_internal_upscaled_color");
public static readonly int SrvAccumulation = Shader.PropertyToID("r_accumulation");
public static readonly int SrvLumaHistory = Shader.PropertyToID("r_luma_history");
public static readonly int SrvRcasInput = Shader.PropertyToID("r_rcas_input");
public static readonly int SrvLanczosLut = Shader.PropertyToID("r_lanczos_lut");
public static readonly int SrvSpdMips = Shader.PropertyToID("r_spd_mips");
public static readonly int SrvDilatedReactiveMasks = Shader.PropertyToID("r_dilated_reactive_masks");
public static readonly int SrvNewLocks = Shader.PropertyToID("r_new_locks");
public static readonly int SrvFarthestDepth = Shader.PropertyToID("r_farthest_depth");
public static readonly int SrvFarthestDepthMip1 = Shader.PropertyToID("r_farthest_depth_mip1");
public static readonly int SrvShadingChange = Shader.PropertyToID("r_shading_change");
public static readonly int SrvCurrentLuma = Shader.PropertyToID("r_current_luma");
public static readonly int SrvPreviousLuma = Shader.PropertyToID("r_previous_luma");
public static readonly int SrvLumaInstability = Shader.PropertyToID("r_luma_instability");
public static readonly int SrvPrevColorPreAlpha = Shader.PropertyToID("r_input_prev_color_pre_alpha");
public static readonly int SrvPrevColorPostAlpha = Shader.PropertyToID("r_input_prev_color_post_alpha");
// Unordered access views, i.e. random read/write bindings
internal static readonly int UavReconstructedPrevNearestDepth = Shader.PropertyToID("rw_reconstructed_previous_nearest_depth");
internal static readonly int UavDilatedMotionVectors = Shader.PropertyToID("rw_dilated_motion_vectors");
internal static readonly int UavDilatedDepth = Shader.PropertyToID("rw_dilated_depth");
internal static readonly int UavInternalUpscaled = Shader.PropertyToID("rw_internal_upscaled_color");
internal static readonly int UavAccumulation = Shader.PropertyToID("rw_accumulation");
internal static readonly int UavLumaHistory = Shader.PropertyToID("rw_luma_history");
internal static readonly int UavUpscaledOutput = Shader.PropertyToID("rw_upscaled_output");
internal static readonly int UavDilatedReactiveMasks = Shader.PropertyToID("rw_dilated_reactive_masks");
internal static readonly int UavFrameInfo = Shader.PropertyToID("rw_frame_info");
internal static readonly int UavSpdAtomicCount = Shader.PropertyToID("rw_spd_global_atomic");
internal static readonly int UavNewLocks = Shader.PropertyToID("rw_new_locks");
internal static readonly int UavAutoReactive = Shader.PropertyToID("rw_output_autoreactive");
internal static readonly int UavShadingChange = Shader.PropertyToID("rw_shading_change");
internal static readonly int UavFarthestDepth = Shader.PropertyToID("rw_farthest_depth");
internal static readonly int UavFarthestDepthMip1 = Shader.PropertyToID("rw_farthest_depth_mip1");
internal static readonly int UavCurrentLuma = Shader.PropertyToID("rw_current_luma");
internal static readonly int UavLumaInstability = Shader.PropertyToID("rw_luma_instability");
internal static readonly int UavSpdMip0 = Shader.PropertyToID("rw_spd_mip0");
internal static readonly int UavSpdMip1 = Shader.PropertyToID("rw_spd_mip1");
internal static readonly int UavSpdMip2 = Shader.PropertyToID("rw_spd_mip2");
internal static readonly int UavSpdMip3 = Shader.PropertyToID("rw_spd_mip3");
internal static readonly int UavSpdMip4 = Shader.PropertyToID("rw_spd_mip4");
internal static readonly int UavSpdMip5 = Shader.PropertyToID("rw_spd_mip5");
internal static readonly int UavAutoComposition = Shader.PropertyToID("rw_output_autocomposition");
internal static readonly int UavPrevColorPreAlpha = Shader.PropertyToID("rw_output_prev_color_pre_alpha");
internal static readonly int UavPrevColorPostAlpha = Shader.PropertyToID("rw_output_prev_color_post_alpha");
public static readonly int UavReconstructedPrevNearestDepth = Shader.PropertyToID("rw_reconstructed_previous_nearest_depth");
public static readonly int UavDilatedMotionVectors = Shader.PropertyToID("rw_dilated_motion_vectors");
public static readonly int UavDilatedDepth = Shader.PropertyToID("rw_dilated_depth");
public static readonly int UavInternalUpscaled = Shader.PropertyToID("rw_internal_upscaled_color");
public static readonly int UavAccumulation = Shader.PropertyToID("rw_accumulation");
public static readonly int UavLumaHistory = Shader.PropertyToID("rw_luma_history");
public static readonly int UavUpscaledOutput = Shader.PropertyToID("rw_upscaled_output");
public static readonly int UavDilatedReactiveMasks = Shader.PropertyToID("rw_dilated_reactive_masks");
public static readonly int UavFrameInfo = Shader.PropertyToID("rw_frame_info");
public static readonly int UavSpdAtomicCount = Shader.PropertyToID("rw_spd_global_atomic");
public static readonly int UavNewLocks = Shader.PropertyToID("rw_new_locks");
public static readonly int UavAutoReactive = Shader.PropertyToID("rw_output_autoreactive");
public static readonly int UavShadingChange = Shader.PropertyToID("rw_shading_change");
public static readonly int UavFarthestDepth = Shader.PropertyToID("rw_farthest_depth");
public static readonly int UavFarthestDepthMip1 = Shader.PropertyToID("rw_farthest_depth_mip1");
public static readonly int UavCurrentLuma = Shader.PropertyToID("rw_current_luma");
public static readonly int UavLumaInstability = Shader.PropertyToID("rw_luma_instability");
public static readonly int UavIntermediate = Shader.PropertyToID("rw_intermediate_fp16x1");
public static readonly int UavSpdMip0 = Shader.PropertyToID("rw_spd_mip0");
public static readonly int UavSpdMip1 = Shader.PropertyToID("rw_spd_mip1");
public static readonly int UavSpdMip2 = Shader.PropertyToID("rw_spd_mip2");
public static readonly int UavSpdMip3 = Shader.PropertyToID("rw_spd_mip3");
public static readonly int UavSpdMip4 = Shader.PropertyToID("rw_spd_mip4");
public static readonly int UavSpdMip5 = Shader.PropertyToID("rw_spd_mip5");
public static readonly int UavAutoComposition = Shader.PropertyToID("rw_output_autocomposition");
public static readonly int UavPrevColorPreAlpha = Shader.PropertyToID("rw_output_prev_color_pre_alpha");
public static readonly int UavPrevColorPostAlpha = Shader.PropertyToID("rw_output_prev_color_post_alpha");
// Constant buffer bindings
internal static readonly int CbFsr3Upscaler = Shader.PropertyToID("cbFSR3Upscaler");
internal static readonly int CbSpd = Shader.PropertyToID("cbSPD");
internal static readonly int CbRcas = Shader.PropertyToID("cbRCAS");
internal static readonly int CbGenReactive = Shader.PropertyToID("cbGenerateReactive");
public static readonly int CbFsr3Upscaler = Shader.PropertyToID("cbFSR3Upscaler");
public static readonly int CbSpd = Shader.PropertyToID("cbSPD");
public static readonly int CbRcas = Shader.PropertyToID("cbRCAS");
public static readonly int CbGenReactive = Shader.PropertyToID("cbGenerateReactive");
}
}

32
Assets/Scripts/Core/Fsr3Upscaler.cs

@ -201,6 +201,7 @@ namespace FidelityFX
public float CameraFovAngleVertical;
public float ViewSpaceToMetersFactor;
public DispatchFlags Flags;
public bool UseTextureArrays; // Enable texture array bindings, primarily used for HDRP and XR
// EXPERIMENTAL reactive mask generation parameters
public bool EnableAutoReactive;
@ -309,35 +310,4 @@ namespace FidelityFX
public readonly uint dummy1;
}
}
/// <summary>
/// An immutable structure wrapping all of the necessary information to bind a specific buffer or attachment of a render target to a compute shader.
/// </summary>
public readonly struct ResourceView
{
/// <summary>
/// This value is the equivalent of not setting any value at all; all struct fields will have their default values.
/// It does not refer to a valid texture, therefore any variable set to this value should be checked for IsValid and reassigned before being bound to a shader.
/// </summary>
public static readonly ResourceView Unassigned = new ResourceView(default);
/// <summary>
/// This value contains a valid texture reference that can be bound to a shader, however it is just an empty placeholder texture.
/// Binding this to a shader can be seen as setting the texture variable inside the shader to null.
/// </summary>
public static readonly ResourceView None = new ResourceView(BuiltinRenderTextureType.None);
public ResourceView(in RenderTargetIdentifier renderTarget, RenderTextureSubElement subElement = RenderTextureSubElement.Default, int mipLevel = 0)
{
RenderTarget = renderTarget;
SubElement = subElement;
MipLevel = mipLevel;
}
public bool IsValid => !RenderTarget.Equals(default);
public readonly RenderTargetIdentifier RenderTarget;
public readonly RenderTextureSubElement SubElement;
public readonly int MipLevel;
}
}

11
Assets/Scripts/Core/Fsr3UpscalerAssets.cs

@ -27,6 +27,7 @@ namespace FidelityFX
/// Scriptable object containing all shader resources required by FidelityFX Super Resolution 3 (FSR3) Upscaler.
/// These can be stored in an asset file and referenced from a scene or prefab, avoiding the need to load the shaders from a Resources folder.
/// </summary>
[CreateAssetMenu(fileName = "FSR3 Upscaler Assets", menuName = "FidelityFX/FSR3 Upscaler Assets", order = 1103)]
public class Fsr3UpscalerAssets : ScriptableObject
{
public Fsr3UpscalerShaders shaders;
@ -71,13 +72,11 @@ namespace FidelityFX
/// <summary>
/// The compute shader used by the prepare inputs pass.
/// </summary>
[FormerlySerializedAs("reconstructPreviousDepthPass")]
public ComputeShader prepareInputsPass;
/// <summary>
/// The compute shader used by the luminance pyramid computation pass.
/// </summary>
[FormerlySerializedAs("computeLuminancePyramidPass")]
public ComputeShader lumaPyramidPass;
/// <summary>
@ -93,13 +92,11 @@ namespace FidelityFX
/// <summary>
/// The compute shader used by the prepare reactivity pass.
/// </summary>
[FormerlySerializedAs("depthClipPass")]
public ComputeShader prepareReactivityPass;
/// <summary>
/// The compute shader used by the luma instability pass.
/// </summary>
[FormerlySerializedAs("lockPass")]
public ComputeShader lumaInstabilityPass;
/// <summary>
@ -122,12 +119,10 @@ namespace FidelityFX
/// </summary>
public ComputeShader tcrAutoGenPass;
#if UNITY_EDITOR || DEVELOPMENT_BUILD
/// <summary>
/// The compute shader used to display a debug view.
/// </summary>
public ComputeShader debugViewPass;
#endif
/// <summary>
/// Returns a copy of this class and its contents.
@ -156,9 +151,7 @@ namespace FidelityFX
sharpenPass = Object.Instantiate(sharpenPass),
autoGenReactivePass = Object.Instantiate(autoGenReactivePass),
tcrAutoGenPass = Object.Instantiate(tcrAutoGenPass),
#if UNITY_EDITOR || DEVELOPMENT_BUILD
debugViewPass = Object.Instantiate(debugViewPass),
#endif
};
}
@ -178,9 +171,7 @@ namespace FidelityFX
Object.Destroy(sharpenPass);
Object.Destroy(autoGenReactivePass);
Object.Destroy(tcrAutoGenPass);
#if UNITY_EDITOR || DEVELOPMENT_BUILD
Object.Destroy(debugViewPass);
#endif
}
}
}

4
Assets/Scripts/Core/Fsr3UpscalerCallbacks.cs

@ -1,4 +1,4 @@
// Copyright (c) 2023 Nico de Poel
// Copyright (c) 2024 Nico de Poel
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@ -42,7 +42,7 @@ namespace FidelityFX
}
/// <summary>
/// Default implementation of IFsr3UpscalerCallbacks using simple Resources calls.
/// Default implementation of IFsr3UpscalerCallbacks.
/// These are fine for testing but a proper game will want to extend and override these methods.
/// </summary>
public class Fsr3UpscalerCallbacksBase: IFsr3UpscalerCallbacks

5
Assets/Scripts/Core/Fsr3UpscalerContext.cs

@ -162,6 +162,9 @@ namespace FidelityFX
{
DebugCheckDispatch(dispatchParams);
}
if (dispatchParams.UseTextureArrays)
commandBuffer.EnableShaderKeyword("UNITY_FSR_TEXTURE2D_X_ARRAY");
if (_firstExecution)
{
@ -288,6 +291,8 @@ namespace FidelityFX
_resourceFrameIndex = (_resourceFrameIndex + 1) % MaxQueuedFrames;
Fsr3UpscalerResources.DestroyAliasableResources(commandBuffer);
commandBuffer.DisableShaderKeyword("UNITY_FSR_TEXTURE2D_X_ARRAY");
}
public void GenerateReactiveMask(Fsr3Upscaler.GenerateReactiveDescription dispatchParams)

16
Assets/Scripts/Core/Fsr3UpscalerPass.cs

@ -71,7 +71,7 @@ namespace FidelityFX
{
if (shader == null)
{
throw new MissingReferenceException($"Shader for FSR3 Upscaler '{passName}' could not be loaded! Please ensure it is included in the project correctly.");
throw new MissingReferenceException($"Shader for FSR3 Upscaler pass '{passName}' could not be loaded! Please ensure it is included in the project correctly.");
}
ComputeShader = shader;
@ -93,13 +93,6 @@ namespace FidelityFX
if ((flags & Fsr3Upscaler.InitializationFlags.EnableDepthInverted) != 0) ComputeShader.EnableKeyword("FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH");
if (useLut) ComputeShader.EnableKeyword("FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE");
if ((flags & Fsr3Upscaler.InitializationFlags.EnableFP16Usage) != 0) ComputeShader.EnableKeyword("FFX_HALF");
// Inform the shader which render pipeline we're currently using
var pipeline = GraphicsSettings.currentRenderPipeline;
if (pipeline != null && pipeline.GetType().Name.Contains("HDRenderPipeline"))
{
ComputeShader.EnableKeyword("UNITY_FSR3UPSCALER_HDRP");
}
}
}
@ -124,6 +117,7 @@ namespace FidelityFX
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavDilatedMotionVectors, Resources.DilatedVelocity);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavDilatedDepth, Resources.DilatedDepth);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavReconstructedPrevNearestDepth, Resources.ReconstructedPrevNearestDepth);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavFarthestDepth, Fsr3ShaderIDs.UavIntermediate);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavCurrentLuma, Resources.Luma[frameIndex]);
commandBuffer.SetComputeConstantBufferParam(ComputeShader, Fsr3ShaderIDs.CbFsr3Upscaler, Constants, 0, Marshal.SizeOf<Fsr3Upscaler.UpscalerConstants>());
@ -147,7 +141,7 @@ namespace FidelityFX
protected override void DoScheduleDispatch(CommandBuffer commandBuffer, Fsr3Upscaler.DispatchDescription dispatchParams, int frameIndex, int dispatchX, int dispatchY)
{
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvCurrentLuma, Resources.Luma[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvFarthestDepth, Fsr3ShaderIDs.UavFarthestDepth);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvFarthestDepth, Fsr3ShaderIDs.UavIntermediate);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavSpdAtomicCount, Resources.SpdAtomicCounter);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavFrameInfo, Resources.FrameInfo);
@ -186,7 +180,6 @@ namespace FidelityFX
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvDilatedMotionVectors, Resources.DilatedVelocity);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvInputExposure, exposure.RenderTarget, exposure.MipLevel, exposure.SubElement);
// TODO: possibly the atomic counter might have to get cleared in-between passes. Check on MacOS whether we have issues with this or not.
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavSpdAtomicCount, Resources.SpdAtomicCounter);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavSpdMip0, Resources.SpdMips, 0);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavSpdMip1, Resources.SpdMips, 1);
@ -273,6 +266,7 @@ namespace FidelityFX
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvCurrentLuma, Resources.Luma[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavLumaHistory, Resources.LumaHistory[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavLumaInstability, Fsr3ShaderIDs.UavIntermediate);
commandBuffer.SetComputeConstantBufferParam(ComputeShader, Fsr3ShaderIDs.CbFsr3Upscaler, Constants, 0, Marshal.SizeOf<Fsr3Upscaler.UpscalerConstants>());
@ -332,7 +326,7 @@ namespace FidelityFX
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvLanczosLut, Resources.LanczosLut);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvFarthestDepthMip1, Fsr3ShaderIDs.UavFarthestDepthMip1);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvCurrentLuma, Resources.Luma[frameIndex]);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvLumaInstability, Fsr3ShaderIDs.UavLumaInstability);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvLumaInstability, Fsr3ShaderIDs.UavIntermediate);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.SrvInputColor, color.RenderTarget, color.MipLevel, color.SubElement);
commandBuffer.SetComputeTextureParam(ComputeShader, KernelIndex, Fsr3ShaderIDs.UavInternalUpscaled, Resources.InternalUpscaled[frameIndex]);

7
Assets/Scripts/Core/Fsr3UpscalerResources.cs

@ -148,9 +148,7 @@ namespace FidelityFX
Vector2Int maxRenderSizeDiv2 = maxRenderSize / 2;
// FSR3UPSCALER_IntermediateFp16x1: FFX_RESOURCE_USAGE_UAV, FFX_SURFACE_FORMAT_R16_FLOAT, FFX_RESOURCE_FLAGS_ALIASABLE
// TODO: see if these can be combined into one (this is a reusable temporary intermediate buffer used by different passes for different purposes)
commandBuffer.GetTemporaryRT(Fsr3ShaderIDs.UavFarthestDepth, maxRenderSize.x, maxRenderSize.y, 0, default, GraphicsFormat.R16_SFloat, 1, true);
commandBuffer.GetTemporaryRT(Fsr3ShaderIDs.UavLumaInstability, maxRenderSize.x, maxRenderSize.y, 0, default, GraphicsFormat.R16_SFloat, 1, true);
commandBuffer.GetTemporaryRT(Fsr3ShaderIDs.UavIntermediate, maxRenderSize.x, maxRenderSize.y, 0, default, GraphicsFormat.R16_SFloat, 1, true);
// FSR3UPSCALER_ShadingChange: FFX_RESOURCE_USAGE_UAV, FFX_SURFACE_FORMAT_R8_UNORM, FFX_RESOURCE_FLAGS_ALIASABLE
commandBuffer.GetTemporaryRT(Fsr3ShaderIDs.UavShadingChange, maxRenderSizeDiv2.x, maxRenderSizeDiv2.y, 0, default, GraphicsFormat.R8_UNorm, 1, true);
@ -172,8 +170,7 @@ namespace FidelityFX
commandBuffer.ReleaseTemporaryRT(Fsr3ShaderIDs.UavFarthestDepthMip1);
commandBuffer.ReleaseTemporaryRT(Fsr3ShaderIDs.UavNewLocks);
commandBuffer.ReleaseTemporaryRT(Fsr3ShaderIDs.UavShadingChange);
commandBuffer.ReleaseTemporaryRT(Fsr3ShaderIDs.UavLumaInstability);
commandBuffer.ReleaseTemporaryRT(Fsr3ShaderIDs.UavFarthestDepth);
commandBuffer.ReleaseTemporaryRT(Fsr3ShaderIDs.UavIntermediate);
}
private static void CreateDoubleBufferedResource(RenderTexture[] resource, string name, Vector2Int size, GraphicsFormat format)

55
Assets/Scripts/Core/ResourceView.cs

@ -0,0 +1,55 @@
// Copyright (c) 2024 Nico de Poel
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using UnityEngine.Rendering;
namespace FidelityFX
{
/// <summary>
/// An immutable structure wrapping all of the necessary information to bind a specific buffer or attachment of a render target to a compute shader.
/// </summary>
public readonly struct ResourceView
{
/// <summary>
/// This value is the equivalent of not setting any value at all; all struct fields will have their default values.
/// It does not refer to a valid texture, therefore any variable set to this value should be checked for IsValid and reassigned before being bound to a shader.
/// </summary>
public static readonly ResourceView Unassigned = new ResourceView(default);
/// <summary>
/// This value contains a valid texture reference that can be bound to a shader, however it is just an empty placeholder texture.
/// Binding this to a shader can be seen as setting the texture variable inside the shader to null.
/// </summary>
public static readonly ResourceView None = new ResourceView(BuiltinRenderTextureType.None);
public ResourceView(in RenderTargetIdentifier renderTarget, RenderTextureSubElement subElement = RenderTextureSubElement.Default, int mipLevel = 0)
{
RenderTarget = renderTarget;
SubElement = subElement;
MipLevel = mipLevel;
}
public bool IsValid => !RenderTarget.Equals(default);
public readonly RenderTargetIdentifier RenderTarget;
public readonly RenderTextureSubElement SubElement;
public readonly int MipLevel;
}
}

11
Assets/Scripts/Core/ResourceView.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: eb9fdfac33a070740b66520d88f43ab7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

6
Assets/Shaders/FSR3/ffx_fsr3upscaler_accumulate_pass.compute

@ -24,13 +24,11 @@
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
// Ensure the correct value is defined for this keyword, as it is used to select one of multiple sampler functions
#ifdef FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE

7
Assets/Shaders/FSR3/ffx_fsr3upscaler_autogen_reactive_pass.compute

@ -21,12 +21,9 @@
#pragma kernel CS
#pragma multi_compile_local __ FFX_HALF
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
#include "shaders/ffx_fsr3upscaler_autogen_reactive_pass.hlsl"

10
Assets/Shaders/FSR3/ffx_fsr3upscaler_debug_view_pass.compute

@ -21,15 +21,9 @@
#pragma kernel CS
#pragma multi_compile_local __ FFX_HALF
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
#include "shaders/ffx_fsr3upscaler_debug_view_pass.hlsl"

10
Assets/Shaders/FSR3/ffx_fsr3upscaler_luma_instability_pass.compute

@ -21,15 +21,9 @@
#pragma kernel CS
#pragma multi_compile_local __ FFX_HALF
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
#include "shaders/ffx_fsr3upscaler_luma_instability_pass.hlsl"

10
Assets/Shaders/FSR3/ffx_fsr3upscaler_luma_pyramid_pass.compute

@ -21,16 +21,10 @@
#pragma kernel CS
#pragma multi_compile_local __ FFX_HALF
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
// Wave operations require shader model 6.0; this can only be enabled when using DXC on D3D12
// These pragmas are commented out by default as Unity will sometimes ignore the #if's and try to enable these features anyway.

9
Assets/Shaders/FSR3/ffx_fsr3upscaler_prepare_inputs_pass.compute

@ -20,17 +20,12 @@
#pragma kernel CS
// TODO: figure out which of these defines are actually used by this shader (for all shader passes)
#pragma multi_compile_local __ FFX_HALF
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
#include "shaders/ffx_fsr3upscaler_prepare_inputs_pass.hlsl"

10
Assets/Shaders/FSR3/ffx_fsr3upscaler_prepare_reactivity_pass.compute

@ -21,15 +21,9 @@
#pragma kernel CS
#pragma multi_compile_local __ FFX_HALF
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
#include "shaders/ffx_fsr3upscaler_prepare_reactivity_pass.hlsl"

10
Assets/Shaders/FSR3/ffx_fsr3upscaler_rcas_pass.compute

@ -1,4 +1,4 @@
// Copyright (c) 2023 Nico de Poel
// Copyright (c) 2024 Nico de Poel
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@ -20,12 +20,8 @@
#pragma kernel CS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
#include "shaders/ffx_fsr3upscaler_rcas_pass.hlsl"

10
Assets/Shaders/FSR3/ffx_fsr3upscaler_shading_change_pass.compute

@ -21,15 +21,9 @@
#pragma kernel CS
#pragma multi_compile_local __ FFX_HALF
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
#include "shaders/ffx_fsr3upscaler_shading_change_pass.hlsl"

10
Assets/Shaders/FSR3/ffx_fsr3upscaler_shading_change_pyramid_pass.compute

@ -21,16 +21,10 @@
#pragma kernel CS
#pragma multi_compile_local __ FFX_HALF
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
// Wave operations require shader model 6.0; this can only be enabled when using DXC on D3D12
#define FFX_SPD_NO_WAVE_OPERATIONS

6
Assets/Shaders/FSR3/ffx_fsr3upscaler_tcr_autogen_pass.compute

@ -21,12 +21,10 @@
#pragma kernel CS
#pragma multi_compile_local __ FFX_HALF
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS
#pragma multi_compile_local __ FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH
#pragma multi_compile_local __ UNITY_FSR3UPSCALER_HDRP
#pragma multi_compile __ UNITY_FSR_TEXTURE2D_X_ARRAY
#include "ffx_fsr3upscaler_unity_common.cginc"
#include "ffx_fsr_unity_common.cginc"
#include "shaders/ffx_fsr3upscaler_tcr_autogen_pass.hlsl"

60
Assets/Shaders/FSR3/ffx_fsr3upscaler_unity_common.cginc → Assets/Shaders/FSR3/ffx_fsr_unity_common.cginc

@ -1,4 +1,4 @@
// Copyright (c) 2023 Nico de Poel
// Copyright (c) 2024 Nico de Poel
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@ -46,39 +46,37 @@
#endif
// Workaround for HDRP using texture arrays for its camera buffers on some platforms
// The below defines are copied from: Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/TextureXR.hlsl
#if defined(UNITY_FSR3UPSCALER_HDRP)
// Must be in sync with C# with property useTexArray in TextureXR.cs
#if ((defined(SHADER_API_D3D11) || defined(SHADER_API_D3D12)) && !defined(SHADER_API_XBOXONE) && !defined(SHADER_API_GAMECORE)) || defined(SHADER_API_PSSL) || defined(SHADER_API_VULKAN)
#define UNITY_TEXTURE2D_X_ARRAY_SUPPORTED
#endif
// Control if TEXTURE2D_X macros will expand to texture arrays
#if defined(UNITY_TEXTURE2D_X_ARRAY_SUPPORTED) && !defined(DISABLE_TEXTURE2D_X_ARRAY)
#define USE_TEXTURE2D_X_AS_ARRAY
#endif
// The below defines are adapted from: Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureXR.hlsl
#if ((defined(SHADER_API_D3D11) || defined(SHADER_API_D3D12)) && !defined(SHADER_API_XBOXONE) && !defined(SHADER_API_GAMECORE)) || defined(SHADER_API_PSSL) || defined(SHADER_API_VULKAN)
#define UNITY_TEXTURE2D_X_ARRAY_SUPPORTED
#endif
// Early defines for single-pass instancing
#if defined(STEREO_INSTANCING_ON) && defined(UNITY_TEXTURE2D_X_ARRAY_SUPPORTED)
#define UNITY_STEREO_INSTANCING_ENABLED
#endif
// Control if TEXTURE2D_X macros will expand to texture arrays
#if defined(UNITY_TEXTURE2D_X_ARRAY_SUPPORTED) && defined(UNITY_FSR_TEXTURE2D_X_ARRAY)
#define USE_TEXTURE2D_X_AS_ARRAY
#endif
// Helper macros to handle XR single-pass with Texture2DArray
#if defined(USE_TEXTURE2D_X_AS_ARRAY)
// Early defines for single-pass instancing
#if defined(STEREO_INSTANCING_ON) && defined(UNITY_TEXTURE2D_X_ARRAY_SUPPORTED)
#define UNITY_STEREO_INSTANCING_ENABLED
#endif
// Only single-pass stereo instancing used array indexing
#if defined(UNITY_STEREO_INSTANCING_ENABLED)
#define SLICE_ARRAY_INDEX unity_StereoEyeIndex
#else
#define SLICE_ARRAY_INDEX 0
#endif
// Helper macros to handle XR single-pass with Texture2DArray
#if defined(USE_TEXTURE2D_X_AS_ARRAY)
// Declare and sample camera buffers as texture arrays
#define UNITY_FSR3_TEX2D(type) Texture2DArray<type>
#define UNITY_FSR3_RWTEX2D(type) RWTexture2DArray<type>
#define UNITY_FSR3_POS(pxPos) FfxUInt32x3(pxPos, SLICE_ARRAY_INDEX)
#define UNITY_FSR3_UV(uv) FfxFloat32x3(uv, SLICE_ARRAY_INDEX)
#define UNITY_FSR3_GETDIMS(tex, w, h) { FfxUInt32 uElements; (tex).GetDimensions((w), (h), uElements); }
// Only single-pass stereo instancing used array indexing
#if defined(UNITY_STEREO_INSTANCING_ENABLED)
static uint unity_StereoEyeIndex;
#define SLICE_ARRAY_INDEX unity_StereoEyeIndex
#else
#define SLICE_ARRAY_INDEX 0
#endif
// Declare and sample camera buffers as texture arrays
#define UNITY_FSR_TEX2D(type) Texture2DArray<type>
#define UNITY_FSR_RWTEX2D(type) RWTexture2DArray<type>
#define UNITY_FSR_POS(pxPos) FfxUInt32x3(pxPos, SLICE_ARRAY_INDEX)
#define UNITY_FSR_UV(uv) FfxFloat32x3(uv, SLICE_ARRAY_INDEX)
#define UNITY_FSR_GETDIMS(tex, w, h) { FfxUInt32 uElements; (tex).GetDimensions((w), (h), uElements); }
#endif

0
Assets/Shaders/FSR3/ffx_fsr3upscaler_unity_common.cginc.meta → Assets/Shaders/FSR3/ffx_fsr_unity_common.cginc.meta

2
Assets/Shaders/FSR3/shaders.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8364d4f86c613ec4d999d062f5f773b8
guid: c3f8af1cab72f0e46acba11c5820d923
folderAsset: yes
DefaultImporter:
externalObjects: {}

0
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_common_types.h → Assets/Shaders/FSR3/shaders/ffx_common_types.h

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_common_types.h.meta → Assets/Shaders/FSR3/shaders/ffx_common_types.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7974b728d5c1b6d4a8a8e3965d03f96d
guid: ec0f8c94ee9930b438b99b82735d181b
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

0
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core.h → Assets/Shaders/FSR3/shaders/ffx_core.h

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core.h.meta → Assets/Shaders/FSR3/shaders/ffx_core.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b91c5f52b89ff554dacb51045a802ed8
guid: 223ad96bb47790e4d8658dd82ba950f3
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

0
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core_gpu_common.h → Assets/Shaders/FSR3/shaders/ffx_core_gpu_common.h

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core_gpu_common.h.meta → Assets/Shaders/FSR3/shaders/ffx_core_gpu_common.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 05b921699d1374a429e32afca13137e2
guid: 4950d6c78609df549a0ed96137bf3bf1
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

0
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core_gpu_common_half.h → Assets/Shaders/FSR3/shaders/ffx_core_gpu_common_half.h

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core_gpu_common_half.h.meta → Assets/Shaders/FSR3/shaders/ffx_core_gpu_common_half.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1bdb323791a91a5438ee8e1e63187840
guid: 93c5f50cadb9ff14cbf03fa7cb1de897
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

0
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core_hlsl.h → Assets/Shaders/FSR3/shaders/ffx_core_hlsl.h

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core_hlsl.h.meta → Assets/Shaders/FSR3/shaders/ffx_core_hlsl.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 299f67e8b7e1d1a48a577bf8b328ac92
guid: 47a04cb434355164b8da169fbd474688
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

0
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core_portability.h → Assets/Shaders/FSR3/shaders/ffx_core_portability.h

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_core_portability.h.meta → Assets/Shaders/FSR3/shaders/ffx_core_portability.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8d2ace0bd52e0e1438e08ddaccd3ba24
guid: 9dc8a5ba90431934588adf0dabbf0cdd
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_accumulate_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 507ab779c38eddb429cdcedf9c108d1b
guid: 28932314459baa6449098e1b5862470c
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_autogen_reactive_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 52cdb7a7c30cb614984908593ed19082
guid: 0731dfbd04968084582397e48795d9d8
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_debug_view_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6e10b90cb8c2cd74dabb4a577faa7c67
guid: 00c8328353e3dba449b5e3855add5a35
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_luma_instability_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 78e3794a851a9c4409a622bc569b195d
guid: 68eed10cb1a8742438be0ba0c08d5b05
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_luma_pyramid_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 781aaeb95f903984a905ef657085a673
guid: 10b66892c68bbe1408580a330cccb381
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_prepare_inputs_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 71725b1aad250484a83d8124d0d8bef1
guid: f6bb10da6010f8a479c9560de12f92f2
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_prepare_reactivity_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 38d0f427c34ecfa4bad25b31adc7d0f8
guid: 0ac3112d79ef65e4eb6f4787ffe37fdd
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_rcas_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9a15fc73170a9bc478801c8fa4d8d574
guid: 3e953864b9b462f468b64a78463b84aa
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_shading_change_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6edf1f8a51b98f84d858abb0cefb255f
guid: 503052090415bdf4c9307ea6c5aa94b6
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_shading_change_pyramid_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3fd145d1d6d4dfd4d9441cee231689bd
guid: 8a6fef31a72aae649803d98a0ced428d
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/ffx_fsr3upscaler_tcr_autogen_pass.hlsl.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 712d171118b59fc4fb28d0d487060d42
guid: 877b3428f6073db41b9fc80bb6c6d4d7
ShaderIncludeImporter:
externalObjects: {}
userData:

2
Assets/Shaders/FSR3/shaders/fsr3upscaler/fsr1.meta → Assets/Shaders/FSR3/shaders/fsr1.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 09438bc445e66204f970dc99ca8dae5a
guid: dafd228fb8a2f4e478fe1df6d38589f9
folderAsset: yes
DefaultImporter:
externalObjects: {}

0
Assets/Shaders/FSR3/shaders/fsr3upscaler/fsr1/ffx_fsr1.h → Assets/Shaders/FSR3/shaders/fsr1/ffx_fsr1.h

60
Assets/Shaders/FSR3/shaders/fsr1/ffx_fsr1.h.meta

@ -0,0 +1,60 @@
fileFormatVersion: 2
guid: e73be06d181f19f42a1e8f1cf6ebc92b
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Editor: 1
Exclude GameCoreScarlett: 1
Exclude GameCoreXboxOne: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude PS4: 1
Exclude PS5: 1
Exclude WebGL: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

2
Assets/Shaders/FSR3/shaders/fsr3upscaler.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ae9c6d015ae76544f9e8117e79ea862b
guid: 2c8d127ec4826a54cae3fe1e7e2c17b8
folderAsset: yes
DefaultImporter:
externalObjects: {}

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_accumulate.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3fc2f7a2c8c31324a949e1761bf599cc
guid: cab06bfc45670ef42915e0e483e2c823
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

62
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_callbacks_hlsl.h

@ -27,7 +27,7 @@
#pragma dxc diagnostic push
#pragma dxc diagnostic ignored "-Wambig-lit-shift"
#endif //__hlsl_dx_compiler
#include "ffx_core.h"
#include "../ffx_core.h"
#ifdef __hlsl_dx_compiler
#pragma dxc diagnostic pop
#endif //__hlsl_dx_compiler
@ -320,20 +320,20 @@ FfxUInt32x2 SPD_RenderSize()
#endif // #if defined(FSR3UPSCALER_BIND_CB_SPD)
// Declare and sample camera buffers as regular textures, unless overridden
#if !defined(UNITY_FSR3_TEX2D)
#define UNITY_FSR3_TEX2D(type) Texture2D<type>
#if !defined(UNITY_FSR_TEX2D)
#define UNITY_FSR_TEX2D(type) Texture2D<type>
#endif
#if !defined(UNITY_FSR3_RWTEX2D)
#define UNITY_FSR3_RWTEX2D(type) RWTexture2D<type>
#if !defined(UNITY_FSR_RWTEX2D)
#define UNITY_FSR_RWTEX2D(type) RWTexture2D<type>
#endif
#if !defined(UNITY_FSR3_POS)
#define UNITY_FSR3_POS(pxPos) (pxPos)
#if !defined(UNITY_FSR_POS)
#define UNITY_FSR_POS(pxPos) (pxPos)
#endif
#if !defined(UNITY_FSR3_UV)
#define UNITY_FSR3_UV(uv) (uv)
#if !defined(UNITY_FSR_UV)
#define UNITY_FSR_UV(uv) (uv)
#endif
#if !defined(UNITY_FSR3_GETDIMS)
#define UNITY_FSR3_GETDIMS(tex, w, h) (tex).GetDimensions((w), (h))
#if !defined(UNITY_FSR_GETDIMS)
#define UNITY_FSR_GETDIMS(tex, w, h) (tex).GetDimensions((w), (h))
#endif
SamplerState s_PointClamp : register(s0);
@ -359,85 +359,85 @@ FfxFloat32x2 SampleSPDMipLevel(FfxFloat32x2 fUV, FfxUInt32 mipLevel)
#endif
#if defined(FSR3UPSCALER_BIND_SRV_INPUT_DEPTH)
UNITY_FSR3_TEX2D(FfxFloat32) r_input_depth : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_INPUT_DEPTH);
UNITY_FSR_TEX2D(FfxFloat32) r_input_depth : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_INPUT_DEPTH);
FfxFloat32 LoadInputDepth(FfxUInt32x2 iPxPos)
{
return r_input_depth[UNITY_FSR3_POS(iPxPos)];
return r_input_depth[UNITY_FSR_POS(iPxPos)];
}
FfxFloat32 SampleInputDepth(FfxFloat32x2 fUV)
{
return r_input_depth.SampleLevel(s_LinearClamp, UNITY_FSR3_UV(fUV), 0).x;
return r_input_depth.SampleLevel(s_LinearClamp, UNITY_FSR_UV(fUV), 0).x;
}
#endif
#if defined(FSR3UPSCALER_BIND_SRV_REACTIVE_MASK)
UNITY_FSR3_TEX2D(FfxFloat32) r_reactive_mask : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_REACTIVE_MASK);
UNITY_FSR_TEX2D(FfxFloat32) r_reactive_mask : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_REACTIVE_MASK);
FfxFloat32 LoadReactiveMask(FfxUInt32x2 iPxPos)
{
return r_reactive_mask[UNITY_FSR3_POS(iPxPos)];
return r_reactive_mask[UNITY_FSR_POS(iPxPos)];
}
FfxInt32x2 GetReactiveMaskResourceDimensions()
{
FfxUInt32 uWidth;
FfxUInt32 uHeight;
UNITY_FSR3_GETDIMS(r_reactive_mask, uWidth, uHeight);
UNITY_FSR_GETDIMS(r_reactive_mask, uWidth, uHeight);
return FfxInt32x2(uWidth, uHeight);
}
FfxFloat32 SampleReactiveMask(FfxFloat32x2 fUV)
{
return r_reactive_mask.SampleLevel(s_LinearClamp, UNITY_FSR3_UV(fUV), 0).x;
return r_reactive_mask.SampleLevel(s_LinearClamp, UNITY_FSR_UV(fUV), 0).x;
}
#endif
#if defined(FSR3UPSCALER_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK)
UNITY_FSR3_TEX2D(FfxFloat32) r_transparency_and_composition_mask : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK);
UNITY_FSR_TEX2D(FfxFloat32) r_transparency_and_composition_mask : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK);
FfxFloat32 LoadTransparencyAndCompositionMask(FfxUInt32x2 iPxPos)
{
return r_transparency_and_composition_mask[UNITY_FSR3_POS(iPxPos)];
return r_transparency_and_composition_mask[UNITY_FSR_POS(iPxPos)];
}
FfxInt32x2 GetTransparencyAndCompositionMaskResourceDimensions()
{
FfxUInt32 uWidth;
FfxUInt32 uHeight;
UNITY_FSR3_GETDIMS(r_transparency_and_composition_mask, uWidth, uHeight);
UNITY_FSR_GETDIMS(r_transparency_and_composition_mask, uWidth, uHeight);
return FfxInt32x2(uWidth, uHeight);
}
FfxFloat32 SampleTransparencyAndCompositionMask(FfxFloat32x2 fUV)
{
return r_transparency_and_composition_mask.SampleLevel(s_LinearClamp, UNITY_FSR3_UV(fUV), 0).x;
return r_transparency_and_composition_mask.SampleLevel(s_LinearClamp, UNITY_FSR_UV(fUV), 0).x;
}
#endif
#if defined(FSR3UPSCALER_BIND_SRV_INPUT_COLOR)
UNITY_FSR3_TEX2D(FfxFloat32x4) r_input_color_jittered : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_INPUT_COLOR);
UNITY_FSR_TEX2D(FfxFloat32x4) r_input_color_jittered : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_INPUT_COLOR);
FfxFloat32x3 LoadInputColor(FfxUInt32x2 iPxPos)
{
return r_input_color_jittered[UNITY_FSR3_POS(iPxPos)].rgb;
return r_input_color_jittered[UNITY_FSR_POS(iPxPos)].rgb;
}
FfxFloat32x3 SampleInputColor(FfxFloat32x2 fUV)
{
return r_input_color_jittered.SampleLevel(s_LinearClamp, UNITY_FSR3_UV(fUV), 0).rgb;
return r_input_color_jittered.SampleLevel(s_LinearClamp, UNITY_FSR_UV(fUV), 0).rgb;
}
#endif
#if defined(FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS)
UNITY_FSR3_TEX2D(FfxFloat32x4) r_input_motion_vectors : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS);
UNITY_FSR_TEX2D(FfxFloat32x4) r_input_motion_vectors : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS);
FfxFloat32x2 LoadInputMotionVector(FfxUInt32x2 iPxDilatedMotionVectorPos)
{
FfxFloat32x2 fSrcMotionVector = r_input_motion_vectors[UNITY_FSR3_POS(iPxDilatedMotionVectorPos)].xy;
FfxFloat32x2 fSrcMotionVector = r_input_motion_vectors[UNITY_FSR_POS(iPxDilatedMotionVectorPos)].xy;
FfxFloat32x2 fUvMotionVector = fSrcMotionVector * MotionVectorScale();
@ -515,11 +515,11 @@ void StoreInternalColorAndWeight(FfxUInt32x2 iPxPos, FfxFloat32x4 fColorAndWeigh
#endif
#if defined(FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT)
UNITY_FSR3_RWTEX2D(FfxFloat32x4) rw_upscaled_output : FFX_FSR3UPSCALER_DECLARE_UAV(FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT);
UNITY_FSR_RWTEX2D(FfxFloat32x4) rw_upscaled_output : FFX_FSR3UPSCALER_DECLARE_UAV(FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT);
void StoreUpscaledOutput(FfxUInt32x2 iPxPos, FfxFloat32x3 fColor)
{
rw_upscaled_output[UNITY_FSR3_POS(iPxPos)] = FfxFloat32x4(fColor, 1.f);
rw_upscaled_output[UNITY_FSR_POS(iPxPos)] = FfxFloat32x4(fColor, 1.f);
}
#endif
@ -830,11 +830,11 @@ void StoreDilatedReactiveMasks(FFX_PARAMETER_IN FfxUInt32x2 iPxPos, FFX_PARAMETE
#endif
#if defined(FSR3UPSCALER_BIND_SRV_INPUT_OPAQUE_ONLY)
UNITY_FSR3_TEX2D(FfxFloat32x4) r_input_opaque_only : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_INPUT_OPAQUE_ONLY);
UNITY_FSR_TEX2D(FfxFloat32x4) r_input_opaque_only : FFX_FSR3UPSCALER_DECLARE_SRV(FSR3UPSCALER_BIND_SRV_INPUT_OPAQUE_ONLY);
FfxFloat32x3 LoadOpaqueOnly(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos)
{
return r_input_opaque_only[UNITY_FSR3_POS(iPxPos)].xyz;
return r_input_opaque_only[UNITY_FSR_POS(iPxPos)].xyz;
}
#endif

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_callbacks_hlsl.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ba849fdeb042e7f458c81408414db834
guid: aef945ff764c453428c8c4759706228d
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_common.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6a638bec681caac4fa8e2ca198726694
guid: 16bb355abb68c044983f42086cf3eb7e
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

22
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_debug_view.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 182c05fb699007e4cb9010b200259150
guid: 9c5c756c93605b6428eaae6c8aaabbe5
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -37,6 +37,24 @@ PluginImporter:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

22
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_instability.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ccf5158f46f46d040b6142a6c7cb1d75
guid: c34dbb67d00358d4b9de0a9fb0e0ace2
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -37,6 +37,24 @@ PluginImporter:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

2
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h

@ -168,7 +168,7 @@ FfxFloat16x4 SpdReduce4H(FfxFloat16x4 v0, FfxFloat16x4 v1, FfxFloat16x4 v2, FfxF
}
#endif
#include "spd/ffx_spd.h"
#include "../spd/ffx_spd.h"
void ComputeAutoExposure(FfxUInt32x3 WorkGroupId, FfxUInt32 LocalThreadIndex)
{

22
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3f5a9f1fd09f2e54a978bc20e89ea326
guid: 5138e351a00fc914f973d2495f9aa07f
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -37,6 +37,24 @@ PluginImporter:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

22
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8c3e6a508446fc34590d9b426d75ae30
guid: b08f1fd2bbf082242b930cb94652872c
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -37,6 +37,24 @@ PluginImporter:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

22
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d3e61797324ec384b96b9c14d17b34d1
guid: 0070b6300195a7649a899fe0ed099c82
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -37,6 +37,24 @@ PluginImporter:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

4
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas.h

@ -23,7 +23,7 @@
#define GROUP_SIZE 8
#define FSR_RCAS_DENOISE 1
#include "ffx_core.h"
#include "../ffx_core.h"
void WriteUpscaledOutput(FFX_MIN16_U2 iPxHrPos, FfxFloat32x3 fUpscaledColor)
{
@ -41,7 +41,7 @@ FfxFloat32x4 FsrRcasLoadF(FfxInt32x2 p)
}
void FsrRcasInputF(inout FfxFloat32 r, inout FfxFloat32 g, inout FfxFloat32 b) {}
#include "fsr1/ffx_fsr1.h"
#include "../fsr1/ffx_fsr1.h"
void CurrFilter(FFX_MIN16_U2 pos)
{

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 692efb7cec0df67408a583a7ff34146a
guid: dc2e80d2251e46c4d9af5696c3061fab
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_reproject.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9d893016eebb2564f9a66b80afb0849f
guid: 2bcf78cbd908b664cb9c656e28b430d4
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_resources.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b5a95a38dcfaf3946a5095bbbc42939a
guid: 0a6f299994574d641a6a2f864d6b78b7
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_sample.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: dcb900c9deecd06419a8a4c10c305890
guid: 0c406ac147d40644fab8636a35029185
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

22
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c473fdf032dbf5142a97d6c5c40ebb12
guid: d20f9266c072698448f3b51d3d478520
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -37,6 +37,24 @@ PluginImporter:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

2
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h

@ -275,7 +275,7 @@ FfxFloat16x4 SpdReduce4H(FfxFloat16x4 v0, FfxFloat16x4 v1, FfxFloat16x4 v2, FfxF
}
#endif
#include "spd/ffx_spd.h"
#include "../spd/ffx_spd.h"
void ComputeShadingChangePyramid(FfxUInt32x3 WorkGroupId, FfxUInt32 LocalThreadIndex)
{

22
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 26c560eb3a1c18645ab5a44c238e39f8
guid: fac4b69395377df409c7677a54515cd8
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -37,6 +37,24 @@ PluginImporter:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_tcr_autogen.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f01d5a8fbd1f34a4ea8d971755a21b6c
guid: 21f8219a8876f77478e60862240a41f8
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

10
Assets/Shaders/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_upsample.h.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3e7832c4a9154414f9eaa125acfe6cd5
guid: 06167cdbc8ec55e4ab6913f7b5f1abf8
PluginImporter:
externalObjects: {}
serializedVersion: 2
@ -7,7 +7,7 @@ PluginImporter:
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
@ -43,12 +43,6 @@ PluginImporter:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:

68
Assets/Shaders/FSR3/shaders/fsr3upscaler/fsr1/ffx_fsr1.h.meta

@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: 628e23510f46ef44bbf0035ce9a63be0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Editor: 1
Exclude GameCoreScarlett: 1
Exclude GameCoreXboxOne: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude PS4: 1
Exclude PS5: 1
Exclude WebGL: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

68
Assets/Shaders/FSR3/shaders/fsr3upscaler/spd/ffx_spd.h.meta

@ -1,68 +0,0 @@
fileFormatVersion: 2
guid: face65176ee3b82498bd0b8fed0ddacd
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Editor: 1
Exclude GameCoreScarlett: 1
Exclude GameCoreXboxOne: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude PS4: 1
Exclude PS5: 1
Exclude WebGL: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:

2
Assets/Shaders/FSR3/shaders/fsr3upscaler/spd.meta → Assets/Shaders/FSR3/shaders/spd.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0f03de1579ac3294595ae4f40106b7a2
guid: bd7cab5c46d4cd740ae57c03c8789ca4
folderAsset: yes
DefaultImporter:
externalObjects: {}

0
Assets/Shaders/FSR3/shaders/fsr3upscaler/spd/ffx_spd.h → Assets/Shaders/FSR3/shaders/spd/ffx_spd.h

60
Assets/Shaders/FSR3/shaders/spd/ffx_spd.h.meta

@ -0,0 +1,60 @@
fileFormatVersion: 2
guid: fe8e621d12c641c4297675f3015697fc
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 1
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Editor: 1
Exclude GameCoreScarlett: 1
Exclude GameCoreXboxOne: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude PS4: 1
Exclude PS5: 1
Exclude WebGL: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save