From 80691adeee3a68cf853a3d8fcda71bdd07f5999e Mon Sep 17 00:00:00 2001 From: Lukas Chodosevicius Date: Wed, 6 May 2020 13:20:01 +0300 Subject: [PATCH 1/8] Adding adaptive performance as optional dependency --- ...y.RenderPipelines.Universal.Runtime.asmdef | 8 +- .../Runtime/UniversalRenderPipeline.cs | 76 +++++++++++++++++++ 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef b/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef index 7cb5802784f..d77138e708b 100644 --- a/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef +++ b/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef @@ -3,7 +3,8 @@ "references": [ "GUID:d60799ab2a985554ea1a39cd38695018", "GUID:df380645f10b7bc4b97d4f5eb6303d95", - "GUID:ab67fb10353d84448ac887a7367cbda8" + "GUID:ab67fb10353d84448ac887a7367cbda8", + "GUID:7dbf32976982c98448af054f2512cb79" ], "includePlatforms": [], "excludePlatforms": [], @@ -18,6 +19,11 @@ "expression": "0.0.1", "define": "VISUAL_EFFECT_GRAPH_0_0_1_OR_NEWER" }, + { + "name": "com.unity.adaptiveperformance", + "expression": "2.1.0-preview.1", + "define": "ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER" + }, { "name": "com.unity.modules.vr", "expression": "1.0.0", diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs index 48a05552d62..eaa79559cdc 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs @@ -184,6 +184,9 @@ public static void RenderSingleCamera(ScriptableRenderContext context, Camera ca } InitializeCameraData(camera, additionalCameraData, true, out var cameraData); +#if ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER + ApplyAdaptivePerformance(ref cameraData); +#endif RenderSingleCamera(context, cameraData, cameraData.postProcessEnabled); } @@ -230,6 +233,10 @@ static void RenderSingleCamera(ScriptableRenderContext context, CameraData camer var cullResults = context.Cull(ref cullingParameters); InitializeRenderingData(asset, ref cameraData, ref cullResults, anyPostProcessingEnabled, out var renderingData); +#if ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER + ApplyAdaptivePerformance(ref renderingData); +#endif + renderer.Setup(context, ref renderingData); renderer.Execute(context, ref renderingData); } @@ -320,6 +327,9 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera #endif UpdateVolumeFramework(baseCamera, baseCameraAdditionalData); InitializeCameraData(baseCamera, baseCameraAdditionalData, !isStackedRendering, out var baseCameraData); +#if ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER + ApplyAdaptivePerformance(ref baseCameraData); +#endif RenderSingleCamera(context, baseCameraData, anyPostProcessingEnabled); EndCameraRendering(context, baseCamera); @@ -807,5 +817,71 @@ static void SetupPerFrameShaderConstants() // Used when subtractive mode is selected Shader.SetGlobalVector(PerFrameBuffer._SubtractiveShadowColor, CoreUtils.ConvertSRGBToActiveColorSpace(RenderSettings.subtractiveShadowColor)); } + +#if ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER + static void ApplyAdaptivePerformance(ref CameraData cameraData) + { + var noFrontToBackOpaqueFlags = SortingCriteria.SortingLayer | SortingCriteria.RenderQueue | SortingCriteria.OptimizeStateChanges | SortingCriteria.CanvasOrder; + if (AdaptivePerformance.AdaptivePerformanceRenderSettings.SkipFrontToBackSorting) + cameraData.defaultOpaqueSortFlags = noFrontToBackOpaqueFlags; + + var MaxShadowDistanceMultiplier = AdaptivePerformance.AdaptivePerformanceRenderSettings.MaxShadowDistanceMultiplier; + cameraData.maxShadowDistance *= MaxShadowDistanceMultiplier; + + var RenderScaleMultiplier = AdaptivePerformance.AdaptivePerformanceRenderSettings.RenderScaleMultiplier; + cameraData.renderScale *= RenderScaleMultiplier; + + // TODO + if (!cameraData.isStereoEnabled) + { + cameraData.cameraTargetDescriptor.width = (int)(cameraData.camera.pixelWidth * cameraData.renderScale); + cameraData.cameraTargetDescriptor.height = (int)(cameraData.camera.pixelHeight * cameraData.renderScale); + } + + var antialiasingQualityIndex = (int)cameraData.antialiasingQuality - AdaptivePerformance.AdaptivePerformanceRenderSettings.AntiAliasingQualityBias; + if (antialiasingQualityIndex < 0) + cameraData.antialiasing = AntialiasingMode.None; + cameraData.antialiasingQuality = (AntialiasingQuality)Mathf.Clamp(antialiasingQualityIndex, (int)AntialiasingQuality.Low, (int)AntialiasingQuality.High); + } + static void ApplyAdaptivePerformance(ref RenderingData renderingData) + { + if (AdaptivePerformance.AdaptivePerformanceRenderSettings.SkipDynamicBatching) + renderingData.supportsDynamicBatching = false; + + var MainLightShadowmapResultionMultiplier = AdaptivePerformance.AdaptivePerformanceRenderSettings.MainLightShadowmapResultionMultiplier; + renderingData.shadowData.mainLightShadowmapWidth = (int)(renderingData.shadowData.mainLightShadowmapWidth * MainLightShadowmapResultionMultiplier); + renderingData.shadowData.mainLightShadowmapHeight = (int)(renderingData.shadowData.mainLightShadowmapHeight * MainLightShadowmapResultionMultiplier); + + var MainLightShadowCascadesCountBias = AdaptivePerformance.AdaptivePerformanceRenderSettings.MainLightShadowCascadesCountBias; + renderingData.shadowData.mainLightShadowCascadesCount = Mathf.Clamp(renderingData.shadowData.mainLightShadowCascadesCount - MainLightShadowCascadesCountBias, 0, 4); + + var shadowQualityIndex = AdaptivePerformance.AdaptivePerformanceRenderSettings.ShadowQualityBias; + for (int i = 0; i < shadowQualityIndex; i++) + { + if (renderingData.shadowData.supportsSoftShadows) + { + renderingData.shadowData.supportsSoftShadows = false; + continue; + } + + if (renderingData.shadowData.supportsAdditionalLightShadows) + { + renderingData.shadowData.supportsAdditionalLightShadows = false; + continue; + } + + if (renderingData.shadowData.supportsMainLightShadows) + { + renderingData.shadowData.supportsMainLightShadows = false; + continue; + } + + break; + } + + if (AdaptivePerformance.AdaptivePerformanceRenderSettings.LutBias >= 1 && renderingData.postProcessingData.lutSize == 32) + renderingData.postProcessingData.lutSize = 16; + } +#endif } } From 366dd23224e95f1900e5d4782055fe81131f3093 Mon Sep 17 00:00:00 2001 From: Ricardas Jonaitis Date: Fri, 15 May 2020 15:26:15 +0300 Subject: [PATCH 2/8] Update adaptive performance package version and defines --- .../Unity.RenderPipelines.Universal.Runtime.asmdef | 4 ++-- .../Runtime/UniversalRenderPipeline.cs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef b/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef index d77138e708b..577d3bf02eb 100644 --- a/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef +++ b/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef @@ -21,8 +21,8 @@ }, { "name": "com.unity.adaptiveperformance", - "expression": "2.1.0-preview.1", - "define": "ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER" + "expression": "2.0.0-preview.7", + "define": "ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER" }, { "name": "com.unity.modules.vr", diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs index eaa79559cdc..a68c2210e10 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs @@ -184,7 +184,7 @@ public static void RenderSingleCamera(ScriptableRenderContext context, Camera ca } InitializeCameraData(camera, additionalCameraData, true, out var cameraData); -#if ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER +#if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER ApplyAdaptivePerformance(ref cameraData); #endif RenderSingleCamera(context, cameraData, cameraData.postProcessEnabled); @@ -233,7 +233,7 @@ static void RenderSingleCamera(ScriptableRenderContext context, CameraData camer var cullResults = context.Cull(ref cullingParameters); InitializeRenderingData(asset, ref cameraData, ref cullResults, anyPostProcessingEnabled, out var renderingData); -#if ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER +#if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER ApplyAdaptivePerformance(ref renderingData); #endif @@ -327,7 +327,7 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera #endif UpdateVolumeFramework(baseCamera, baseCameraAdditionalData); InitializeCameraData(baseCamera, baseCameraAdditionalData, !isStackedRendering, out var baseCameraData); -#if ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER +#if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER ApplyAdaptivePerformance(ref baseCameraData); #endif RenderSingleCamera(context, baseCameraData, anyPostProcessingEnabled); @@ -818,7 +818,7 @@ static void SetupPerFrameShaderConstants() Shader.SetGlobalVector(PerFrameBuffer._SubtractiveShadowColor, CoreUtils.ConvertSRGBToActiveColorSpace(RenderSettings.subtractiveShadowColor)); } -#if ADAPTIVE_PERFORMANCE_2_1_0_OR_NEWER +#if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER static void ApplyAdaptivePerformance(ref CameraData cameraData) { var noFrontToBackOpaqueFlags = SortingCriteria.SortingLayer | SortingCriteria.RenderQueue | SortingCriteria.OptimizeStateChanges | SortingCriteria.CanvasOrder; From 4649769100d8b79752ba0f7a3d06485a32a3f58d Mon Sep 17 00:00:00 2001 From: Ricardas Jonaitis Date: Fri, 15 May 2020 15:24:16 +0300 Subject: [PATCH 3/8] Add enable flag for adaptive performance in URP asset --- ...ty.RenderPipelines.Universal.Editor.asmdef | 8 +++++- .../UniversalRenderPipelineAssetEditor.cs | 27 +++++++++++++++++++ .../Data/UniversalRenderPipelineAsset.cs | 9 +++++++ .../Runtime/UniversalRenderPipeline.cs | 9 ++++--- 4 files changed, 49 insertions(+), 4 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef b/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef index 9b647c6acbc..0a79a4f0217 100644 --- a/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef +++ b/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef @@ -17,5 +17,11 @@ "precompiledReferences": [], "autoReferenced": true, "defineConstraints": [], - "versionDefines": [] + "versionDefines": [ + { + "name": "com.unity.adaptiveperformance", + "expression": "2.0.0-preview.7", + "define": "ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER" + } + ] } \ No newline at end of file diff --git a/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAssetEditor.cs b/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAssetEditor.cs index 4455a549d0a..0732bbe932f 100644 --- a/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAssetEditor.cs +++ b/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAssetEditor.cs @@ -18,6 +18,7 @@ internal class Styles public static GUIContent shadowSettingsText = EditorGUIUtility.TrTextContent("Shadows"); public static GUIContent postProcessingSettingsText = EditorGUIUtility.TrTextContent("Post-processing"); public static GUIContent advancedSettingsText = EditorGUIUtility.TrTextContent("Advanced"); + public static GUIContent adaptivePerformanceText = EditorGUIUtility.TrTextContent("Adaptive Performance"); // General public static GUIContent rendererHeaderText = EditorGUIUtility.TrTextContent("Renderer List", "Lists all the renderers available to this Render Pipeline Asset."); @@ -68,6 +69,9 @@ internal class Styles public static GUIContent debugLevel = EditorGUIUtility.TrTextContent("Debug Level", "Controls the level of debug information generated by the render pipeline. When Profiling is selected, the pipeline provides detailed profiling tags."); public static GUIContent shaderVariantLogLevel = EditorGUIUtility.TrTextContent("Shader Variant Log Level", "Controls the level logging in of shader variants information is outputted when a build is performed. Information will appear in the Unity console when the build finishes."); + // Adaptive performance settings + public static GUIContent useAdaptivePerformance = EditorGUIUtility.TrTextContent("Use adaptive performance", "Allows Adaptive Performance to adjust rendering quality during runtime"); + // Renderer List Messages public static GUIContent rendererListDefaultMessage = EditorGUIUtility.TrTextContent("Cannot remove Default Renderer", @@ -90,6 +94,7 @@ internal class Styles SavedBool m_ShadowSettingsFoldout; SavedBool m_PostProcessingSettingsFoldout; SavedBool m_AdvancedSettingsFoldout; + SavedBool m_AdaptivePerformanceFoldout; SerializedProperty m_RendererDataProp; SerializedProperty m_DefaultRendererProp; @@ -133,6 +138,8 @@ internal class Styles SerializedProperty m_ColorGradingMode; SerializedProperty m_ColorGradingLutSize; + SerializedProperty m_UseAdaptivePerformance; + public override void OnInspectorGUI() { serializedObject.Update(); @@ -143,6 +150,9 @@ public override void OnInspectorGUI() DrawShadowSettings(); DrawPostProcessingSettings(); DrawAdvancedSettings(); +#if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER + DrawAdaptivePerformance(); +#endif serializedObject.ApplyModifiedProperties(); } @@ -155,6 +165,7 @@ void OnEnable() m_ShadowSettingsFoldout = new SavedBool($"{target.GetType()}.ShadowSettingsFoldout", false); m_PostProcessingSettingsFoldout = new SavedBool($"{target.GetType()}.PostProcessingSettingsFoldout", false); m_AdvancedSettingsFoldout = new SavedBool($"{target.GetType()}.AdvancedSettingsFoldout", false); + m_AdaptivePerformanceFoldout = new SavedBool($"{target.GetType()}.AdaptivePerformanceFoldout", false); m_RendererDataProp = serializedObject.FindProperty("m_RendererDataList"); m_DefaultRendererProp = serializedObject.FindProperty("m_DefaultRendererIndex"); @@ -198,6 +209,8 @@ void OnEnable() m_ColorGradingMode = serializedObject.FindProperty("m_ColorGradingMode"); m_ColorGradingLutSize = serializedObject.FindProperty("m_ColorGradingLutSize"); + m_UseAdaptivePerformance = serializedObject.FindProperty("m_UseAdaptivePerformance"); + selectedLightRenderingMode = (LightRenderingMode)m_AdditionalLightsRenderingModeProp.intValue; } @@ -381,6 +394,20 @@ void DrawAdvancedSettings() EditorGUILayout.EndFoldoutHeaderGroup(); } + void DrawAdaptivePerformance() + { + m_AdaptivePerformanceFoldout.value = EditorGUILayout.BeginFoldoutHeaderGroup(m_AdaptivePerformanceFoldout.value, Styles.adaptivePerformanceText); + if (m_AdaptivePerformanceFoldout.value) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_UseAdaptivePerformance, Styles.useAdaptivePerformance); + EditorGUI.indentLevel--; + EditorGUILayout.Space(); + EditorGUILayout.Space(); + } + EditorGUILayout.EndFoldoutHeaderGroup(); + } + void DrawRendererListLayout(ReorderableList list, SerializedProperty prop) { list.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => diff --git a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs index c5f5ceda457..f544fe28aa4 100644 --- a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs +++ b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs @@ -155,6 +155,9 @@ public class UniversalRenderPipelineAsset : RenderPipelineAsset, ISerializationC [SerializeField] bool m_MixedLightingSupported = true; [SerializeField] PipelineDebugLevel m_DebugLevel = PipelineDebugLevel.Disabled; + // Adaptive performance settings + [SerializeField] bool m_UseAdaptivePerformance = false; + // Post-processing settings [SerializeField] ColorGradingMode m_ColorGradingMode = ColorGradingMode.LowDynamicRange; [SerializeField] int m_ColorGradingLutSize = 32; @@ -618,6 +621,12 @@ public int colorGradingLutSize set { m_ColorGradingLutSize = Mathf.Clamp(value, k_MinLutSize, k_MaxLutSize); } } + public bool useAdaptivePerformance + { + get { return m_UseAdaptivePerformance; } + set { m_UseAdaptivePerformance = value; } + } + public override Material defaultMaterial { get { return GetMaterial(DefaultMaterialType.Standard); } diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs index a68c2210e10..8a3ccbd9766 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs @@ -185,7 +185,8 @@ public static void RenderSingleCamera(ScriptableRenderContext context, Camera ca InitializeCameraData(camera, additionalCameraData, true, out var cameraData); #if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER - ApplyAdaptivePerformance(ref cameraData); + if (asset.useAdaptivePerformance) + ApplyAdaptivePerformance(ref cameraData); #endif RenderSingleCamera(context, cameraData, cameraData.postProcessEnabled); } @@ -234,7 +235,8 @@ static void RenderSingleCamera(ScriptableRenderContext context, CameraData camer InitializeRenderingData(asset, ref cameraData, ref cullResults, anyPostProcessingEnabled, out var renderingData); #if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER - ApplyAdaptivePerformance(ref renderingData); + if (asset.useAdaptivePerformance) + ApplyAdaptivePerformance(ref renderingData); #endif renderer.Setup(context, ref renderingData); @@ -328,7 +330,8 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera UpdateVolumeFramework(baseCamera, baseCameraAdditionalData); InitializeCameraData(baseCamera, baseCameraAdditionalData, !isStackedRendering, out var baseCameraData); #if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER - ApplyAdaptivePerformance(ref baseCameraData); + if (asset.useAdaptivePerformance) + ApplyAdaptivePerformance(ref baseCameraData); #endif RenderSingleCamera(context, baseCameraData, anyPostProcessingEnabled); EndCameraRendering(context, baseCamera); From 28e2f213bd4144e46c7f3d92cef3d0d304e61388 Mon Sep 17 00:00:00 2001 From: Ricardas Jonaitis Date: Fri, 15 May 2020 17:25:47 +0300 Subject: [PATCH 4/8] Add Adaptive performance reference to URP Editor asmdef --- .../Editor/Unity.RenderPipelines.Universal.Editor.asmdef | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef b/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef index 0a79a4f0217..4b9a2f17853 100644 --- a/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef +++ b/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef @@ -6,7 +6,8 @@ "GUID:a35efad8797223d499f8c68b1f545dbc", "GUID:df380645f10b7bc4b97d4f5eb6303d95", "GUID:3eae0364be2026648bf74846acb8a731", - "GUID:be0903cd8e1546f498710afdc59db5eb" + "GUID:be0903cd8e1546f498710afdc59db5eb", + "GUID:9604b18aafdbc9346bceb5e19ac9c746" ], "includePlatforms": [ "Editor" From 14405da1853b591a8fb133289e3298fbfca61ccb Mon Sep 17 00:00:00 2001 From: Ricardas Jonaitis Date: Fri, 15 May 2020 18:18:42 +0300 Subject: [PATCH 5/8] Revert "Add Adaptive performance reference to URP Editor asmdef" This reverts commit 28e2f213bd4144e46c7f3d92cef3d0d304e61388. --- .../Editor/Unity.RenderPipelines.Universal.Editor.asmdef | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef b/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef index 4b9a2f17853..0a79a4f0217 100644 --- a/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef +++ b/com.unity.render-pipelines.universal/Editor/Unity.RenderPipelines.Universal.Editor.asmdef @@ -6,8 +6,7 @@ "GUID:a35efad8797223d499f8c68b1f545dbc", "GUID:df380645f10b7bc4b97d4f5eb6303d95", "GUID:3eae0364be2026648bf74846acb8a731", - "GUID:be0903cd8e1546f498710afdc59db5eb", - "GUID:9604b18aafdbc9346bceb5e19ac9c746" + "GUID:be0903cd8e1546f498710afdc59db5eb" ], "includePlatforms": [ "Editor" From 3555f11ea48b6d1cd50ccf532d0c51f21cd4d101 Mon Sep 17 00:00:00 2001 From: Ricardas Jonaitis Date: Tue, 19 May 2020 19:50:00 +0300 Subject: [PATCH 6/8] Enable adaptive performance by default if available --- .../Runtime/Data/UniversalRenderPipelineAsset.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs index f544fe28aa4..8b5e2e3c7d2 100644 --- a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs +++ b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs @@ -156,7 +156,7 @@ public class UniversalRenderPipelineAsset : RenderPipelineAsset, ISerializationC [SerializeField] PipelineDebugLevel m_DebugLevel = PipelineDebugLevel.Disabled; // Adaptive performance settings - [SerializeField] bool m_UseAdaptivePerformance = false; + [SerializeField] bool m_UseAdaptivePerformance = true; // Post-processing settings [SerializeField] ColorGradingMode m_ColorGradingMode = ColorGradingMode.LowDynamicRange; From b1f1939a2d432aa23dcc60296f8ba5186df8ac4f Mon Sep 17 00:00:00 2001 From: Ricardas Jonaitis Date: Wed, 27 May 2020 19:12:14 +0300 Subject: [PATCH 7/8] Add adaptive performance documentation --- .../Documentation~/universalrp-asset.md | 11 +++++++++++ .../Runtime/Data/UniversalRenderPipelineAsset.cs | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/com.unity.render-pipelines.universal/Documentation~/universalrp-asset.md b/com.unity.render-pipelines.universal/Documentation~/universalrp-asset.md index 1b704512706..17c386a4755 100644 --- a/com.unity.render-pipelines.universal/Documentation~/universalrp-asset.md +++ b/com.unity.render-pipelines.universal/Documentation~/universalrp-asset.md @@ -16,6 +16,7 @@ In the URP, you can configure settings for: - [__Shadows__](#shadows) - [__Post-processing__](#post-processing) - [__Advanced__](#advanced) +- [__Adaptive Performance__](#adaptive-performance) @@ -100,3 +101,13 @@ This section allows you to fine-tune less commonly changed settings, which impac | __Mixed Lighting__ | Enable [Mixed Lighting](https://docs.unity3d.com/Manual/LightMode-Mixed.html), to tell the pipeline to include mixed lighting shader variants in the build. | | __Debug Level__ | Set the level of debug information that the render pipeline generates. The values are:
**Disabled**: Debugging is disabled. This is the default.
**Profiling**: Makes the render pipeline provide detailed information tags, which you can see in the FrameDebugger. | | __Shader Variant Log Level__ | Set the level of information about Shader Stripping and Shader Variants you want to display when Unity finishes a build. Values are:
**Disabled**: Unity doesn’t log anything.
**Only Universal**: Unity logs information for all of the [URP Shaders](shaders-in-universalrp.md).
**All**: Unity logs information for all Shaders in your build.
You can see the information in Console panel when your build has finished. | + + + +### Adaptive Performance + +This section appears if Adaptive Performance package is installed. It allows to change settings how Adaptive performance and render pipeline interact. + +| __Property__ | __Description__ | +| ----------------------- | ------------------------------------------------------------ | +| __Use adaptive performance__ | Allows Adaptive Performance to adjust rendering quality during runtime. | \ No newline at end of file diff --git a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs index 8b5e2e3c7d2..828b0763f89 100644 --- a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs +++ b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs @@ -621,6 +621,10 @@ public int colorGradingLutSize set { m_ColorGradingLutSize = Mathf.Clamp(value, k_MinLutSize, k_MaxLutSize); } } + /// + /// Set to true to allow Adaptive performance to modify graphics quality settings during runtime. + /// Only applicable when Adaptive performance package is available. + /// public bool useAdaptivePerformance { get { return m_UseAdaptivePerformance; } From 77bacc8e0c4bac9e863abbb387acba803cc52080 Mon Sep 17 00:00:00 2001 From: Ricardas Jonaitis Date: Thu, 28 May 2020 19:24:34 +0300 Subject: [PATCH 8/8] Update changelog.md --- com.unity.render-pipelines.universal/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index a87d4577664..76ea1488b1f 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +### Added +- Added option to enable/disable Adaptive Performance when it's package is available. + ### Changed - The 2D Renderer now supports camera stacking.