Vixen
dd8b0a81

Rendering · guide

Timing the frame on the GPU

The render graph brackets every pass it runs with a named scope, so a document that adds a node gets a bar in the timeline without anybody opting in — and an optional sink is what keeps that free when nobody is measuring.

Edit this page on GitHub

Documents

Next

  • Choosing a frame — The two-audience story — start with the Standard Frame's knobs, explode the document when you need surgery, and hand-author only when the frame itself is the subject.
  • The Standard Frame — One engine-owned node that expands into the full frame graph — shadows, GI, reflections, the whole post chain — configured by seven semantic knobs.
  • A pass that reads the frame so far — Two ways for a pass to consume its own output — a snapshot of a target inside one frame, and a pair of targets alternating across them — and why both are resources the render graph owns rather than barriers somebody remembers.
  • Diagnostic overlays and the console — One flag puts the frame-stats panel, the console, the log tail and every subsystem's debug lines on the screen of a running game.
  • Capturing a frame to a file — A headless run renders on the real GPU with no window and writes its last frame as a PNG, so a sample's picture is a file two people can produce at once rather than a screenshot of whoever's display was in front.
  • Scheduling a frame onto two queues — What `PassKind` means now that something reads it — how the render graph cuts a frame into per-queue segments, why a resource has to be handed between queues rather than merely barriered, why two queues that only want to read one texture need `ResourceSharing.Concurrent` to stop taking turns, how a submission waits for another queue by value rather than by draining it, and which of this engine's passes came out of the audit able to leave the graphics queue.
  • Recording a CPU trace — The profiler is compiled into every build and switched off; one flag turns it on and a second writes the run out as a file that opens in Perfetto.