Document P1 and P3 integrated acceptance
@@ -13,6 +13,13 @@ recorded frame reported zero
|
||||
validation errors. These observations do not establish physical Windows GPU
|
||||
behavior or high-end reconstruction quality.
|
||||
|
||||
The [final integrated matrix](matrix/integrated-ed523c6/README.md) separately
|
||||
repeats all 1,386 frames at clean `ed523c6`, after the optional diagnostics
|
||||
shader, resize fix, and visibility-switch rollback. Actual Vulkan validation
|
||||
was active with zero errors;
|
||||
all captured PNGs are byte-identical to the earlier branch matrix. Its
|
||||
independent 720p profile is recorded with exact binary and shader hashes.
|
||||
|
||||
## Raw artifacts and method
|
||||
|
||||
- [Lossless PNG example](captures/wire-static-taa-15.png) and
|
||||
|
||||
@@ -1,12 +1,20 @@
|
||||
# P3 temporal image-quality matrix: branch checkpoint
|
||||
# P3 temporal image-quality matrix: branch and integrated captures
|
||||
|
||||
The [final integrated capture](integrated-ed523c6/README.md) repeated this
|
||||
entire 1,386-frame matrix on clean source `ed523c6` after the optional
|
||||
pixel-diagnostics shader, resize fix, and visibility-switch rollback. Validation
|
||||
was active with zero errors,
|
||||
all 1,388 resulting PNG files are byte-identical to the branch artifacts
|
||||
below, and a separate final-shader 720p profile is retained. The branch record
|
||||
remains here as the original quality study and provenance baseline.
|
||||
|
||||
This is a functional and image-quality capture from
|
||||
`fe3a589174f8fe8e35ee231fe74fe938f4dd3cbd` on
|
||||
`feat/p3-temporal-integration`, before the later pixel-diagnostics shader was
|
||||
merged into the combined P1+P3 branch. It is separate from the earlier Direct
|
||||
capture at `1a1f69f` and from the combined lighting performance sweep at
|
||||
`4a3453e`. Repeating this matrix on the final combined source is necessary
|
||||
before claiming its exact images as integrated release evidence.
|
||||
`4a3453e`. The integrated rerun linked above now checks the exact images on
|
||||
the combined shader.
|
||||
|
||||
The run used Linux Debug, NVIDIA GeForce RTX 2080 Ti, proprietary driver
|
||||
595.84, 160×120 output except the 319×241 resize scene and 320×240 spatial
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
# Final integrated temporal capture at `ed523c6`
|
||||
|
||||
This is the P1+P3 integration capture from **clean source revision
|
||||
`ed523c61c106b8e19614e4d56f0b5d39b8392478`**, after merging the optional
|
||||
history-pixel diagnostics shader and its window-resize fix, plus the
|
||||
transactional visibility-switch rollback and async build-signature fixes.
|
||||
The Linux Debug capture used the physical NVIDIA GeForce RTX 2080 Ti with proprietary driver
|
||||
595.84. The [provenance manifest](provenance.json) records the exact capture
|
||||
executable SHA-256 and all 31 loaded SPIR-V/reflection artifact hashes.
|
||||
|
||||
The [frame CSV](frames.csv) links **1,386 lossless source PNGs** across Direct,
|
||||
GPU frustum and GPU occlusion, Off/jittered-current/TAA/upscale-current/Upscale,
|
||||
2× spatial sources, motion, eight post-open door frames, cut, teleport,
|
||||
projection/view switch, resize, transparency and UI. Every row reports
|
||||
`validation_enabled=1`, `validation_errors=0`, and the requested visibility and
|
||||
temporal paths actually executed. Output was 160×120 except the 319×241 resize
|
||||
and 320×240 spatial source. The [metrics](metrics.json),
|
||||
[wire reference sheet](spatial-reference.png) and
|
||||
[door trail sheet](door-trail-nearest-4x.png) are computed from these images.
|
||||
|
||||
All 1,388 PNG files (the 1,386 frames plus two sheets) are byte-identical to
|
||||
[the earlier branch matrix](../README.md) under the same relative names. This
|
||||
checks that the integrated diagnostic shader and failure-path fixes, with pixel
|
||||
counting disabled, did not alter these fixtures. The metrics JSON differs only
|
||||
in source revision; the frame CSV contains separate timings. In the final matrix, both GPU visibility paths
|
||||
matched Direct exactly on all 430 comparable ordinary frames per path. The
|
||||
static wire's frame variation fell 7.2% with TAA and 6.1% with Upscale versus
|
||||
their same-jitter current-only controls. The 2× box-filter spatial reference
|
||||
still had lower error than either temporal mode in this fixture; this is no
|
||||
claim of overall quality superiority. In the opening-door sequence, old red
|
||||
foreground never returned; the count of edge pixels differing by >8 from the
|
||||
unobstructed temporal reference went from 121 to 17, then reached zero by the
|
||||
sixth open frame for TAA, and from 176 to 28, reaching zero by the fifth open
|
||||
frame for Upscale. Cut, teleport, changed projection/view and resize matched
|
||||
current-only immediately in the fixed reset ROI.
|
||||
|
||||
The separate [720p CSV](profile-720p-debug.csv) has 30 measured frames per Off,
|
||||
TAA and 0.67 Upscale after ten warm-up frames for each mode, with rotating mode
|
||||
order. Every one of its 90 rows reports active validation and zero errors.
|
||||
It is a sparse one-cube/one-wire Direct fixture with full-frame synchronous
|
||||
capture in Debug, not a quiet Release gameplay benchmark. p95 below uses
|
||||
linear interpolation at rank `(n − 1) × 0.95`:
|
||||
|
||||
| Mode | Full GPU p50 / p95 | Resolve p50 / p95 | Renderer CPU p50 / p95 | Explicit Vulkan allocation |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| Off | 0.558 / 0.581 ms | — | 2.109 / 2.437 ms | 43.02 MiB |
|
||||
| TAA | 0.676 / 0.697 ms | 0.084 / 0.101 ms | 2.472 / 2.770 ms | 76.77 MiB |
|
||||
| Upscale 0.67 | 0.675 / 0.702 ms | 0.083 / 0.101 ms | 2.475 / 2.836 ms | 68.52 MiB |
|
||||
|
||||
The diagnostic counter toggle was off, so no per-pixel counter readback was
|
||||
included in these timings. The 0.67 mode did not improve the whole GPU time on
|
||||
this sparse fixture. The [parent P3 record](../../README.md) explains the
|
||||
quality limitations and the earlier, separately timed 720p checkpoint.
|
||||
|
||||
To reproduce from this source revision, install the
|
||||
[pinned analyzer dependencies](../../../../../tools/requirements-temporal-quality.txt)
|
||||
into a Python environment, configure the Linux Debug build and run:
|
||||
|
||||
```sh
|
||||
cmake --build build/linux-debug --target faset_render_temporal_acceptance_tests --parallel 2
|
||||
ctest --test-dir build/linux-debug --no-tests=error -R '^render_temporal_quality_matrix$' --output-on-failure
|
||||
build/linux-debug/faset_render_temporal_acceptance_tests --capture-quality /tmp/faset-p3-final-new
|
||||
build/linux-debug/faset_render_temporal_acceptance_tests --profile-720p /tmp/faset-p3-final-new-profile.csv
|
||||
python3 tools/analyze_temporal_quality_matrix.py --input /tmp/faset-p3-final-new \
|
||||
--output /tmp/faset-p3-final-new-analyzed \
|
||||
--revision ed523c61c106b8e19614e4d56f0b5d39b8392478 \
|
||||
--driver 'NVIDIA proprietary 595.84'
|
||||
```
|
||||
|
||||
Use fresh paths: the analyzer rejects an existing output directory. The
|
||||
separate [resize diagnostics regression](https://github.com/emil28092005/Faset_Engine/blob/main/tests/render_temporal_diagnostics_tests.cpp)
|
||||
exercises counter readback during swapchain recreation on a physical GPU; this
|
||||
quality capture leaves that optional diagnostic path disabled.
|
||||
|
||||
The [visibility-switch rollback test](https://github.com/emil28092005/Faset_Engine/blob/main/tests/render_reload_tests.cpp)
|
||||
checks that a failed GPU-mode transition preserves live TAA output and history
|
||||
and that the transition can be retried after restoring the shader bundle. The
|
||||
[P1 queued-source regression](https://github.com/emil28092005/Faset_Engine/blob/main/tests/editor_schema_signature_tests.cpp)
|
||||
checks that Build and Export report the worker snapshot hash rather than the
|
||||
enqueue-time hash. These failure-path fixes did not change any matrix image.
|
||||
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 278 B |
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 278 B |
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 247 B |
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 247 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 214 B |
|
After Width: | Height: | Size: 210 B |
|
After Width: | Height: | Size: 210 B |
|
After Width: | Height: | Size: 207 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 213 B |
|
After Width: | Height: | Size: 214 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 211 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 215 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 237 B |
|
After Width: | Height: | Size: 250 B |
|
After Width: | Height: | Size: 263 B |
|
After Width: | Height: | Size: 251 B |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 255 B |
|
After Width: | Height: | Size: 254 B |
|
After Width: | Height: | Size: 248 B |
|
After Width: | Height: | Size: 242 B |
|
After Width: | Height: | Size: 260 B |
|
After Width: | Height: | Size: 242 B |
|
After Width: | Height: | Size: 258 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 244 B |
|
After Width: | Height: | Size: 274 B |
|
After Width: | Height: | Size: 264 B |
|
After Width: | Height: | Size: 257 B |
|
After Width: | Height: | Size: 255 B |
|
After Width: | Height: | Size: 271 B |
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 246 B |
|
After Width: | Height: | Size: 267 B |
|
After Width: | Height: | Size: 286 B |
|
After Width: | Height: | Size: 257 B |
|
After Width: | Height: | Size: 263 B |
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 252 B |
|
After Width: | Height: | Size: 276 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 199 B |
|
After Width: | Height: | Size: 198 B |
|
After Width: | Height: | Size: 203 B |
|
After Width: | Height: | Size: 200 B |
|
After Width: | Height: | Size: 204 B |
|
After Width: | Height: | Size: 201 B |
|
After Width: | Height: | Size: 203 B |
|
After Width: | Height: | Size: 202 B |
|
After Width: | Height: | Size: 204 B |
|
After Width: | Height: | Size: 200 B |
|
After Width: | Height: | Size: 204 B |
|
After Width: | Height: | Size: 201 B |
|
After Width: | Height: | Size: 202 B |
|
After Width: | Height: | Size: 198 B |
|
After Width: | Height: | Size: 199 B |
|
After Width: | Height: | Size: 263 B |
|
After Width: | Height: | Size: 267 B |
|
After Width: | Height: | Size: 291 B |
|
After Width: | Height: | Size: 297 B |
|
After Width: | Height: | Size: 287 B |
|
After Width: | Height: | Size: 294 B |
|
After Width: | Height: | Size: 293 B |