diff --git a/Runtime/FSR2/Fsr2.cs b/Runtime/FSR2/Fsr2.cs index 4259b6e..8c29447 100644 --- a/Runtime/FSR2/Fsr2.cs +++ b/Runtime/FSR2/Fsr2.cs @@ -194,6 +194,7 @@ namespace FidelityFX public float CameraFar; public float CameraFovAngleVertical; public float ViewSpaceToMetersFactor; + public bool UseTextureArrays; // Enable texture array bindings, primarily used for HDRP and XR // EXPERIMENTAL reactive mask generation parameters public bool EnableAutoReactive; diff --git a/Runtime/FSR2/Fsr2Context.cs b/Runtime/FSR2/Fsr2Context.cs index f85c47b..75679a0 100644 --- a/Runtime/FSR2/Fsr2Context.cs +++ b/Runtime/FSR2/Fsr2Context.cs @@ -146,6 +146,9 @@ namespace FidelityFX DebugCheckDispatch(dispatchParams); } + if (dispatchParams.UseTextureArrays) + commandBuffer.EnableShaderKeyword("UNITY_FSR_TEXTURE2D_X_ARRAY"); + if (_firstExecution) { commandBuffer.SetRenderTarget(_resources.LockStatus[0]); @@ -267,6 +270,8 @@ namespace FidelityFX _resourceFrameIndex = (_resourceFrameIndex + 1) % MaxQueuedFrames; Fsr2Resources.DestroyAliasableResources(commandBuffer); + + commandBuffer.DisableShaderKeyword("UNITY_FSR_TEXTURE2D_X_ARRAY"); } public void GenerateReactiveMask(Fsr2.GenerateReactiveDescription dispatchParams) diff --git a/Runtime/FSR3/Fsr3Upscaler.cs b/Runtime/FSR3/Fsr3Upscaler.cs index 313c6cf..30b873c 100644 --- a/Runtime/FSR3/Fsr3Upscaler.cs +++ b/Runtime/FSR3/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; diff --git a/Runtime/FSR3/Fsr3UpscalerContext.cs b/Runtime/FSR3/Fsr3UpscalerContext.cs index 3dccb54..80769c8 100644 --- a/Runtime/FSR3/Fsr3UpscalerContext.cs +++ b/Runtime/FSR3/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)