Vixen
02b45cc4
csharp
public sealed class FrameCapture

One frame's command stream, as a tree and as a list.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Both, because the two answer different questions. The tree is how somebody finds the pass they care about; the list is what StateAt replays, and replaying a tree would mean walking it in an order that is not the order the GPU sees.

⚠ An unbalanced stream is tolerated rather than refused. A capture taken from a frame that threw halfway through has a pass that never ended, and that capture is exactly the one somebody needs to look at. Unclosed scopes end at the last command rather than making the whole capture unopenable.

Fields and properties (7)

  • public static FrameCapture Empty

    The capture with nothing in it.

  • public string Name

    What the capture is called.

  • public IReadOnlyList<CapturedCommand> Commands

    Every call, in submission order.

  • public IReadOnlyList<CaptureNode> Roots

    The top-level passes and groups.

  • public IReadOnlyList<int> Work

    The stream positions of the draws and dispatches, in order.

  • public int WorkCount

    How many draws and dispatches the frame issued.

  • public bool IsEmpty

    Whether anything was captured.

Methods (4)

  • public FrameCapture(string name, IReadOnlyList<CapturedCommand> stream)

    Builds a capture from a stream.

  • public DrawState StateAt(int sequence)

    Replays the stream up to a call and reports the state in effect there.

  • public int? NextWork(int sequence)

    The next draw or dispatch at or after a position.

  • public int? PreviousWork(int sequence)

    The previous draw or dispatch at or before a position.

Used by (5)

  • DiagnosticsModuleVixen.Editor.Diagnostics
  • EditorApplicationVixen.Editor.App
  • FrameCaptureTestsVixen.Editor.Debugger.Tests
  • FrameDebuggerViewVixen.Editor.Debugger
  • NullFrameCaptureVixen.Editor.Debugger