Skip to content

Commit c10b375

Browse files
sebastienlagardeanisunityremi-chapelainJulienIgnace-UnityJordanL8
authored
Merge 7.x.x/hd/staging [Skip CI] (#158)
* [7.x.x Backport] Fixed a weird behavior in the scalable settings drawing when the space becomes tiny (1212045). (#6507) * - Fixed a weird behavior in the scalable settings drawing when the space becomes tiny (1212045). * Small fix to avoid text overlapping too much Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com> * Fixed an usage of a a compute buffer not bound (1229964) (#28) Co-authored-by: Anis <anis@unity3d.com> * Removed wrongly serialized fields in StaticLightingSky (#6441) * Fix issues in the post process system with RenderTexture being invalid in some cases. Causing rendering problems. #6480 * Update PostProcessSystem.cs * Fixed an issue where changing the default volume profile from another inspector would not update the default volume editor. #6493 * Hdrp/docs/glossary f number (#6523) * Update Glossary.md * Update Glossary.md * Clamp probes compression factor to 0 (#19) * path validation when creating new volume profile (#36) * [Backport 7.x.x] Fix various leaks in HDRP (#120) * Fixed a number of leak in HDRP # Conflicts: # com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowManager.cs # com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs * Update changelog * [7.x.x backport] Follow references when deleting unloading unused assets on shader graph save (case 1230996) (#128) * Follow references when unloading unneeded assets * changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [7.x.x Backport] Fixed an issue with the specularFGD term being used when the material has a clear coat (lit shader). (#21) * Fixed an issue with the specularFGD term being used when the material has a clear coat (lit shader). * update ssr screenshot Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * d Fix MSAA resolve when there is no motion vectors #1 * Fix issues causing planar probes to be broken with multiple cameras in the scene #4 * Pospow and SG triplanar fix #40 * Hdrp/fix/custom pass msaa rendering info #42 * Added disocclusion and ghosting to the glossary (#75) * Update the scripting API for FrameSettings, FrameSettingsOverrideMask and IBitArray (#110) * fix switch shader compilation (#111) * Update SceneViewDrawMode.cs (#118) * Fix culling of reflection probes that change position #121 * Fix null reference when processing light probe #131 * Fix black screen in XR when HDRP package is present but not used #137 * Fix default volume profile collapse #138 * Fix for white flash happening when changing lighting condition (like teleport) #140 * Added baked GI rp support caveat and made setting shadow filter quality clearer for deferred high. (#145) * Update AxF-Shader.md (#152) * Bind missing buffer #159 Co-authored-by: anisunity <42026998+anisunity@users.noreply.github.com> Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com> Co-authored-by: Anis <anis@unity3d.com> Co-authored-by: JulienIgnace-Unity <julien@unity3d.com> Co-authored-by: JordanL8 <lewis.jordan@hotmail.co.uk> Co-authored-by: FrancescoC-unity <43168857+FrancescoC-unity@users.noreply.github.com> Co-authored-by: Adrien de Tocqueville <adrien.tocqueville@unity3d.com> Co-authored-by: slunity <37302815+slunity@users.noreply.github.com> Co-authored-by: Antoine Lelievre <antoinel@unity3d.com> Co-authored-by: Remi Slysz <40034005+RSlysz@users.noreply.github.com> Co-authored-by: Pavlos Mavridis <pavlos.mavridis@unity3d.com> Co-authored-by: Fabien Houlmann <44069206+fabien-unity@users.noreply.github.com> Co-authored-by: victor <victor.ceitelis@unity3d.com>
1 parent 009727f commit c10b375

35 files changed

Lines changed: 342 additions & 106 deletions

File tree

Lines changed: 2 additions & 2 deletions
Loading

com.unity.render-pipelines.core/Runtime/Common/ComponentSingleton.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,26 @@ public static TType instance
2020
{
2121
if (s_Instance == null)
2222
{
23-
GameObject go = new GameObject("Default " + typeof(TType)) { hideFlags = HideFlags.HideAndDontSave };
23+
GameObject go = new GameObject("Default " + typeof(TType).Name) { hideFlags = HideFlags.HideAndDontSave };
2424
go.SetActive(false);
2525
s_Instance = go.AddComponent<TType>();
2626
}
2727

2828
return s_Instance;
2929
}
3030
}
31+
32+
/// <summary>
33+
/// Release the component singleton.
34+
/// </summary>
35+
public static void Release()
36+
{
37+
if (s_Instance != null)
38+
{
39+
var go = s_Instance.gameObject;
40+
CoreUtils.Destroy(go);
41+
s_Instance = null;
42+
}
43+
}
3144
}
3245
}

