Browse Source

Fixed a few small issues and allow selection of higher FSR2 quality modes in UI

master
Nico de Poel 2 years ago
parent
commit
8d6d215388
  1. 2
      com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs
  2. 2
      com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs
  3. 15
      com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/FSR2WrapperUpscaler.cs

2
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--;

2
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;
}

15
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()

Loading…
Cancel
Save