From 215e0548517d886ab99b1dfca9ada6de1885942c Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Wed, 5 Aug 2026 15:33:45 +0200 Subject: [PATCH] :books: Clarify Partial flush sync is on Full present Drop the stale ViewportReady wording from the HiDPI render-wasm memory notes. AI-assisted-by: composer-2 Co-authored-by: Cursor --- .serena/memories/render-wasm/ffi-rendering-subtleties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.serena/memories/render-wasm/ffi-rendering-subtleties.md b/.serena/memories/render-wasm/ffi-rendering-subtleties.md index c468403eb2..bf12697b8f 100644 --- a/.serena/memories/render-wasm/ffi-rendering-subtleties.md +++ b/.serena/memories/render-wasm/ffi-rendering-subtleties.md @@ -24,7 +24,7 @@ - Zoom changes rebuild the tile index while preserving cached tile textures. Avoid replacing that path with shallow rebuilds if blur/shadow cache preservation matters. - Two-phase HiDPI zoom settle: (1) **Interactive** — one paint-once of **visible** tiles at DPR≤1 fill-rate (`tile_px=512`, `paint_scale≈zoom`); present + notify. (2) Deferred **Full** — `512*dpr` sprites, **visible+interest**, paint-once when the region fits (else per-tile). At DPR≤1 there is no Interactive phase. CTM must use `get_paint_scale()` / `get_raster_scale()`. - Soft settle schedules `pending_sharp_promote` (next `continue`); do not stay Interactive forever. -- Partial frames **skip** GPU flush; hard sync in `present_frame` / ViewportReady. +- Partial frames **skip** GPU flush; hard sync belongs in `present_frame` / Full. - Paint-once **resizes Current** to the region, restores viewport pad after present. - Zoom-gesture preview: **DocAtlas only** when `zoom_changed` (no tile-sprite overlay). `invalidate_tile_cache` clears sprites only — not `DocAtlas::reset()`. `continue_render_loop` no-ops while `fast_mode && zoom_changed`. - Full-quality `tile_px=1024` → ~16 atlas slots; `TileTextureCache::add` must not panic (see harden rules below).