Vixen
02b45cc4
csharp
public sealed class GpuTimelineView

A frame's GPU passes, as a bar each.

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

Remarks

Deliberately not a second flame chart. GPU work is a sequence of passes rather than a call tree — a pass has no caller and nothing runs "inside" another pass in any sense a timestamp can see — so a control that drew rows of nesting would be inventing structure that is not there. What a debug group gives is one level of grouping, which is what Level carries.

⚠ It says when the device cannot be timed rather than drawing nothing. Doc 20's B4 names timestamp queries as this panel's dependency and several real configurations do not have them — MoltenVK's statistics, GLES, WebGPU without the feature — so an empty chart would be indistinguishable from a frame with no passes in it.

⚠ The frame it shows is several frames old, and the label says which. Reading a query pool the GPU has not finished writing would mean stalling the frame thread on the device once per frame; GpuProfiler refuses to, so what is on screen is the oldest submission that has retired.

Fields and properties (9)

  • public const float RowHeight

    How tall one bar is.

  • public const float MinimumBarWidth

    How narrow a bar may be before it is not worth an element.

  • protected override string TagName

    The element name this type answers to when a caller does not choose one.

  • protected override bool AcceptsFocus

    Whether the focus can rest on this kind of control at all.

  • public UiElement Status

    The line saying what the frame cost, or why there is nothing to show.

  • public UiElement Lanes

    Where the bars go.

  • public string? Unavailable

    Why the device cannot be timed, or when it can.

  • public Func<GpuFrame>? Source

    Where the newest resolved frame comes from, or .

  • public GpuFrame Frame

    What it is showing.

Methods (4)

  • public void Show(GpuFrame resolved)

    Puts a frame on screen.

  • public void Realise()

    Rebuilds the bars for the current width.

  • protected override void OnCreated()

    Builds whatever this element is made of, once, as it joins a document.

  • protected override void OnRemoved()

    Called once, as the element leaves the document.

Used by (2)

  • DiagnosticsModuleVixen.Editor.Diagnostics
  • DiagnosticsPanelTestsVixen.Editor.App.Tests