public sealed class RenderGraphSegmentA run of consecutive passes recorded into one command list on one queue.
Remarks
Segments are cut where the queue changes and nowhere else, so they partition the frame's surviving passes in declaration order. That is what makes an async-scheduled frame comparable with a single-queue one: the same passes run in the same order, and the only difference is how many lists they were recorded into.
A segment with FirstPass greater than LastPass holds no passes at all. There is at most one at each end of the schedule, both on Graphics, and they exist so that the barriers handing imported resources to and from their owner have a graphics list to be recorded on. An import arrives owned by the graphics queue and has to be released from it; a frame whose first pass is a compute one would otherwise record both halves of that handover on the destination queue, which is legal to record and means nothing.
Fields and properties (7)
public int IndexIts position in the schedule, from 0.
public QueueKind QueueWhich queue its list is submitted to.
public int FirstPassThe first pass it covers, as an index into the graph's declaration order.
public int LastPassThe last pass it covers. Below FirstPass when it holds none.
public bool IsEmptyWhether it holds any passes at all.
public IReadOnlyList<RenderGraphSegment> WaitsOnThe segments whose work must have finished before this one's may start.
public string NameA name for the list, the debugger and the Graphviz dump.
Used by (9)
- DeviceQueuesVixen.Graphics.RenderGraph
- IRenderGraphQueuesVixen.Graphics.RenderGraph
- QueueSchedulingTestsVixen.Graphics.RenderGraph.Tests
- RecordingQueuesVixen.Graphics.RenderGraph.Tests
- RenderGraphVixen.Graphics.RenderGraph
- RenderGraphScheduleVixen.Graphics.RenderGraph
- SerialisedQueuesVixen.Graphics.RenderGraph
- TimelineSubmissionTestsVixen.Graphics.RenderGraph.Tests
- WrongQueuesVixen.Graphics.RenderGraph.Tests