Record that exports of oversized linear DNGs now tile
FR-DSP-2 and NFR-RES-2 said tiling was unbuilt; the export half of it now exists for a linear DNG past one texture. The interactive path and spike S6 are unchanged.
This commit is contained in:
@@ -200,6 +200,10 @@ Two measurements say it costs more than it saves on the interactive path. Neithe
|
|||||||
about the export path or about a device under memory pressure, which is where the case for it
|
about the export path or about a device under memory pressure, which is where the case for it
|
||||||
actually lives — and that is spike S6, which has not run.
|
actually lives — and that is spike S6, which has not run.
|
||||||
|
|
||||||
|
**2026-09-27:** the export path does now tile, for the one case that forced it — a linear DNG
|
||||||
|
wider than any texture. See the note under FR-DSP-2 in [requirements.md](requirements.md). The
|
||||||
|
interactive path is unchanged and S6 is still unrun.
|
||||||
|
|
||||||
**FR-DSP-4 — Progressive refinement. Built in 0.15.0.** While a gesture moves the canvas renders
|
**FR-DSP-4 — Progressive refinement. Built in 0.15.0.** While a gesture moves the canvas renders
|
||||||
a half-resolution draft, and the sharp frame lands once, 120 ms after the last movement: the
|
a half-resolution draft, and the sharp frame lands once, 120 ms after the last movement: the
|
||||||
decision is `ui/dr-ui/src/refine.rs`, a debounce whose every draft re-arms the settle timer, driven
|
decision is `ui/dr-ui/src/refine.rs`, a debounce whose every draft re-arms the settle timer, driven
|
||||||
|
|||||||
@@ -748,6 +748,15 @@ tiles are reused.
|
|||||||
> number from the device the clause is about rather than from the one it is not. If S6 finds the
|
> number from the device the clause is about rather than from the one it is not. If S6 finds the
|
||||||
> fused pass inside budget there too, FR-DSP-2 becomes a scheduling concern for export and
|
> fused pass inside budget there too, FR-DSP-2 becomes a scheduling concern for export and
|
||||||
> thumbnailing as frame-budget.md proposes; if not, S6 names the stage to tile.
|
> thumbnailing as frame-budget.md proposes; if not, S6 names the stage to tile.
|
||||||
|
>
|
||||||
|
> **2026-09-27: the export half is built, for sources larger than one texture.** A linear DNG
|
||||||
|
> past 8192 pixels (a stitched panorama, 22927×8966 in the case that prompted it) opens on a
|
||||||
|
> reduced copy, and a render finer than the copy samples a window of the full resolution
|
||||||
|
> through the fused shader's source-window uniforms. The export is drawn in 4096-pixel tiles
|
||||||
|
> grown by the detail chain's reach (`dr_pipeline::tiles`, `ComposedDetail::reach`) and matches
|
||||||
|
> the untiled render to within one code value (`core/dr-gpu/tests/source_window.rs`). The
|
||||||
|
> interactive path is still one dispatch over the viewport: a zoomed canvas cuts one window
|
||||||
|
> and keeps it while the view stays inside, which is not the tile cache this clause describes.
|
||||||
|
|
||||||
**FR-DSP-3 — Interactive latency.** Moving a slider updates the visible region within one frame
|
**FR-DSP-3 — Interactive latency.** Moving a slider updates the visible region within one frame
|
||||||
budget at proxy resolution. When a full-resolution result is needed it is computed
|
budget at proxy resolution. When a full-resolution result is needed it is computed
|
||||||
@@ -2152,6 +2161,11 @@ tiling. GPU memory headroom is configurable. Where an allocation fails, work is
|
|||||||
memory or refused with a typed error (`GpuError::TooLarge`) — never rendered by a CPU pipeline,
|
memory or refused with a typed error (`GpuError::TooLarge`) — never rendered by a CPU pipeline,
|
||||||
which does not exist (NFR-R8).
|
which does not exist (NFR-R8).
|
||||||
|
|
||||||
|
> **2026-09-27:** a linear DNG larger than one texture is no longer refused. It is developed from
|
||||||
|
> a reduced copy and full-resolution windows, and exported in tiles (FR-DSP-2's note). A CFA file
|
||||||
|
> too large for one texture, or whose photosites overrun the device's storage-buffer limits on
|
||||||
|
> upload, is still refused, and there is still no headroom budget.
|
||||||
|
|
||||||
**NFR-RES-3 — Mobile power.** On Android the app shall not render continuously when idle. Battery
|
**NFR-RES-3 — Mobile power.** On Android the app shall not render continuously when idle. Battery
|
||||||
and thermal behaviour are first-class concerns; background sync respects metered-connection and
|
and thermal behaviour are first-class concerns; background sync respects metered-connection and
|
||||||
battery-saver settings.
|
battery-saver settings.
|
||||||
|
|||||||
Reference in New Issue
Block a user