Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
7edae5c
docs(prd339): track authored auto exposure implementation phases
jonit-dev Oct 2, 2026
ddd80fb
docs(vq07): begin bounded volumetric fog implementation
jonit-dev Oct 2, 2026
8983a49
fix(render): retain ownership of direct environment output graphs
jonit-dev Oct 2, 2026
1727872
feat(render): add authored GPU exposure metering and history lifecycle
jonit-dev Oct 2, 2026
2314687
fix(render): distinguish borrowed pass textures from owned RTTs
jonit-dev Oct 2, 2026
bb34aff
test(render): build exposure shaders and add hosted runtime capture f…
jonit-dev Oct 2, 2026
02f1be5
fix(render): keep superseded chains from clearing or reinstalling output
jonit-dev Oct 2, 2026
d13286d
fix(render): preserve exposure diagnostics and attach first real runt…
jonit-dev Oct 2, 2026
eaa583b
test(render): reject lost-device exposure proof and fix observed fixt…
jonit-dev Oct 2, 2026
1bb878e
feat(vq07): add opt-in bounded fog and hosted runtime capture fixture
jonit-dev Oct 2, 2026
76db7cc
test(vq07): preserve baseline screenshot and identify failed HTTP res…
jonit-dev Oct 2, 2026
4f8fe47
fix(vq07): avoid the confirmed missing favicon request
jonit-dev Oct 2, 2026
a5ff6ff
docs(vq07): preserve actual fog variant screenshots and provenance
jonit-dev Oct 2, 2026
9b2bcd7
fix(render): identify output installations with ownership receipts
jonit-dev Oct 2, 2026
c7091c7
feat(render): ship opt-in exposure sources and preserve coverage alpha
jonit-dev Oct 2, 2026
e31cb52
test(render): preserve corrected bright-dark pair and unsettled cut e…
jonit-dev Oct 2, 2026
beedf1e
test(vq07): isolate scattering and exercise graph teardown
jonit-dev Oct 2, 2026
b10771e
merge develop into VQ07 and refresh combined scaffold hashes
jonit-dev Oct 2, 2026
001b934
test(vq07): calibrate black controls without weakening capture guards
jonit-dev Oct 2, 2026
1f6c58a
Merge develop and observe actual exposure frame timing
jonit-dev Oct 2, 2026
1c9534f
test(vq07): retain scattering proof and exercise four owned fog graphs
jonit-dev Oct 2, 2026
5c3b176
Run exposure cut proof on the live render clock
jonit-dev Oct 2, 2026
6adf350
Preserve passing exposure cut and disabled runtime screenshots
jonit-dev Oct 2, 2026
0d9c1c5
test(vq07): qualify live target resize and settled texture ownership
jonit-dev Oct 2, 2026
47464cc
fix(vq07): observe completed renders under the game-owned loop
jonit-dev Oct 2, 2026
1505e01
test(vq07): wait on observed render stability before captures
jonit-dev Oct 2, 2026
bc628ac
test(vq07): retain resize proof and qualify the native host route
jonit-dev Oct 2, 2026
1f73e55
test(vq07): render each owned graph before lifecycle replacement
jonit-dev Oct 2, 2026
ad0498e
test(exposure): qualify reverse cuts with paired GPU measurements
jonit-dev Oct 2, 2026
08f4fe5
docs(vq07): preserve native fog progress and resize failure
jonit-dev Oct 2, 2026
9a84ee0
test(exposure): select supported bridge clock for controlled GPU arms
jonit-dev Oct 2, 2026
7f710b7
test(vq07): isolate native resize and enforce authored pixel guard
jonit-dev Oct 2, 2026
1d2f2d0
merge develop to consume the landed tone assertion gate
jonit-dev Oct 2, 2026
2a33c9a
test(exposure): require accepted GPU warmup and strict per-sample proof
jonit-dev Oct 2, 2026
9236a9c
docs(exposure): archive qualified cuts and mutation screenshots
jonit-dev Oct 2, 2026
8e67e04
docs(exposure): distinguish intensity steps from required camera cuts
jonit-dev Oct 2, 2026
ff59e24
fix(native): accept usable suboptimal surface acquisitions
jonit-dev Oct 2, 2026
d150060
test(exposure): qualify cold boots at three accepted live GPU updates
jonit-dev Oct 2, 2026
490fd31
docs(exposure): preserve unsuccessful cold-boot mutation evidence
jonit-dev Oct 2, 2026
b0727a4
fix(native): rebuild the swapchain after an outdated surface acquisition
jonit-dev Oct 2, 2026
640c103
fix(vq07): preserve fog and native presentation across transitions
jonit-dev Oct 2, 2026
2bc1d57
test(exposure): cut actual camera between fixed-lit rooms
jonit-dev Oct 2, 2026
9d3e109
Merge develop and retain qualified volumetric fog proof
jonit-dev Oct 2, 2026
dbf5d8b
test(exposure): qualify fixed-light camera cuts with complete pose ev…
jonit-dev Oct 2, 2026
85d826d
Merge origin/develop into feat/vq07-volumetric-fog
jonit-dev Oct 3, 2026
fe1b1f6
ci: fold integration-volumetric-fog.yml into integration.yml (one wor…
jonit-dev Oct 3, 2026
e4c10bb
Merge origin/develop into feat/prd-339-auto-exposure
jonit-dev Oct 3, 2026
9484a2a
style: format this branch's unformatted JSON evidence
jonit-dev Oct 3, 2026
45cef7a
ci: fold integration-exposure.yml into integration.yml (one workflow,…
jonit-dev Oct 3, 2026
78bba05
Merge remote-tracking branch 'origin/develop' into HEAD
jonit-dev Oct 3, 2026
08b039c
Merge remote-tracking branch 'origin/develop' into HEAD
jonit-dev Oct 3, 2026
659c7dd
Merge branch 'develop' into feat/vq07-volumetric-fog
jonit-dev Oct 3, 2026
a7b718b
Merge branch 'develop' into feat/prd-339-auto-exposure
jonit-dev Oct 3, 2026
c656e3f
fix(exposure): qualify lifecycle and native readback contracts
jonit-dev Oct 3, 2026
388e8ac
Merge commit 'a7b718b014856bfbbb9adf0f5b5e112aecb80de8' into completi…
jonit-dev Oct 3, 2026
c407521
docs(exposure): retain reviewed GPU qualification evidence
jonit-dev Oct 3, 2026
47e3c85
Merge branch 'develop' into feat/prd-339-auto-exposure
jonit-dev Oct 3, 2026
37ba68c
Merge branch 'develop' into feat/vq07-volumetric-fog
jonit-dev Oct 3, 2026
52b0563
Merge branch 'develop' into feat/prd-339-auto-exposure
jonit-dev Oct 3, 2026
f781733
Merge branch 'develop' into feat/vq07-volumetric-fog
jonit-dev Oct 3, 2026
55b5313
test(exposure): apply approved repeatability and snap response gates
jonit-dev Oct 3, 2026
522c0a4
test(exposure): reject missing first-update adaptation provenance
jonit-dev Oct 3, 2026
0a6ab53
test(native): register exposure validation control in CTest
jonit-dev Oct 3, 2026
2c77070
docs(exposure): qualify approved acceptance and measured native coverage
jonit-dev Oct 3, 2026
d5763fa
docs(exposure): reopen PRD339 for template integration regressions fo…
jonit-dev Oct 3, 2026
63f69c9
fix(exposure): integrate opt-in generated consumer and preserve GPU o…
jonit-dev Oct 3, 2026
8bf16f4
test(exposure): require actual generated consumer ownership against m…
jonit-dev Oct 3, 2026
f97f609
docs(exposure): qualify generated consumer and measured scaffold iden…
jonit-dev Oct 3, 2026
57bc0e5
refactor(create-threenative): split starter fog into four render modules
jonit-dev Oct 3, 2026
8aee7e9
Merge branch 'develop' into feat/vq07-volumetric-fog
jonit-dev Oct 3, 2026
21222ef
fix(create-threenative): make the shipped fog reachable instead of de…
jonit-dev Oct 3, 2026
1797878
fix(exposure): qualify opt-in consumer completion on current develop
jonit-dev Oct 3, 2026
e74b395
docs(exposure): preserve completion filing links
jonit-dev Oct 3, 2026
4ce93bc
docs(exposure): update completed batch index
jonit-dev Oct 3, 2026
c364558
fix(create-threenative): put the starter's mist where the look belong…
jonit-dev Oct 3, 2026
38da46b
fix(ci): use ERE groups in the fog lane so grep -E matches
jonit-dev Oct 3, 2026
a3e4e34
fix(create-threenative): keep a fog the game authored under the live …
jonit-dev Oct 3, 2026
c866f64
docs(prd): record the local 29-arm browser sweep and the two defects …
jonit-dev Oct 3, 2026
3c5730f
Merge remote-tracking branch 'origin/develop' into feat/vq07-volumetr…
jonit-dev Oct 3, 2026
3c8d19d
fix(examples): declare why the fog calibration card stays hidden
jonit-dev Oct 3, 2026
a6a155e
chore(native): re-measure the coverage record for this branch's nativ…
jonit-dev Oct 3, 2026
bde500a
fix(vq07): prove the fog arms instead of asserting what they requested
jonit-dev Oct 3, 2026
b339f89
fix(vq07): measure the overlapping bound by added scattering, not a f…
jonit-dev Oct 3, 2026
432dd70
fix(vq07): keep the pinned overlap gate and the coverage it measures
jonit-dev Oct 3, 2026
4e48744
docs(prd): record the 29-arm requalification of 432dd7043
jonit-dev Oct 3, 2026
6309276
fix(vq07): reject fog cost-arm sample counts the meter never measured
jonit-dev Oct 3, 2026
b93944e
style(vq07): follow the type alias naming convention
jonit-dev Oct 3, 2026
b655f43
docs(prd): verify VQ-07 volumetric fog at b93944e60 and archive it
jonit-dev Oct 3, 2026
8431684
Merge remote-tracking branch 'origin/develop' into feat/vq07-volumetr…
jonit-dev Oct 3, 2026
89c4e8a
docs(prd): record the develop reconciliation and its local requalific…
jonit-dev Oct 3, 2026
6701a80
Merge remote-tracking branch 'origin/develop' into feat/vq07-volumetr…
jonit-dev Oct 3, 2026
52d0b5b
docs(prd): record the second reconciliation and its fresh browser req…
jonit-dev Oct 3, 2026
e87faa6
Merge remote-tracking branch 'origin/develop' into feat/vq07-volumetr…
jonit-dev Oct 3, 2026
a5f4242
ci(exposure): retain qualification with impact-driven selector
jonit-dev Oct 3, 2026
ba48c10
docs(exposure): reconcile completed PRD with current filing
jonit-dev Oct 3, 2026
ae44ab8
test(exposure): record actual pinned render surface provenance
jonit-dev Oct 3, 2026
8bc45bd
style(exposure): sort fixture provenance imports
jonit-dev Oct 3, 2026
11f6b1c
docs(exposure): retain current GPU proof and approved historical cleanup
jonit-dev Oct 3, 2026
4c3fae7
Merge current develop documentation into PR397
jonit-dev Oct 3, 2026
5727ba4
docs(exposure): qualify final documentation-only publication base
jonit-dev Oct 3, 2026
53c4af0
docs(exposure): resolve current runbook completed-PRD link
jonit-dev Oct 3, 2026
49f76db
docs(evidence): pin recovery to verified published originals
jonit-dev Oct 3, 2026
39fe208
fix(rain): preserve software quality defaults and explicit tier choices
jonit-dev Oct 4, 2026
f54efbd
fix(ci): retain failures and route native fluid independently
jonit-dev Oct 4, 2026
edd5e1d
test(rain): refresh measured scaffold identity after quality fix
jonit-dev Oct 4, 2026
54eaa13
merge: consolidate exposure and fog with preserved source acceptance
jonit-dev Oct 4, 2026
e3da970
Verify combined rendering native coverage without changing floors
jonit-dev Oct 4, 2026
fea52b9
Qualify combined fog and exposure through the public browser harness
jonit-dev Oct 4, 2026
b0560e3
Require completed render boundaries and fresh GPU readback after resize
jonit-dev Oct 4, 2026
f5dd77d
Preserve actual combined GPU qualification and failed lifecycle evidence
jonit-dev Oct 4, 2026
c16786f
Keep native compiler caching compatible with the lint gate
jonit-dev Oct 4, 2026
3d64292
Fix Sailing startup and native fixture dependency; retain terminal fl…
jonit-dev Oct 4, 2026
a59821c
Format public Sailing receipt without changing measured facts
jonit-dev Oct 4, 2026
a4627e3
fix(ci): trim sailing agent docs under the line cap; scope fluid lane…
jonit-dev Oct 4, 2026
e9242a4
Merge branch 'develop' into feat/prd-339-auto-exposure
jonit-dev Oct 4, 2026
a9b29e9
fix(playtest): wait for slow host frame pumps
jonit-dev Oct 4, 2026
6db1562
Merge branch 'develop' into feat/prd-339-auto-exposure
jonit-dev Oct 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
194 changes: 190 additions & 4 deletions .github/workflows/integration.yml

Large diffs are not rendered by default.

19 changes: 19 additions & 0 deletions biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,25 @@
}
}
}
},
{
"include": [
"docs/verification/prd339-exposure-proof/camera-cuts-2bc1d57f.json",
"docs/verification/prd339-exposure-proof/cold-boots-08b039c.json",
"docs/verification/prd339-exposure-proof/cold-boots-d1500603.json",
"docs/verification/prd339-exposure-proof/completion-388e8a.json",
"docs/verification/prd339-exposure-proof/completion-current-55b5313.json",
"docs/verification/prd339-exposure-proof/controlled-cuts-9a84ee0e.json",
"docs/verification/prd339-exposure-proof/dark-adapted-bb34aff.json",
"docs/verification/prd339-exposure-proof/live-clock-5c3b176.json",
"docs/verification/prd339-exposure-proof/qualified-cuts-2a33c9a0.json",
"docs/verification/prd339-exposure-proof/reverse-cuts-ad0498e6.json",
"docs/verification/prd339-exposure-proof/rgb-correction-c7091c7.json",
"docs/verification/prd339-exposure-proof/sunlight-failed-eaa583b.json"
],
"formatter": {
"enabled": false
}
}
]
}
495 changes: 495 additions & 0 deletions docs/PRDs/done/PRD-339-the-frame-sets-its-own-exposure.md

