From 57846f41d04d8152f8b4e51b4443c9b38f4ca0d8 Mon Sep 17 00:00:00 2001 From: Anis Date: Thu, 17 Sep 2020 12:19:09 +0200 Subject: [PATCH 1/3] Fixed the dependecy of FrameSettings (MSAA, ClearGBuffer, DepthPrepassWithDeferred) (case 1277620). --- .../CHANGELOG.md | 3 +- .../Settings/FrameSettingsUI.Drawers.cs | 29 +++++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/com.unity.render-pipelines.high-definition/CHANGELOG.md b/com.unity.render-pipelines.high-definition/CHANGELOG.md index 98deeab0605..d952996dc96 100644 --- a/com.unity.render-pipelines.high-definition/CHANGELOG.md +++ b/com.unity.render-pipelines.high-definition/CHANGELOG.md @@ -77,7 +77,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fix for lookdev toggling renderers that are set to non editable or are hidden in the inspector. - Fixed issue with mipmap debug mode not properly resetting full screen mode (and viceversa). - Added unsupported message when using tile debug mode with MSAA. - +- Fixed the dependecy of FrameSettings (MSAA, ClearGBuffer, DepthPrepassWithDeferred) (case 1277620). + ### Changed - Preparation pass for RTSSShadows to be supported by render graph. - Add tooltips with the full name of the (graphics) compositor properties to properly show large names that otherwise are clipped by the UI (case 1263590) diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs index 41f55135aa8..f2279370890 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs @@ -171,12 +171,13 @@ static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, bool hdrpAssetSupportForward = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly; bool hdrpAssetSupportDeferred = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly; + bool hdrpAssetIsForward = hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly; + bool hdrpAssetIsDeffered = hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly; + bool frameSettingsOverrideToForward = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Forward; bool frameSettingsOverrideToDeferred = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Deferred; bool defaultForwardUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Forward; - bool defaultDefferedUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Deferred; - bool msaaEnablable = hdrpAssetSupportForward && hdrpSettings.supportMSAA && (frameSettingsOverrideToForward || defaultForwardUsed); - bool depthPrepassEnablable = hdrpAssetSupportDeferred && (defaultDefferedUsed || frameSettingsOverrideToDeferred); + bool msaaEnablable = (hdrpAssetSupportForward && hdrpSettings.supportMSAA && (frameSettingsOverrideToForward || defaultForwardUsed)) || (hdrpAssetIsForward && hdrpSettings.supportMSAA); area.AmmendInfo(FrameSettingsField.MSAA, overrideable: () => msaaEnablable, overridedDefaultValue: msaaEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.MSAA), @@ -194,6 +195,9 @@ static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } }); + + bool defaultDefferedUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Deferred; + bool depthPrepassEnablable = (hdrpAssetSupportDeferred && (defaultDefferedUsed || frameSettingsOverrideToDeferred)) || (hdrpAssetIsDeffered); area.AmmendInfo(FrameSettingsField.DepthPrepassWithDeferredRendering, overrideable: () => depthPrepassEnablable, overridedDefaultValue: depthPrepassEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.DepthPrepassWithDeferredRendering), @@ -212,6 +216,25 @@ static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, } }); + bool clearGBufferEnablable = (hdrpAssetSupportDeferred && (defaultDefferedUsed || frameSettingsOverrideToDeferred)) ||(hdrpAssetIsDeffered); + area.AmmendInfo(FrameSettingsField.ClearGBuffers, + overrideable: () => clearGBufferEnablable, + overridedDefaultValue: clearGBufferEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.ClearGBuffers), + customOverrideable: () => + { + switch (hdrpSettings.supportedLitShaderMode) + { + case RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly: + return false; + case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: + return true; + case RenderPipelineSettings.SupportedLitShaderMode.Both: + return frameSettingsOverrideToDeferred || defaultDefferedUsed; + default: + throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); + } + }); + area.AmmendInfo(FrameSettingsField.RayTracing, overrideable: () => hdrpSettings.supportRayTracing); area.AmmendInfo(FrameSettingsField.MotionVectors, overrideable: () => hdrpSettings.supportMotionVectors); area.AmmendInfo(FrameSettingsField.ObjectMotionVectors, overrideable: () => hdrpSettings.supportMotionVectors); From da34e7848a63f8db1332c283100b6616038e5de1 Mon Sep 17 00:00:00 2001 From: Anis Date: Mon, 28 Sep 2020 09:44:05 +0200 Subject: [PATCH 2/3] fixing typos --- .../Settings/FrameSettingsUI.Drawers.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs index f2279370890..b0dcb17ed2a 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs @@ -172,7 +172,7 @@ static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, bool hdrpAssetSupportForward = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly; bool hdrpAssetSupportDeferred = hdrpSettings.supportedLitShaderMode != RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly; bool hdrpAssetIsForward = hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.ForwardOnly; - bool hdrpAssetIsDeffered = hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly; + bool hdrpAssetIsDeferred = hdrpSettings.supportedLitShaderMode == RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly; bool frameSettingsOverrideToForward = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Forward; bool frameSettingsOverrideToDeferred = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Deferred; @@ -196,8 +196,8 @@ static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, } }); - bool defaultDefferedUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Deferred; - bool depthPrepassEnablable = (hdrpAssetSupportDeferred && (defaultDefferedUsed || frameSettingsOverrideToDeferred)) || (hdrpAssetIsDeffered); + bool defaultDeferredUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Deferred; + bool depthPrepassEnablable = (hdrpAssetSupportDeferred && (defaultDeferredUsed || frameSettingsOverrideToDeferred)) || (hdrpAssetIsDeferred); area.AmmendInfo(FrameSettingsField.DepthPrepassWithDeferredRendering, overrideable: () => depthPrepassEnablable, overridedDefaultValue: depthPrepassEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.DepthPrepassWithDeferredRendering), @@ -210,13 +210,13 @@ static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: return true; case RenderPipelineSettings.SupportedLitShaderMode.Both: - return frameSettingsOverrideToDeferred || defaultDefferedUsed; + return frameSettingsOverrideToDeferred || defaultDeferredUsed; default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } }); - bool clearGBufferEnablable = (hdrpAssetSupportDeferred && (defaultDefferedUsed || frameSettingsOverrideToDeferred)) ||(hdrpAssetIsDeffered); + bool clearGBufferEnablable = (hdrpAssetSupportDeferred && (defaultDeferredUsed || frameSettingsOverrideToDeferred)) ||(hdrpAssetIsDeferred); area.AmmendInfo(FrameSettingsField.ClearGBuffers, overrideable: () => clearGBufferEnablable, overridedDefaultValue: clearGBufferEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.ClearGBuffers), @@ -229,7 +229,7 @@ static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, case RenderPipelineSettings.SupportedLitShaderMode.DeferredOnly: return true; case RenderPipelineSettings.SupportedLitShaderMode.Both: - return frameSettingsOverrideToDeferred || defaultDefferedUsed; + return frameSettingsOverrideToDeferred || defaultDeferredUsed; default: throw new System.ArgumentOutOfRangeException("Unknown ShaderLitMode"); } From d4f4d1168b089f27ae68ad21803d7272edf573c1 Mon Sep 17 00:00:00 2001 From: Sebastien Lagarde Date: Tue, 29 Sep 2020 15:01:03 +0200 Subject: [PATCH 3/3] Update FrameSettingsUI.Drawers.cs --- .../Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs index b0dcb17ed2a..bbfd8692eec 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Settings/FrameSettingsUI.Drawers.cs @@ -177,7 +177,7 @@ static void Drawer_SectionRenderingSettings(SerializedFrameSettings serialized, bool frameSettingsOverrideToForward = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Forward; bool frameSettingsOverrideToDeferred = serialized.GetOverrides(FrameSettingsField.LitShaderMode) && serialized.litShaderMode == LitShaderMode.Deferred; bool defaultForwardUsed = !serialized.GetOverrides(FrameSettingsField.LitShaderMode) && defaultShaderLitMode == LitShaderMode.Forward; - bool msaaEnablable = (hdrpAssetSupportForward && hdrpSettings.supportMSAA && (frameSettingsOverrideToForward || defaultForwardUsed)) || (hdrpAssetIsForward && hdrpSettings.supportMSAA); + bool msaaEnablable = hdrpSettings.supportMSAA && ((hdrpAssetSupportForward && (frameSettingsOverrideToForward || defaultForwardUsed)) || hdrpAssetIsForward); area.AmmendInfo(FrameSettingsField.MSAA, overrideable: () => msaaEnablable, overridedDefaultValue: msaaEnablable && defaultFrameSettings.IsEnabled(FrameSettingsField.MSAA),