Graphics/ForwardFramePipeline: Optimize out merge pass when only one viewer renders to a target
This commit is contained in:
parent
97d5640967
commit
2ef9cd0128
|
|
@ -717,6 +717,9 @@ namespace Nz
|
|||
{
|
||||
const auto& targetViewers = renderTargetData.viewers;
|
||||
|
||||
if (targetViewers.size() > 1)
|
||||
{
|
||||
// Multiple viewers on the same targets, merge them
|
||||
FramePass& mergePass = frameGraph.AddPass("Merge pass");
|
||||
|
||||
renderTargetData.finalAttachment = frameGraph.AddAttachment({
|
||||
|
|
@ -759,6 +762,15 @@ namespace Nz
|
|||
|
||||
frameGraph.AddBackbufferOutput(renderTargetData.finalAttachment);
|
||||
}
|
||||
else if (targetViewers.size() == 1)
|
||||
{
|
||||
// Single viewer on that target
|
||||
const auto& viewer = *targetViewers.front();
|
||||
|
||||
frameGraph.AddBackbufferOutput(viewer.finalColorAttachment);
|
||||
renderTargetData.finalAttachment = viewer.finalColorAttachment;
|
||||
}
|
||||
}
|
||||
|
||||
return frameGraph.Bake();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue