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( var v = EditorGUILayout.EnumPopup(
HDRenderPipelineUI.Styles.FSR2QualitySettingContent, HDRenderPipelineUI.Styles.FSR2QualitySettingContent,
(UnityEngine.AMD.FSR2Quality)p.fidelityFX2SuperResolutionQuality.intValue);
(UnityEngine.Rendering.HighDefinition.AMD.FSR2Quality)p.fidelityFX2SuperResolutionQuality.intValue);
p.fidelityFX2SuperResolutionQuality.intValue = (int)(object)v; p.fidelityFX2SuperResolutionQuality.intValue = (int)(object)v;
} }
EditorGUI.indentLevel--; 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( var v = EditorGUILayout.EnumPopup(
Styles.FSR2QualitySettingContent, Styles.FSR2QualitySettingContent,
(UnityEngine.AMD.FSR2Quality)
(UnityEngine.Rendering.HighDefinition.AMD.FSR2Quality)
serialized.renderPipelineSettings.dynamicResolutionSettings.FSR2QualitySetting.intValue); serialized.renderPipelineSettings.dynamicResolutionSettings.FSR2QualitySetting.intValue);
serialized.renderPipelineSettings.dynamicResolutionSettings.FSR2QualitySetting.intValue = (int)(object)v; 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 public class FSR2WrapperUpscaler: UpscalerPlugin
{ {
@ -25,7 +27,7 @@
public override FSR2Context CreateFeature(CommandBuffer cmd, in FSR2CommandInitializationData initSettings) public override FSR2Context CreateFeature(CommandBuffer cmd, in FSR2CommandInitializationData initSettings)
{ {
var wrappedInitSettings = initSettings.ToWrapped(); 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) 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) 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) 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; private FSR2CommandExecutionData _executeData;
public override ref FSR2CommandExecutionData executeData => ref _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; WrappedContext = wrappedContext;
_initData = initData;
} }
internal void SyncExecuteData() internal void SyncExecuteData()

Loading…
Cancel
Save