Wide-gamut working space (approach C, stub)
Wide-gamut working space (approach C): stub
Section titled “Wide-gamut working space (approach C): stub”Status: planned, not designed. Chris (2026-10-11) chose approach A
(2026-10-11-hdr-p3-palette-design.md) now, with C as a later step. This stub records the scope so a
future session starts from A’s foundations instead of from scratch.
What C is
Section titled “What C is”Render the whole HDR frame in linear Display P3 instead of linear Rec.709. Colours are authored in P3, sRGB textures are converted when sampled, and the tonemap and glow run natively in P3. The output converts to the layer’s colour space once, at the blit.
What A already builds that C reuses
Section titled “What A already builds that C reuses”ColorGamut(OKLCH maths, matrices;widen(..., target)already takes a target gamut).Viewport.output_gamutwith the reservedOUTPUT_GAMUT_P3_WORKINGenum value.- The shared sRGB↔P3
.glslinclude, plus the P3-space tonemap, glow and blit clamps. - The
ColorGamut.active()coupling and the HDR-only tunables.
Open questions for the real design
Section titled “Open questions for the real design”- Texture handling: convert every sRGB texture sample in the canvas shader, or bake P3 assets?
- Which canvas shaders and materials assume Rec.709 primaries (additive_mat, the neon looks, backdrop generators)?
- The cost of a per-sample matrix on the A12-class ATV.
- Does C’s visible gain over A justify the work? Measure A on device first.
- Interaction with approach A’s per-source widening: retire
widen, or keep it as the authoring path.
Trigger to start
Section titled “Trigger to start”A has shipped and Chris has judged it on device, and either a visible limit of A remains (textured sprites and mixed colours stay sRGB) or a new art direction wants P3-authored assets.