@@ -34,65 +34,34 @@ public static void CombineRendererEvents(bool isDeferred, int msaaSampleCount, E
3434 combinedEvent = Combine ( combinedEvent , rendererEvent ) ;
3535 }
3636
37- /// <summary>
38- /// Returns True if <see cref="UniversalRendererData"/> will require rendering layers texture.
39- /// </summary>
40- /// <param name="universalRendererData"></param>
41- /// <param name="msaaSampleCount">Number of MSAA Samples</param>
42- /// <param name="combinedEvent">Event at which rendering layers texture needs to be created</param>
43- /// <param name="combinedMaskSize">The mask size of rendering layers texture</param>
44- public static bool RequireRenderingLayers ( UniversalRendererData universalRendererData , int msaaSampleCount , out Event combinedEvent , out MaskSize combinedMaskSize )
45- {
46- combinedEvent = Event . Opaque ;
47- combinedMaskSize = MaskSize . Bits8 ;
48-
49- bool isDeferred = universalRendererData . renderingMode == RenderingMode . Deferred ;
50- bool result = false ;
51- foreach ( var rendererFeature in universalRendererData . rendererFeatures )
52- {
53- if ( rendererFeature . isActive )
54- {
55- result |= rendererFeature . RequireRenderingLayers ( isDeferred , universalRendererData . accurateGbufferNormals , out Event rendererEvent , out MaskSize rendererMaskSize ) ;
56- combinedEvent = Combine ( combinedEvent , rendererEvent ) ;
57- combinedMaskSize = Combine ( combinedMaskSize , rendererMaskSize ) ;
58- }
59- }
60-
61- // Rendering layers can not use MSAA resolve, because it encodes integer
62- if ( msaaSampleCount > 1 && combinedEvent == Event . Opaque && ! isDeferred )
63- combinedEvent = Event . DepthNormalPrePass ;
64-
65- // Make sure texture has enough bits to encode all rendering layers in urp global settings
66- if ( UniversalRenderPipelineGlobalSettings . instance )
67- {
68- int count = UniversalRenderPipelineGlobalSettings . instance . renderingLayerMaskNames . Length ;
69- MaskSize maskSize = RenderingLayerUtils . GetMaskSize ( count ) ;
70- combinedMaskSize = Combine ( combinedMaskSize , maskSize ) ;
71- }
72-
73- return result ;
74- }
75-
7637 /// <summary>
7738 /// Returns True if <see cref="UniversalRenderer"/> will require rendering layers texture.
7839 /// </summary>
7940 /// <param name="universalRenderer"></param>
80- /// <param name="rendererFeatures">Event at which rendering layers texture needs to be created </param>
81- /// <param name="msaaSampleCount">Number of MSAA Samples </param>
41+ /// <param name="rendererFeatures">List of renderer features used by the renderer </param>
42+ /// <param name="msaaSampleCount">MSAA sample count </param>
8243 /// <param name="combinedEvent">Event at which rendering layers texture needs to be created</param>
8344 /// <param name="combinedMaskSize">The mask size of rendering layers texture</param>
8445 public static bool RequireRenderingLayers ( UniversalRenderer universalRenderer , List < ScriptableRendererFeature > rendererFeatures , int msaaSampleCount , out Event combinedEvent , out MaskSize combinedMaskSize )
46+ {
47+ RenderingMode renderingMode = universalRenderer . renderingModeActual ;
48+ bool accurateGBufferNormals = universalRenderer . accurateGbufferNormals ;
49+ return RequireRenderingLayers ( rendererFeatures , renderingMode , accurateGBufferNormals , msaaSampleCount ,
50+ out combinedEvent , out combinedMaskSize ) ;
51+ }
52+
53+ internal static bool RequireRenderingLayers ( List < ScriptableRendererFeature > rendererFeatures , RenderingMode renderingMode , bool accurateGbufferNormals , int msaaSampleCount , out Event combinedEvent , out MaskSize combinedMaskSize )
8554 {
8655 combinedEvent = Event . Opaque ;
8756 combinedMaskSize = MaskSize . Bits8 ;
8857
89- bool isDeferred = universalRenderer . renderingModeActual == RenderingMode . Deferred ;
58+ bool isDeferred = renderingMode == RenderingMode . Deferred ;
9059 bool result = false ;
9160 foreach ( var rendererFeature in rendererFeatures )
9261 {
9362 if ( rendererFeature . isActive )
9463 {
95- result |= rendererFeature . RequireRenderingLayers ( isDeferred , universalRenderer . accurateGbufferNormals , out Event rendererEvent , out MaskSize rendererMaskSize ) ;
64+ result |= rendererFeature . RequireRenderingLayers ( isDeferred , accurateGbufferNormals , out Event rendererEvent , out MaskSize rendererMaskSize ) ;
9665 combinedEvent = Combine ( combinedEvent , rendererEvent ) ;
9766 combinedMaskSize = Combine ( combinedMaskSize , rendererMaskSize ) ;
9867 }
0 commit comments