Vixen
dd8b0a81
csharp
public sealed class StreamingOverlay

`stat streaming`: what is resident, what is on its way, and what was refused.

Read the guide page for this →

Remarks

Doc 13's third overlay — "which assets are resident, being loaded, or evicted" — and the one of its three that was never actually blocked. The overview said the two remaining panels needed Vixen.Ui and Vixen.Assets to report and that neither may reference Vixen.Engine, so each wanted a join assembly of its own. ⚠ That is true of the UI panel and false of this one, twice over: the numbers are not Vixen.Assets' at all — Vixen.Assets' own README says so, and points at Vixen.Rendering's PageResidency as the one budget every streamer is a consumer of — and this assembly already references Vixen.Engine, Vixen.Rendering and Vixen.Assets together. The join assembly the blocker asked for is the one this class is in, and GpuOverlay has lived in it since before the blocker was written.

Three rows that answer different questions, and the last is the one worth opening the panel for. Resident against budget says whether the pool is full; loading and pending say whether the streamer is keeping up with where the camera is pointed; and refusals say the pool is too small for this scene rather than that anything is broken. A frame with refusals climbing sampled a coarser texture than it asked for and looked merely slightly soft — which is the failure this panel exists to make visible, because nothing else about it is.

⚠ Dashes rather than zeroes where nothing is measured, which is FrameStatsOverlay's convention and matters more here than usual. Texture streaming is only stood up where there is a bindless table to put the textures in — see WorldRenderer.Mount — so on a target without one, "no streamer" and "a streamer that has loaded nothing" are different answers and a panel of zeroes would make them one. Geometry residency, which is unconditional, is reported either way.

Fields and properties (6)

  • public string Name

    What the console and the toggles call it. Lower case, no spaces.

  • public OverlayAnchor Anchor

    Which corner it is pinned to.

  • public bool Enabled

    Whether it is drawn.

  • public float Width

    How wide the panel is, in pixels.

  • public float ResidentFraction

    What fraction of the texture budget is resident, or −1 when nothing is streaming textures.

  • public int DrawnRows

    How many rows the last Draw put on screen.

Methods (2)

  • public StreamingOverlay(WorldRenderer renderer)

    `stat streaming`: what is resident, what is on its way, and what was refused.

  • public void Draw(OverlaySurface surface, in GameTime time)

    Draws it.

Used by (2)

  • AppGraphicsVixen.App.Hosting
  • HostedOverlayTestsVixen.App.Tests