Freeze URP renderer frame plans
This commit is contained in:
@@ -244,6 +244,57 @@ namespace Gameplay
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class MutableFullscreenPass : ScriptableRenderPass
|
||||
{
|
||||
private string m_passName = string.Empty;
|
||||
|
||||
public void Configure(
|
||||
RenderPassEvent passEvent,
|
||||
string passName)
|
||||
{
|
||||
renderPassEvent = passEvent;
|
||||
m_passName = passName ?? string.Empty;
|
||||
}
|
||||
|
||||
protected override bool RecordRenderGraph(
|
||||
ScriptableRenderContext context,
|
||||
RenderingData renderingData)
|
||||
{
|
||||
if (context == null ||
|
||||
renderingData == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
RenderGraphTextureHandle sourceColor =
|
||||
context.sourceColorTexture;
|
||||
RenderGraphTextureHandle outputColor =
|
||||
context.primaryColorTarget;
|
||||
if (!sourceColor.isValid ||
|
||||
!outputColor.isValid)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return context
|
||||
.AddRasterPass(ResolvePassName())
|
||||
.UseColorSource(sourceColor)
|
||||
.SetColorAttachment(outputColor)
|
||||
.SetRenderFunc(
|
||||
rasterContext =>
|
||||
{
|
||||
})
|
||||
.Commit();
|
||||
}
|
||||
|
||||
private string ResolvePassName()
|
||||
{
|
||||
return string.IsNullOrEmpty(m_passName)
|
||||
? "Gameplay.MutableFullscreenRasterPass"
|
||||
: m_passName;
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class RenderPassLifecycleApiProbePass
|
||||
: ScriptableRenderPass
|
||||
{
|
||||
@@ -1749,6 +1800,52 @@ namespace Gameplay
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class ManagedPassQueueIsolationProbeFeature
|
||||
: ScriptableRendererFeature
|
||||
{
|
||||
private readonly MutableFullscreenPass m_pass =
|
||||
new MutableFullscreenPass();
|
||||
private int m_addRenderPassesCallCount;
|
||||
|
||||
public override void AddRenderPasses(
|
||||
ScriptableRenderer renderer,
|
||||
RenderingData renderingData)
|
||||
{
|
||||
if (renderer == null ||
|
||||
renderingData == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_addRenderPassesCallCount++;
|
||||
m_pass.Configure(
|
||||
RenderPassEvent.BeforeRenderingPostProcessing,
|
||||
m_addRenderPassesCallCount == 1
|
||||
? "ManagedPassQueueIsolation.First"
|
||||
: "ManagedPassQueueIsolation.Second");
|
||||
renderer.EnqueuePass(m_pass);
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class ManagedPassQueueIsolationProbeRendererData
|
||||
: ProbeRendererData
|
||||
{
|
||||
public ManagedPassQueueIsolationProbeRendererData()
|
||||
: base(false)
|
||||
{
|
||||
rendererFeatures =
|
||||
ProbeScriptableObjectFactory
|
||||
.CreateRendererFeatureList(
|
||||
ProbeScriptableObjectFactory
|
||||
.Create<ManagedPassQueueIsolationProbeFeature>());
|
||||
}
|
||||
|
||||
protected override ScriptableRenderer CreateProbeRenderer()
|
||||
{
|
||||
return new ProbeSceneRenderer();
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class ManagedRenderContextCameraDataProbeRendererData
|
||||
: ProbeRendererData
|
||||
{
|
||||
@@ -2433,6 +2530,19 @@ namespace Gameplay
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ManagedPassQueueIsolationProbeAsset
|
||||
: UniversalRenderPipelineAsset
|
||||
{
|
||||
public ManagedPassQueueIsolationProbeAsset()
|
||||
{
|
||||
rendererDataList =
|
||||
ProbeScriptableObjectFactory
|
||||
.CreateRendererDataList(
|
||||
ProbeScriptableObjectFactory
|
||||
.Create<ManagedPassQueueIsolationProbeRendererData>());
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ManagedInvalidFullscreenStagePlanningProbeAsset
|
||||
: UniversalRenderPipelineAsset
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user