Vixen
dd8b0a81
csharp
public sealed class RenderGraphSegment

A run of consecutive passes recorded into one command list on one queue.

Read the guide page for this →

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 Index

    Its position in the schedule, from 0.

  • public QueueKind Queue

    Which queue its list is submitted to.

  • public int FirstPass

    The first pass it covers, as an index into the graph's declaration order.

  • public int LastPass

    The last pass it covers. Below FirstPass when it holds none.

  • public bool IsEmpty

    Whether it holds any passes at all.

  • public IReadOnlyList<RenderGraphSegment> WaitsOn

    The segments whose work must have finished before this one's may start.

  • public string Name

    A 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