diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs index 0e5f483a..527b35ec 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs @@ -203,7 +203,7 @@ namespace UnityEditor.Rendering.HighDefinition { var v = EditorGUILayout.EnumPopup( HDRenderPipelineUI.Styles.FSR2QualitySettingContent, - (UnityEngine.AMD.FSR2Quality)p.fidelityFX2SuperResolutionQuality.intValue); + (UnityEngine.Rendering.HighDefinition.AMD.FSR2Quality)p.fidelityFX2SuperResolutionQuality.intValue); p.fidelityFX2SuperResolutionQuality.intValue = (int)(object)v; } EditorGUI.indentLevel--; diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs index 0af15bbe..29ec7516 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs @@ -734,7 +734,7 @@ namespace UnityEditor.Rendering.HighDefinition { var v = EditorGUILayout.EnumPopup( Styles.FSR2QualitySettingContent, - (UnityEngine.AMD.FSR2Quality) + (UnityEngine.Rendering.HighDefinition.AMD.FSR2Quality) serialized.renderPipelineSettings.dynamicResolutionSettings.FSR2QualitySetting.intValue); serialized.renderPipelineSettings.dynamicResolutionSettings.FSR2QualitySetting.intValue = (int)(object)v; } diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/FSR2WrapperUpscaler.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/FSR2WrapperUpscaler.cs index 8f5f7dc3..aec822fa 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/FSR2WrapperUpscaler.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/FSR2WrapperUpscaler.cs @@ -1,4 +1,6 @@ -namespace UnityEngine.Rendering.HighDefinition.AMD +using System; + +namespace UnityEngine.Rendering.HighDefinition.AMD { public class FSR2WrapperUpscaler: UpscalerPlugin { @@ -25,7 +27,7 @@ public override FSR2Context CreateFeature(CommandBuffer cmd, in FSR2CommandInitializationData initSettings) { var wrappedInitSettings = initSettings.ToWrapped(); - return new FSR2WrappedContext(_wrappedDevice.CreateFeature(cmd, in wrappedInitSettings)); + return new FSR2WrappedContext(_wrappedDevice.CreateFeature(cmd, in wrappedInitSettings), in initSettings); } public override void DestroyFeature(CommandBuffer cmd, FSR2Context fsrContext) @@ -42,12 +44,14 @@ public override bool GetRenderResolutionFromQualityMode(FSR2Quality qualityMode, uint displayWidth, uint displayHeight, out uint renderWidth, out uint renderHeight) { - return _wrappedDevice.GetRenderResolutionFromQualityMode((UnityEngine.AMD.FSR2Quality)(qualityMode - 2), displayWidth, displayHeight, out renderWidth, out renderHeight); + var quality = (UnityEngine.AMD.FSR2Quality)Math.Max(0, (int)qualityMode - 2); + return _wrappedDevice.GetRenderResolutionFromQualityMode(quality, displayWidth, displayHeight, out renderWidth, out renderHeight); } public override float GetUpscaleRatioFromQualityMode(FSR2Quality qualityMode) { - return _wrappedDevice.GetUpscaleRatioFromQualityMode((UnityEngine.AMD.FSR2Quality)(qualityMode - 2)); + var quality = (UnityEngine.AMD.FSR2Quality)Math.Max(0, (int)qualityMode - 2); + return _wrappedDevice.GetUpscaleRatioFromQualityMode(quality); } } @@ -61,9 +65,10 @@ private FSR2CommandExecutionData _executeData; public override ref FSR2CommandExecutionData executeData => ref _executeData; - internal FSR2WrappedContext(UnityEngine.AMD.FSR2Context wrappedContext) + internal FSR2WrappedContext(UnityEngine.AMD.FSR2Context wrappedContext, in FSR2CommandInitializationData initData) { WrappedContext = wrappedContext; + _initData = initData; } internal void SyncExecuteData()