Skip to content
Русский

The frame-cost block

One more block prints under geom, and it is the one number on this page that is not a property of the frame: what a preset costs to draw, in milliseconds per frame, taken at 1920x1080 on the report’s tier, fully driven (ADR-0232). The report’s second header line names the machine it was taken on — the adapter as wgpu names it, and the build profile — because a frame time is a fact about a GPU, a driver and a profile rather than about the code (ADR-0071), and cargo run --example shot is a debug build unless told otherwise, which moves the CPU side of every reading by an order of magnitude.

frame cost on AMD Radeon Graphics (RADV RENOIR) (Vulkan, IntegratedGpu), driver radv Mesa 26.2.2-arch1.1, debug profile
...
preset ms/frame
Meter Mono 0.542
Ridge 3.589
Whorl 21.905 !

The method is the one the cost tests under core/tests/ use: each preset is captured for 8 frames and for 48, the smaller of two readings of each leg is kept, and the cost is the difference over the 40 frames between them — so the scene rebuild, first-frame allocation and the single readback both legs pay are subtracted out. The presets of a family are interleaved inside the repeat loop rather than timed one after another, so none of them inherits a GPU that had finished ramping its clocks. A reading at or below zero is printed as measured: it means the two legs were within noise of each other.

It is not a frame rate, and it predicts nothing about the app. The headless path has no window, no present, no compositor and no audio thread competing with it, so a preset well under the budget here can still miss it on a screen, and a number in milliseconds per frame will be read as an fps unless something says otherwise — which is why the caveat prints beside the cells rather than here alone. What the column is good for is comparing presets on one machine: which of a family’s looks is the expensive one, and whether a retune moved the cost. A ! marks a reading past 16.67 ms, the budget NFR §1 states at 60 fps at this size on the floor tier, and it marks only — the report never fails a run over it, exactly as distinctness never fails one over a near-duplicate. On a software rasterizer no reading is taken and the cells print -: a frame time on lavapipe or WARP is a fact about the rasterizer, and CI has no GPU contract to take one on (ADR-0016).

This pass is the report’s most expensive: 120 frames at 1080p per preset, on top of the few hundred small frames every other column shares. On the development box’s integrated GPU a debug-profile family of five costs a few seconds; a full-library report on a machine near the baseline should be run with that in mind, and family= narrows it.

Built from 13c7582 at version 0.158.0. This site tracks main and is not versioned per release.