Tighten URP pass queue snapshot ownership
This commit is contained in:
@@ -1687,6 +1687,69 @@ namespace Gameplay
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class ManagedPassQueueSnapshotProbeFeature
|
||||
: ScriptableRendererFeature
|
||||
{
|
||||
private readonly FullscreenPass m_pass =
|
||||
new FullscreenPass(
|
||||
RenderPassEvent.BeforeRenderingPostProcessing,
|
||||
"ManagedPassQueueSnapshot.PostProcess");
|
||||
private ulong m_enqueuedFramePlanId;
|
||||
private bool m_enqueuedForCurrentFramePlan;
|
||||
|
||||
public override void AddRenderPasses(
|
||||
ScriptableRenderer renderer,
|
||||
RenderingData renderingData)
|
||||
{
|
||||
if (renderer == null ||
|
||||
renderingData == null ||
|
||||
!renderingData.isPostProcessStage)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (renderingData.framePlanId == 0UL)
|
||||
{
|
||||
renderer.EnqueuePass(m_pass);
|
||||
return;
|
||||
}
|
||||
|
||||
if (renderingData.framePlanId != m_enqueuedFramePlanId)
|
||||
{
|
||||
m_enqueuedFramePlanId =
|
||||
renderingData.framePlanId;
|
||||
m_enqueuedForCurrentFramePlan = false;
|
||||
}
|
||||
|
||||
if (m_enqueuedForCurrentFramePlan)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
renderer.EnqueuePass(m_pass);
|
||||
m_enqueuedForCurrentFramePlan = true;
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class ManagedPassQueueSnapshotProbeRendererData
|
||||
: ProbeRendererData
|
||||
{
|
||||
public ManagedPassQueueSnapshotProbeRendererData()
|
||||
: base(false)
|
||||
{
|
||||
rendererFeatures =
|
||||
ProbeScriptableObjectFactory
|
||||
.CreateRendererFeatureList(
|
||||
ProbeScriptableObjectFactory
|
||||
.Create<ManagedPassQueueSnapshotProbeFeature>());
|
||||
}
|
||||
|
||||
protected override ScriptableRenderer CreateProbeRenderer()
|
||||
{
|
||||
return new ProbeSceneRenderer();
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class ManagedRenderContextCameraDataProbeRendererData
|
||||
: ProbeRendererData
|
||||
{
|
||||
@@ -2287,6 +2350,19 @@ namespace Gameplay
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ManagedPassQueueSnapshotProbeAsset
|
||||
: UniversalRenderPipelineAsset
|
||||
{
|
||||
public ManagedPassQueueSnapshotProbeAsset()
|
||||
{
|
||||
rendererDataList =
|
||||
ProbeScriptableObjectFactory
|
||||
.CreateRendererDataList(
|
||||
ProbeScriptableObjectFactory
|
||||
.Create<ManagedPassQueueSnapshotProbeRendererData>());
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ManagedInvalidFullscreenStagePlanningProbeAsset
|
||||
: UniversalRenderPipelineAsset
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user