Presentation payload plus the document version it was rendered from.
More...
#include "donner/editor/AsyncRenderer.h"
|
| struct | WorkerTimingBreakdown |
| | Internal timing split for one async worker iteration. More...
|
| struct | CompositedTile |
| | One composite tile from the worker's CompositorController::
snapshotCompositorTiles() snapshot. The editor uploads one GL texture per tile (keyed on id). The GL presenter composes those cached textures into one pane-sized presentation texture; the WebGPU presenter composites them directly into the framebuffer. Immediate tiles intentionally use transient ids and always carry a fresh payload. Geometry fields are doc-unit quantities so the editor can scale them by the current pixelsPerDocUnit during canvas-resize debouncing. More...
|
| struct | CompositedPreview |
|
|
svg::RendererBitmap | bitmap |
|
std::optional< CompositedPreview > | compositedPreview |
|
EditorRasterViewport | rasterViewport |
| | Raster viewport used to produce this result.
|
|
ViewportState | viewport |
| | Editor viewport rasterViewport was derived from, copied from the request.
|
|
bool | overviewInfillOnly = false |
| | True when this result should update only retained overview infill.
|
|
std::uint64_t | version = 0 |
|
std::uint64_t | documentGeneration = 0 |
| | Document generation captured by the render request.
|
|
double | workerMs = 0.0 |
| | Wall-clock milliseconds spent in the worker iteration after a request is dequeued, including CompositorController::renderFrame, final snapshot/readback work, and diagnostic snapshots that gate presentation. Reported so the editor can plot worker latency alongside ImGui frame time on the frame graph. Zero means no worker timing was recorded.
|
|
WorkerTimingBreakdown | workerTiming |
|
std::chrono::steady_clock::time_point | workerCompletedAt |
| | Internal completion timestamp used to populate workerTiming.pollDelayMs on acceptance.
|
Presentation payload plus the document version it was rendered from.
◆ donner::editor::RenderResult::WorkerTimingBreakdown
| struct donner::editor::RenderResult::WorkerTimingBreakdown |
Internal timing split for one async worker iteration.
| Class Members |
|
double |
buildPreviewMs = 0.0 |
Time spent building composited-preview tile metadata/payloads. |
|
double |
dequeueToStartMs = 0.0 |
Worker-thread preflight between dequeue and the measured render iteration. |
|
bool |
deviceLost = false |
True when the worker's backend device has been declared lost, either by the driver or by a bounded GPU wait exceeding its deadline. |
|
double |
diagnosticsMs = 0.0 |
Time spent copying compositor diagnostics for editor panels. |
|
double |
finalSnapshotMs = 0.0 |
Time spent taking the final fallback canvas snapshot, when needed. |
|
double |
pollDelayMs = 0.0 |
Time from worker result completion until the UI thread polls it. |
|
double |
queueWaitMs = 0.0 |
Time from UI-thread request submission until the worker dequeues the request. |
|
int |
readbackCount = 0 |
GPU-to-CPU readbacks performed by the worker renderer and its offscreen instances. |
|
int |
readbackPollIterations = 0 |
Legacy device-poll iterations used while waiting for those readbacks. |
|
double |
renderFrameMs = 0.0 |
Time spent in CompositorController::renderFrame. |
|
double |
setupMs = 0.0 |
Time before CompositorController::renderFrame, including compositor selection setup. |
|
int |
timedOutWaitMs = 0 |
Wall time that wait spent before giving up, in milliseconds. |
|
GpuWaitTimeoutSite |
timedOutWaitSite = svg::GpuWaitTimeoutSite::None |
Which bounded GPU wait declared that loss, when a deadline did. |
|
bool |
usedTimedWaitAny = false |
True when browser readbacks used the event-driven timed WaitAny path. |
|
double |
wakeToPollMs = 0.0 |
Portion of pollDelayMs spent waiting for the UI thread's next frame after the result became pollable. This is the handoff's animation-frame phase wait. |
◆ bitmap
◆ compositedPreview
◆ documentGeneration
| std::uint64_t donner::editor::RenderResult::documentGeneration = 0 |
Document generation captured by the render request.
◆ overviewInfillOnly
| bool donner::editor::RenderResult::overviewInfillOnly = false |
True when this result should update only retained overview infill.
◆ rasterViewport
Raster viewport used to produce this result.
◆ version
| std::uint64_t donner::editor::RenderResult::version = 0 |
◆ viewport
Editor viewport rasterViewport was derived from, copied from the request.
◆ workerCompletedAt
| std::chrono::steady_clock::time_point donner::editor::RenderResult::workerCompletedAt |
Internal completion timestamp used to populate workerTiming.pollDelayMs on acceptance.
◆ workerMs
| double donner::editor::RenderResult::workerMs = 0.0 |
Wall-clock milliseconds spent in the worker iteration after a request is dequeued, including CompositorController::renderFrame, final snapshot/readback work, and diagnostic snapshots that gate presentation. Reported so the editor can plot worker latency alongside ImGui frame time on the frame graph. Zero means no worker timing was recorded.
◆ workerTiming
The documentation for this struct was generated from the following file: