Skip to content

Camera-history reset evidence — Windows and Metal

Pre-release
Pre-release

Choose a tag to compare

Camera-history reset evidence — PR #163

Source: c643b85a6a73d7f5d3e7db86659f299c0c201243, stacked on #162.
PR: #163

After a camera cut, TAA sampled old color and confidence even when the CPU
requested current-only output. The existing history-usable predicate now guards
those reads. Current-frame defaults remain in place for reset/bootstrap frames;
valid history accumulation keeps its existing policy.

Unchanged-shader controls and corrected captures

The original eight-frame DX12/DXC check differed at one pixel, (179, 152), by
one blue byte (fresh 169, reset 168). The unchanged parent also fails this check.
Extending the old-history setup to 40 frames exposes settled-confidence residue:
16,888 differing pixels under DX12/FXC and 16,893 under Vulkan, maximum channel
error 232. The DXC control fails at eight frames before reaching 40.

With the guard, all six fresh/reset RGBA pairs are byte-identical: eight and
40 frames under Radeon 760M Vulkan, DX12/FXC and DX12/DXC. Each backend's initial
fresh frame is unchanged from its corresponding original-shader control. The
original zero tolerance, later projection/rotation/pan checks and image baselines
are preserved. Temporary capture hooks exist only in retained diagnostic patches.

The original golden helper used wgpu 29's Auto compiler default; an SDK DXC on
PATH could be selected even when a previously ignored environment variable named
FXC. The explicit compiler matrix applies backend options and distinguishes the
two compilers. See compiler-selection-note.md for the corrected provenance.

Complete validation

The complete local shared CI component passes under DX12/DXC and Vulkan:
489 library tests, device negotiation, all 93 golden render tests and the remaining
integration tests. Existing ignored tests remain ignored. Formatting, strict
Clippy and repository contracts pass. The committed changes to all three Rust
files exactly match the tested candidate patch; a machine-checked receipt is
included. These full local runs use one test thread. Older device helpers can
select software adapters; the golden captures identify and require the Radeon.

Hosted Tests run 34550069181 completes with 21 successful jobs and one failed
Windows shared job. The real Windows native engine build and all 20 native
example links pass. The macOS shared suite passes, including all 93 goldens and
the expanded camera-cut test. The separate canonical Metal capture and quality
contract checks pass; named RTX 4080 and M1 Max full-quality jobs are skipped.
The hosted merge checkout has the exact same Git tree as the PR head.

Windows shared tests still terminate with 0xc0000005 in the library stage,
before golden tests execute. This is an unresolved, separate compatibility issue.
Local follow-up reproduced a WARP shader-optimizer access violation during
concurrent virtual-geometry tests; no crash fix is claimed by #163.

Contents and scope

The archive contains source patches, commands, raw RGBA and PNG captures,
changed-pixel coordinates, equality hashes, complete local logs, hosted logs,
workflow receipts and native example link evidence. Every payload is listed and
hashed in payload-sha256.json; ZIP CRC and every SHA-256 are verified locally.
No executables, libraries, licensed scene assets, junction targets or memory dumps
are included. Native example links are build evidence, not startup evidence.

This advances #135/#149/#140 and reports progress on #153/#128. Wider performance,
representative-corpus, runtime packaging and physical-hardware requirements remain
open. No draft PR is merged and no unavailable RTX result is inferred.