Skip to content

Commit 6a61d6f

Browse files
kennytannEvergreen
authored andcommitted
[Port] [6000.0] [UUM-136415][6000.6][URP 2D] Add capture pass for recorder
1 parent d27743e commit 6a61d6f

3 files changed

Lines changed: 15 additions & 3 deletions

File tree

Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,8 @@ private RenderPassInputSummary GetRenderPassInputs(UniversalCameraData cameraDat
193193
|| cameraData.cameraTargetDescriptor.msaaSamples > 1 && UniversalRenderer.PlatformRequiresExplicitMsaaResolve()
194194
|| m_Renderer2DData.useCameraSortingLayerTexture
195195
|| !Mathf.Approximately(cameraData.renderScale, 1.0f)
196-
|| (DebugHandler != null && DebugHandler.WriteToDebugScreenTexture(cameraData.resolveFinalTarget));
196+
|| (DebugHandler != null && DebugHandler.WriteToDebugScreenTexture(cameraData.resolveFinalTarget))
197+
|| cameraData.captureActions != null;
197198

198199
return inputSummary;
199200
}

Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,18 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
108108
// Early out for preview camera
109109
if (cameraData.cameraType == CameraType.Preview)
110110
isLitView = false;
111+
112+
DebugHandler debugHandler = GetActiveDebugHandler(cameraData);
113+
if (debugHandler != null)
114+
isLitView = debugHandler.IsLightingActive;
111115
#endif
112116

113117
// Preset global light textures for first batch
114118
if (batchIndex == 0)
115119
{
116120
using (var builder = graph.AddRasterRenderPass<SetGlobalPassData>(k_SetLightBlendTexture, out var passData, m_SetLightBlendTextureProfilingSampler))
117121
{
118-
if (layerBatch.lightStats.useLights)
122+
if (layerBatch.lightStats.useLights && isLitView)
119123
{
120124
passData.lightTextures = universal2DResourceData.lightTextures[batchIndex];
121125
for (var i = 0; i < passData.lightTextures.Length; i++)
@@ -167,7 +171,7 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
167171
builder.UseRendererList(passData.rendererList);
168172
}
169173

170-
if (passData.layerUseLights)
174+
if (passData.layerUseLights && isLitView)
171175
{
172176
passData.lightTextures = universal2DResourceData.lightTextures[batchIndex];
173177
for (var i = 0; i < passData.lightTextures.Length; i++)

Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ internal sealed partial class Renderer2D : ScriptableRenderer
2525
DrawLight2DPass m_LightPass = new DrawLight2DPass();
2626
DrawShadow2DPass m_ShadowPass = new DrawShadow2DPass();
2727
DrawRenderer2DPass m_RendererPass = new DrawRenderer2DPass();
28+
CapturePass m_CapturePass = new CapturePass(RenderPassEvent.AfterRendering);
2829

2930
LayerBatch[] m_LayerBatches;
3031
int m_BatchCount;
@@ -792,6 +793,12 @@ private void OnAfterRendering(RenderGraph renderGraph)
792793
var finalBlitTarget = resolveToDebugScreen ? commonResourceData.debugScreenColor : commonResourceData.backBufferColor;
793794
var finalDepthHandle = resolveToDebugScreen ? commonResourceData.debugScreenDepth : commonResourceData.backBufferDepth;
794795

796+
// Capture pass for Unity Recorder
797+
if (hasCaptureActions)
798+
{
799+
m_CapturePass.RecordRenderGraph(renderGraph, frameData);
800+
}
801+
795802
if (applyFinalPostProcessing)
796803
{
797804
postProcessPass.RenderFinalPassRenderGraph(renderGraph, frameData, in finalColorHandle, commonResourceData.overlayUITexture, in finalBlitTarget, needsColorEncoding);

0 commit comments

Comments
 (0)