Vixen
dd8b0a81
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

The panel is GpuTimelineView.vxml; this file is the accessibility modifier and the two records the markup's snapshot is made of. The emitter's partial has no modifier, so a type another assembly holds — and Vixen.Editor.Diagnostics and Vixen.Editor.App.Tests both hold this one — needs a declaration that says public. Same arrangement as MemoryView and StatisticsView.

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)

  • protected override string TagName
  • 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 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)

  • protected override void OnCreated()
  • protected override void OnRemoved()
  • public void Show(GpuFrame resolved)

    Puts a frame on screen.

  • public void Realise()

    Rebuilds the bars for the current width.

Used by (2)

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