Large diffs are not rendered by default.

254 changes: 254 additions & 0 deletions docs/PRDs/done/PRD-VQ-07-volumetric-fog.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ The gap is CPU while walking. The costs, as span p95s, which overlap and do not

## Lane C — look and native parity (independent; any free session)

- [ ] **C1 · [PRD-339](../rendering/PRD-339-the-frame-sets-its-own-exposure.md): auto exposure.** 🎨👁
- [ ] **C1 · [PRD-339](../done/PRD-339-the-frame-sets-its-own-exposure.md): auto exposure.** 🎨👁
- Draft PR #397 already exists. Add its phase boxes first, since `prd:progress` exits 1 without them.
- [ ] **C2 · [PRD-492](PRD-492-colour-grading-and-film-grain.md): colour grading and film grain.** 🎨👁
- [ ] **C3 · [PRD-493](PRD-493-terrain-layers-past-sixteen-textures.md): terrain layers past sixteen textures.** ⏱🌍👁
Expand Down
134 changes: 0 additions & 134 deletions docs/PRDs/rendering/PRD-339-the-frame-sets-its-own-exposure.md

This file was deleted.

64 changes: 0 additions & 64 deletions docs/PRDs/rendering/PRD-VQ-07-volumetric-fog.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/PRDs/rendering/aaa-visuals-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ rather than arguable.
| # | PRD | Layer | Cost | Why it is here |
| --- | --- | --- | --- | --- |
| 1 | [341 — a frame's tone is a number, and the number is a gate](../done/PRD-341-a-frames-tone-is-a-number-and-the-number-is-a-gate.md) | `playtest` | LOW | `assert.tone`: mean, p1/p50/p99, clip%, black%. "It looks flat" stops being an opinion. |
| 2 | [339 — the frame sets its own exposure](PRD-339-the-frame-sets-its-own-exposure.md) | `core` + templates | MEDIUM | There is no auto exposure in the repository. Largest single look gap. |
| 2 | [339 — the frame sets its own exposure](../done/PRD-339-the-frame-sets-its-own-exposure.md) | `core` + templates | MEDIUM | Completed: shipped opt-in consumer, actual GPU/native proof and approved lossless preservation qualified. |
| 3 | [342 — where the frame goes: pass-cost ablation](../performance/PRD-342-where-the-frame-goes-pass-cost-ablation.md) | `playtest` | LOW-MED | Every `quality.ts` tier is currently an unmeasured guess. |
| 4 | [340 — evaluate a scatter once per instance](PRD-340-evaluate-a-scatter-once-per-instance.md) | `core` | MED-HIGH | Density is most of the AAA exterior, and the naive form is vertex-bound where the resolution scaler cannot reach it. |
| 5 | [344 — contact occlusion baked from the geometry it ships with](PRD-344-contact-occlusion-baked-from-the-geometry-it-ships-with.md) | `core` | MEDIUM | Free at runtime, tier-independent, and captures the scale screen-space AO never will. |
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Loading