com.unity.render-pipelines.core/Runtime/Utilities/BitArray.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,35 @@ namespace UnityEngine.Rendering
99
/// </summary>
1010
public interface IBitArray
1111
{
12-
/// <summary>Number of elements in the bit array.</summary>
12+
/// <summary>Gets the capacity of this BitArray. This is the number of bits that are usable.</summary>
1313
uint capacity { get; }
14-
/// <summary>True if all bits are 0.</summary>
14+
/// <summary>Return `true` if all the bits of this BitArray are set to 0. Returns `false` otherwise.</summary>
1515
bool allFalse { get; }
16-
/// <summary>True if all bits are 1.</summary>
16+
/// <summary>Return `true` if all the bits of this BitArray are set to 1. Returns `false` otherwise.</summary>
1717
bool allTrue { get; }
1818
/// <summary>
19-
/// Returns the state of the bit at a specific index.
19+
/// An indexer that allows access to the bit at a given index. This provides both read and write access.
2020
/// </summary>
2121
/// <param name="index">Index of the bit.</param>
2222
/// <returns>State of the bit at the provided index.</returns>
2323
bool this[uint index] { get; set; }
24-
/// <summary>Returns the bit array in a human readable form.</summary>
24+
/// <summary>Writes the bits in the array in a human-readable form. This is as a string of 0s and 1s packed by 8 bits. This is useful for debugging.</summary>
2525
string humanizedData { get; }
2626

2727
/// <summary>
28-
/// Bit-wise And operation.
28+
/// Perform an AND bitwise operation between this BitArray and the one you pass into the function and return the result. Both BitArrays must have the same capacity. This will not change current BitArray values.
2929
/// </summary>
30-
/// <param name="other">Bit array with which to the And operation.</param>
30+
/// <param name="other">BitArray with which to the And operation.</param>
3131
/// <returns>The resulting bit array.</returns>
3232
IBitArray BitAnd(IBitArray other);
3333
/// <summary>
34-
/// Bit-wise Or operation.
34+
/// Perform an OR bitwise operation between this BitArray and the one you pass into the function and return the result. Both BitArrays must have the same capacity. This will not change current BitArray values.
3535
/// </summary>
36-
/// <param name="other">Bit array with which to the Or operation.</param>
36+
/// <param name="other">BitArray with which to the Or operation.</param>
3737
/// <returns>The resulting bit array.</returns>
3838
IBitArray BitOr(IBitArray other);
3939
/// <summary>
40-
/// Invert the bit array.
40+
/// Return the BitArray with every bit inverted.
4141
/// </summary>
4242
/// <returns></returns>
4343
IBitArray BitNot();

com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,51 @@ uint FastLog2(uint x)
499499
// Note: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509636(v=vs.85).aspx pow(0, >0) == 0
500500
TEMPLATE_2_REAL(PositivePow, base, power, return pow(abs(base), power))
501501

502+
// SafePositivePow: Same as pow(x,y) but considers x always positive and never exactly 0 such that
503+
// SafePositivePow(0,y) will numerically converge to 1 as y -> 0, including SafePositivePow(0,0) returning 1.
504+
//
505+
// First, like PositivePow, SafePositivePow removes this warning for when you know the x value is positive or 0 and you know
506+
// you avoid a NaN:
507+
// ie you know that x == 0 and y > 0, such that pow(x,y) == pow(0, >0) == 0
508+
// SafePositivePow(0, y) will however return close to 1 as y -> 0, see below.
509+
//
510+
// Also, pow(x,y) is most probably approximated as exp2(log2(x) * y), so pow(0,0) will give exp2(-inf * 0) == exp2(NaN) == NaN.
511+
//
512+
// SafePositivePow avoids NaN in allowing SafePositivePow(x,y) where (x,y) == (0,y) for any y including 0 by clamping x to a
513+
// minimum of FLT_EPS. The consequences are:
514+
//
515+
// -As a replacement for pow(0,y) where y >= 1, the result of SafePositivePow(x,y) should be close enough to 0.
516+
// -For cases where we substitute for pow(0,y) where 0 < y < 1, SafePositivePow(x,y) will quickly reach 1 as y -> 0, while
517+
// normally pow(0,y) would give 0 instead of 1 for all 0 < y.
518+
// eg: if we #define FLT_EPS 5.960464478e-8 (for fp32),
519+
// SafePositivePow(0, 0.1) = 0.1894646
520+
// SafePositivePow(0, 0.01) = 0.8467453
521+
// SafePositivePow(0, 0.001) = 0.9835021
522+
//
523+
// Depending on the intended usage of pow(), this difference in behavior might be a moot point since:
524+
// 1) by leaving "y" free to get to 0, we get a NaNs
525+
// 2) the behavior of SafePositivePow() has more continuity when both x and y get closer together to 0, since
526+
// when x is assured to be positive non-zero, pow(x,x) -> 1 as x -> 0.
527+
//
528+
// TL;DR: SafePositivePow(x,y) avoids NaN and is safe for positive (x,y) including (x,y) == (0,0),
529+
// but SafePositivePow(0, y) will return close to 1 as y -> 0, instead of 0, so watch out
530+
// for behavior depending on pow(0, y) giving always 0, especially for 0 < y < 1.
531+
//
532+
// Ref: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509636(v=vs.85).aspx
533+
TEMPLATE_2_REAL(SafePositivePow, base, power, return pow(max(abs(base), real(REAL_EPS)), power))
534+
535+
// Helpers for making shadergraph functions consider precision spec through the same $precision token used for variable types
536+
TEMPLATE_2_FLT(SafePositivePow_float, base, power, return pow(max(abs(base), float(FLT_EPS)), power))
537+
TEMPLATE_2_HALF(SafePositivePow_half, base, power, return pow(max(abs(base), half(HALF_EPS)), power))
538+
539+
float Eps_float() { return FLT_EPS; }
540+
float Min_float() { return FLT_MIN; }
541+
float Max_float() { return FLT_MAX; }
542+
half Eps_half() { return HALF_EPS; }
543+
half Min_half() { return HALF_MIN; }
544+
half Max_half() { return HALF_MAX; }
545+
546+
502547
// Composes a floating point value with the magnitude of 'x' and the sign of 's'.
503548
// See the comment about FastSign() below.
504549
float CopySign(float x, float s, bool ignoreNegZero = true)

com.unity.render-pipelines.high-definition/CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1111
- Added an error message in the DrawRenderers custom pass when rendering opaque objects with an HDRP asset in DeferredOnly mode.
1212
- Added Light decomposition lighting debugging modes and support in AOV
1313
- Added exposure compensation to Fixed exposure mode
14+
- Added an info box to warn about depth test artifacts when rendering object twice in custom passes with MSAA.
1415

1516
### Fixed
1617
- Fixed an issue where a dynamic sky changing any frame may not update the ambient probe.
@@ -42,6 +43,18 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
4243
- Fix for range compression factor for probes going negative (now clamped to positive values).
4344
- Fixed path validation when creating new volume profile (case 1229933)
4445
- Fixed the debug exposure mode for display sky reflection and debug view baked lighting
46+
- Fixed various object leaks in HDRP.
47+
- Fix for assertion triggering sometimes when saving a newly created lit shader graph (case 1230996)
48+
- Fixed an issue with the specularFGD term being used when the material has a clear coat (lit shader).
49+
- Fixed MSAA depth resolve when there is no motion vectors
50+
- Fix issue causing wrong planar reflection rendering when more than one camera is present.
51+
- Fixed culling of planar reflection probes that change position (case 1218651)
52+
- Fixed null reference when processing lightprobe (case 1235285)
53+
- Fix black screen in XR when HDRP package is present but not used.
54+
- Fixed an issue that was collapsing the volume components in the HDRP default settings
55+
- Fixed NaN which can appear with real time reflection and inf value
56+
- Fixed warning about missing bound decal buffer
57+
- Fix black screen in XR when HDRP package is present but not used.
4558

4659
### Changed
4760
- Rejecting history for ray traced reflections based on a threshold evaluated on the neighborhood of the sampled history.

com.unity.render-pipelines.high-definition/Documentation~/AxF-Shader.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ This process does not duplicate the Textures and other resources that the origin
2525

2626
### Creating AxF Materials from scratch
2727

28-
New Materials in HDRP use the [Lit Shader](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@7.1/manual/Lit-Shader.html) by default. To create an AxF Material from scratch, create a Material and then make it use the AxF Shader. To do this:
28+
New Materials in HDRP use the [Lit Shader](Lit-Shader.md) by default. To create an AxF Material from scratch, create a Material and then make it use the AxF Shader. To do this:
2929

3030
1. In the Unity Editor, navigate to your Project's Asset window.
3131
2. Right-click the Asset Window and select **Create > Material**. This adds a new Material to your Unity Project’s Asset folder.
@@ -60,8 +60,9 @@ Note: The AxF Importer imports every Texture as half float, linear, sRGB gamut (
6060
| --------------------- | ------------------------------------------------------------ |
6161
| **Material Tiling U** | Sets the tile rate along the x-axis for every Texture in the **Surface Inputs** section. HDRP uses this value to tile the Textures along the x-axis of the Material’s surface, in object space. |
6262
| **Material Tiling V** | Sets the tile rate along the y-axis for every Texture in the **Surface Inputs** section. HDRP uses this value to tile the Textures along the y-axis of the Material’s surface, in object space. |
63-
| **BRDF Type** | Controls the main AxF Material representation.<br/>&#8226; **SVBRDF**: For information on the properties Unity makes visible when you select this option, see [BRDF Type - SVBRDF](https://docs.google.com/document/d/1_Oq2hsx3J7h8GHKoQM_8qf6Ip5VlHv_31K7dYYVOEmU/edit#heading=h.f1msh9g44mev).<br/>&#8226;**CAR_PAINT**: For information on the properties Unity makes visible when you select this option, see [BRDF Type - CAR_PAINT](https://docs.google.com/document/d/1_Oq2hsx3J7h8GHKoQM_8qf6Ip5VlHv_31K7dYYVOEmU/edit#heading=h.eorkre6buegg). |
63+
| **BRDF Type** | Controls the main AxF Material representation.<br/>&#8226; **SVBRDF**: For information on the properties Unity makes visible when you select this option, see [BRDF Type - SVBRDF](#SVBRDF).<br/>&#8226;**CAR_PAINT**: For information on the properties Unity makes visible when you select this option, see [BRDF Type - CAR_PAINT](#CAR_PAINT). |
6464

65+
<a name="SVBRDF"></a>
6566
#### BRDF Type - SVBRDF
6667

6768
| **Property** | **Description** |
@@ -86,6 +87,7 @@ Note: The AxF Importer imports every Texture as half float, linear, sRGB gamut (
8687
| **- Enable Refraction** | Indicates whether the clear coat is refractive. If you enable this checkbox, HDRP uses angles refracted by the clear coat to evaluate the undercoat of the Material surface. |
8788
| **- - Clearcoat IOR** | Specifies a Texture (red channel only) that implicitly defines the index of refraction (IOR) for the clear coat by encoding it to a monochromatic (single value) F0 (aka as specular color or Fresnel reflectance at 0 degree incidence. This also assumes the coat interfaces with air). As such, the value is in the range of **0** to **1** and HDRP calculates the final IOR as:<br/>`IOR = (1.0 + squareRoot(R) ) / (1.0 - squareRoot(R))`<br/>Where **R** is the normalized value in the red color channel of this Texture. Note: HDRP uses this IOR for both coat refraction and, if enabled, transmission and reflectance calculations through and on the coat. Therefore, you must always assign a Texture to this property when you enable clear coat. |
8889

90+
<a name="CAR_PAINT"></a>
8991
#### BRDF Type - CAR_PAINT
9092

9193
| **Property** | **Description** |

com.unity.render-pipelines.high-definition/Documentation~/Glossary.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,12 @@ A function that describes a wave that represents the human eye’s relative sens
137137
#### punctual lights:
138138
A light is considered to be punctual if it emits light from a single point. HDRPs Spot and Point Lights are punctual.
139139

140+
## Rendering Artifacts
141+
142+
<a name="Disocclusion"></a>
143+
#### disocclusion
144+
A rendering artifact that describes the situation where a GameObject that was previously occluded becomes visible.
145+
146+
<a name="Ghosting"></a>
147+
#### ghosting
148+
A rendering artifact that describes the situation where a moving GameObject leaves a trail of pixels behind it.

com.unity.render-pipelines.high-definition/Documentation~/Shadows-in-HDRP.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,10 @@ Using high shadow bias values may result in light "leaking" through Meshes. This
5353

5454
After HDRP captures a shadow map, it processes filtering on the map in order to decrease the aliasing effect that occurs on low resolution shadow maps. Different filters affect the perceived sharpness of shadows.
5555

56-
To change which filter HDRP uses, change the **Filtering Quality** property in your Unity Project’s [HDRP Asset](HDRP-Asset.html). There are currently four filter quality presets for directional and punctual lights. For information on the available filter qualities, see the [Filtering Qualities table](HDRP-Asset.html#FilteringQualities).
56+
To change which filter HDRP uses, the method depends on which filter quality you want to use and whether your HDRP Project uses [forward or deferred rendering](Forward-And-Deferred-Rendering.md).
5757

58-
Currently, if you want to use **High** quality (PCSS) filtering in [deferred](Forward-And-Deferred-Rendering.html) mode, you need to enable it in the [HDRP Config package](HDRP-Config-Package.html). For information on how to do this, see the [Example section](HDRP-Config-Package.html#Example) of the Config package documentation.
58+
* **Forward rendering**: Change the **Filtering Quality** property in your Unity Project’s [HDRP Asset](HDRP-Asset.html). This method works for every filter quality. There are currently three filter quality presets for directional and punctual lights. For information on the available filter qualities, see the [Filtering Qualities table](HDRP-Asset.html#FilteringQualities).
59+
* **Deferred rendering**: For **Low** and **Medium** filter qualities, use the same method as forward rendering. If you want to use **High** quality (PCSS) filtering, you need to enable it in the [HDRP Config package](HDRP-Config-Package.html). For information on how to do this, see the [Example section](HDRP-Config-Package.html#Example) of the Config package documentation.
5960

6061
## Shadowmasks
6162

com.unity.render-pipelines.high-definition/Editor/AssetProcessors/ShaderGraphMaterialsUpdater.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@ static void OnShaderGraphSaved(Shader shader, object saveContext)
5555

5656
// Free the materials every 200 iterations, on big project loading all materials in memory can lead to a crash
5757
if ((i % 200 == 0) && i != 0)
58-
EditorUtility.UnloadUnusedAssetsImmediate(false);
58+
EditorUtility.UnloadUnusedAssetsImmediate(true);
5959
}
6060
}
6161
finally
6262
{
6363
EditorUtility.ClearProgressBar();
64-
EditorUtility.UnloadUnusedAssetsImmediate(false);
64+
EditorUtility.UnloadUnusedAssetsImmediate(true);
6565
}
6666
}
6767
}

com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/DrawRenderersCustomPassDrawer.cs

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,11 @@ private class Styles
5656
public static string unlitShaderMessage = "HDRP Unlit shaders will force the shader passes to \"ForwardOnly\"";
5757
public static string hdrpLitShaderMessage = "HDRP Lit shaders are not supported in a custom pass";
5858
public static string opaqueObjectWithDeferred = "Your HDRP settings does not support ForwardOnly, some object might not render.";
59+
public static string objectRendererTwiceWithMSAA = "MSAA is enabled, re-rendering same object twice will cause depth test artifacts in Before/After Post Process injection points";
5960
}
6061

6162
//Headers and layout
62-
private int m_FilterLines = 3;
63+
private int m_FilterLines = 2;
6364
private int m_MaterialLines = 2;
6465

6566
// Foldouts
@@ -86,6 +87,8 @@ private class Styles
8687

8788
ReorderableList m_ShaderPassesList;
8889

90+
CustomPassVolume m_Volume;
91+
8992
bool customDepthIsNone => (CustomPass.TargetBuffer)m_TargetDepthBuffer.intValue == CustomPass.TargetBuffer.None;
9093

9194
protected override void Initialize(SerializedProperty customPass)
@@ -112,6 +115,8 @@ protected override void Initialize(SerializedProperty customPass)
112115
m_DepthCompareFunction = customPass.FindPropertyRelative("depthCompareFunction");
113116
m_DepthWrite = customPass.FindPropertyRelative("depthWrite");
114117

118+
m_Volume = customPass.serializedObject.targetObject as CustomPassVolume;
119+
115120
m_ShaderPassesList = new ReorderableList(null, m_ShaderPasses, true, true, true, true);
116121

117122
m_ShaderPassesList.drawElementCallback =
@@ -132,6 +137,14 @@ protected override void Initialize(SerializedProperty customPass)
132137

133138
protected override void DoPassGUI(SerializedProperty customPass, Rect rect)
134139
{
140+
if (ShowMsaaObjectInfo())
141+
{
142+
Rect helpBoxRect = rect;
143+
helpBoxRect.height = Styles.helpBoxHeight;
144+
EditorGUI.HelpBox(helpBoxRect, Styles.objectRendererTwiceWithMSAA, MessageType.Info);
145+
rect.y += Styles.helpBoxHeight;
146+
}
147+
135148
DoFilters(ref rect);
136149

137150
m_RendererFoldout.boolValue = EditorGUI.Foldout(rect, m_RendererFoldout.boolValue, Styles.renderHeader, true);
@@ -156,7 +169,7 @@ protected override void DoPassGUI(SerializedProperty customPass, Rect rect)
156169
}
157170
}
158171

159-
// Tel if we need to show a warning for rendering opaque object and we're in deferred.
172+
// Tell if we need to show a warning for rendering opaque object and we're in deferred.
160173
bool ShowOpaqueObjectWarning()
161174
{
162175
// Only opaque objects are concerned
@@ -173,6 +186,18 @@ bool ShowOpaqueObjectWarning()
173186
return true;
174187
}
175188

189+
// Tell if we need to show the MSAA message info
190+
bool ShowMsaaObjectInfo()
191+
{
192+
if (!HDRenderPipeline.currentAsset.currentPlatformRenderPipelineSettings.supportMSAA)
193+
return false;
194+
195+
if (m_Volume.injectionPoint != CustomPassInjectionPoint.AfterPostProcess && m_Volume.injectionPoint != CustomPassInjectionPoint.BeforePostProcess)
196+
return false;
197+
198+
return true;
199+
}
200+
176201
void DoFilters(ref Rect rect)
177202
{
178203
m_FilterFoldout.boolValue = EditorGUI.Foldout(rect, m_FilterFoldout.boolValue, Styles.filtersHeader, true);
@@ -296,9 +321,11 @@ protected override float GetPassHeight(SerializedProperty customPass)
296321
{
297322
float height = Styles.defaultLineSpace;
298323

324+
height += ShowMsaaObjectInfo() ? Styles.helpBoxHeight : 0;
325+
299326
if (m_FilterFoldout.boolValue)
300327
{
301-
height *= m_FilterLines;
328+
height += Styles.defaultLineSpace * m_FilterLines;
302329
height += ShowOpaqueObjectWarning() ? Styles.helpBoxHeight : 0;
303330
}
304331

0 commit comments

Comments
 (0)