Presentation payload plus the document version it was rendered from. More...
#include "donner/editor/AsyncRenderer.h"
Classes | |
| struct | WorkerTimingBreakdown |
| Internal timing split for one async worker iteration. More... | |
| struct | CompositedTile |
| One paint-order tile from the worker's compositor snapshot. Ids and generations let presentation reuse unchanged GL textures or Geode UI registrations, including regular immediate static segments. A matching published tile may carry metadata without a fresh payload. Geometry is in document units so the presenter follows live zoom while a new canvas raster is deferred. More... | |
| struct | CompositedPreview |
| Paint-ordered composited tiles and promoted interaction state. More... | |
Public Attributes | |
| std::shared_ptr< const CapturedPresentation > | capturedPresentation |
| Geometry captured under the same document guard as the raster payload. | |
| svg::RendererBitmap | bitmap |
| Optional CPU-readable full-canvas frame. | |
| std::optional< CompositedPreview > | compositedPreview |
| Paint-ordered compositor tiles, when produced. | |
| EditorRasterViewport | rasterViewport |
| Raster viewport used to produce this result. | |
| ViewportState | viewport |
| Editor viewport copied from the request. | |
| bool | presentationCoverageRepair = false |
| Request repairs a frame rejected for incompatible raster/pose coverage. | |
| int | presentationRepairReason = 0 |
| Missing presentation proof carried by the request. | |
| bool | overviewInfillOnly = false |
| Update retained overview infill only. | |
| std::uint64_t | version = 0 |
| Document frame version represented by the result. | |
| std::uint64_t | cpuSnapshotRequestId = 0 |
| Nonzero explicit pixel-capture identity. | |
| std::uint64_t | documentGeneration = 0 |
| Document generation from the request. | |
| std::uint64_t | fontResourceRevision = 0 |
| Font-resource revision used by the worker. | |
| std::vector< svg::FontFaceDependency > | fontDependencies |
| Faces pending before final pixel export. | |
| double | workerMs = 0.0 |
| Worker iteration latency in milliseconds, zero if unavailable. | |
| WorkerTimingBreakdown | workerTiming |
| Phase and handoff timings for this worker iteration. | |
| std::chrono::steady_clock::time_point | workerCompletedAt |
| Worker completion timestamp. | |
Presentation payload plus the document version it was rendered from.
| 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. |
| int | compositorReadbackCount = 0 | GPU-to-CPU readbacks performed inside compositor rendering, before document unlock. |
| 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 | documentWriteLockMs = 0.0 | Time the captured document remained unavailable for UI edits. |
| double | finalSnapshotMs = 0.0 | Time spent taking the final fallback canvas snapshot, when needed. |
| int | finalSnapshotReadbackCount = 0 | GPU-to-CPU map attempts while capturing the final frame, including explicit captures. |
| int | fullCanvasTextureAllocationFailureCount = 0 | Failed full-canvas GPU captures. The previous usable presentation is retained. |
| double | idleCallbackMs = 0.0 | Optional maintenance callback duration preceding this render. |
| double | idleLockMs = 0.0 | Time acquiring the worker-state lock after idle maintenance. |
| double | idleWaitMs = 0.0 | Condition-variable wait duration preceding this render, including time before submission. |
| double | idleYieldMs = 0.0 | Browser yield duration in the maintenance pass preceding this render. |
| bool | nothingToPresent = false | True when the iteration produced nothing to present: no compositor tile, and no full-canvas payload where one is permitted. The result then carries neither a preview nor a bitmap, and the UI keeps presenting its previous frame. |
| double | pollDelayMs = 0.0 | Time from worker result completion until the UI thread polls it. |
| double | polledAtEpochMs = 0.0 | Browser epoch milliseconds at the UI-thread poll, zero in native builds. |
| 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 | tileHandoffReadbackCount = 0 | GPU-to-CPU map attempts while preparing changed tile payloads after document unlock. |
| 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. |
| svg::RendererBitmap donner::editor::RenderResult::bitmap |
Optional CPU-readable full-canvas frame.
| std::shared_ptr<const CapturedPresentation> donner::editor::RenderResult::capturedPresentation |
Geometry captured under the same document guard as the raster payload.
| std::optional<CompositedPreview> donner::editor::RenderResult::compositedPreview |
Paint-ordered compositor tiles, when produced.
| std::uint64_t donner::editor::RenderResult::cpuSnapshotRequestId = 0 |
Nonzero explicit pixel-capture identity.
| std::uint64_t donner::editor::RenderResult::documentGeneration = 0 |
Document generation from the request.
| std::vector<svg::FontFaceDependency> donner::editor::RenderResult::fontDependencies |
Faces pending before final pixel export.
| std::uint64_t donner::editor::RenderResult::fontResourceRevision = 0 |
Font-resource revision used by the worker.
| bool donner::editor::RenderResult::overviewInfillOnly = false |
Update retained overview infill only.
| bool donner::editor::RenderResult::presentationCoverageRepair = false |
Request repairs a frame rejected for incompatible raster/pose coverage.
| int donner::editor::RenderResult::presentationRepairReason = 0 |
Missing presentation proof carried by the request.
| EditorRasterViewport donner::editor::RenderResult::rasterViewport |
Raster viewport used to produce this result.
| std::uint64_t donner::editor::RenderResult::version = 0 |
Document frame version represented by the result.
| ViewportState donner::editor::RenderResult::viewport |
Editor viewport copied from the request.
| std::chrono::steady_clock::time_point donner::editor::RenderResult::workerCompletedAt |
Worker completion timestamp.
| double donner::editor::RenderResult::workerMs = 0.0 |
Worker iteration latency in milliseconds, zero if unavailable.
| WorkerTimingBreakdown donner::editor::RenderResult::workerTiming |
Phase and handoff timings for this worker iteration.