Repeat P3 Release gate with pinned shader bundle
Native and manual checks / native (ubuntu-24.04) (push) Failing after 33s
Native and manual checks / manual (push) Successful in 25s
Windows editor and software Vulkan / windows-graphics (push) Canceled after 0s
Native and manual checks / native (windows-2025) (push) Canceled after 0s
Native and manual checks / native (ubuntu-24.04) (push) Failing after 33s
Native and manual checks / manual (push) Successful in 25s
Windows editor and software Vulkan / windows-graphics (push) Canceled after 0s
Native and manual checks / native (windows-2025) (push) Canceled after 0s
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
# P3 light scaling and Forward+ decision (2026-09-24)
|
||||
|
||||
The first Release measurement of P3 lighting crosses the planned Forward+ gate. On the Linux reference RTX 2080 Ti, 32 local lights added about 0.50 ms of forward raster work, over 28% of the zero-light GPU frame in every visibility mode. At 64 lights the added raster time was about 1.02 ms. The result requires a measured tiled Forward+ implementation under [the P3 plan](../superpowers/plans/2026-09-24-p3-lighting.md); it does not establish a speedup until that implementation is compared on the same workload.
|
||||
The first Release measurement of P3 lighting crosses the planned Forward+ gate. On the Linux reference RTX 2080 Ti, 32 local lights added about 0.50 ms of forward raster work, over 27% of the zero-light GPU frame in every visibility mode. At 64 lights the added raster time was about 1.0 ms. The result requires a measured tiled Forward+ implementation under [the P3 plan](../superpowers/plans/2026-09-24-p3-lighting.md); it does not establish a speedup until that implementation is compared on the same workload.
|
||||
|
||||
## Reproduction and scope
|
||||
|
||||
| Field | Recorded value |
|
||||
| --- | --- |
|
||||
| Source revision | `05906054cf5c4f6a9346ce0b4c507f256566e43e`, clean at the start and end of the sweep |
|
||||
| Benchmark executable SHA-256 | `946850c2354e848a72212a4f15292c8e5564747f4bc60e010a307904d38db8e3` |
|
||||
| Source revision | `029ccb181a7a6352856df564cc98815a34397388`, clean at the start and end of the sweep |
|
||||
| Benchmark executable SHA-256 | `8959c1d0eb289072cb1647ed63813214362f0d879a163107b61b8a96cb275cb6` |
|
||||
| Shader bundle | Seventeen SPIR-V/reflection artifacts, each SHA-256 recorded in the summary and verified unchanged after the sweep |
|
||||
| Host and device | Linux, NVIDIA GeForce RTX 2080 Ti; NVIDIA driver 595.84; physical Vulkan GPU selected by the renderer |
|
||||
| Build | Clang/CMake `linux-release`, 1920 × 1080, Vulkan validation disabled for timing |
|
||||
| Workload | Fixed camera, ten meshes, 0/4/16/32/64/128 point lights; local shadows both off and on; Direct, GPU frustum and GPU occlusion |
|
||||
@@ -18,11 +19,11 @@ The exact command was:
|
||||
```sh
|
||||
python3 tools/benchmark_p3_lighting.py --sweep \
|
||||
--executable build/linux-release/faset_p3_lighting_benchmark \
|
||||
--output /tmp/faset-p3-release-2026-09-24 \
|
||||
--output /tmp/faset-p3-release-hashed-2026-09-24 \
|
||||
--driver NVIDIA-595.84 --validation off
|
||||
```
|
||||
|
||||
The [summary](data/p3-lighting-2026-09-24/forward/summary.json), [merged per-frame CSV](data/p3-lighting-2026-09-24/forward/merged.csv), and [individual raw files](data/p3-lighting-2026-09-24/forward/raw/shadows-off_direct_lights-000_run-1.csv) retain the counters and acquisition order. All 108 individual files are in the adjacent `raw/` directory. The wrapper rejects a dirty source checkout, a changed benchmark binary, a Debug executable, mixed devices/drivers/lighting paths, visibility fallback, validation errors, nonzero omitted-light counts, or inconsistent shadow-face counts. The driver name supplied to the benchmark was cross-checked against `nvidia-smi` and `vulkaninfo`; the device name is reported by Vulkan. This remains a single-machine synthetic scene measurement.
|
||||
The [summary](data/p3-lighting-2026-09-24/forward/summary.json), [merged per-frame CSV](data/p3-lighting-2026-09-24/forward/merged.csv), and [individual raw files](data/p3-lighting-2026-09-24/forward/raw/shadows-off_direct_lights-000_run-1.csv) retain the counters and acquisition order. All 108 individual files are in the adjacent `raw/` directory. The wrapper rejects a dirty source checkout, a changed benchmark binary or shader bundle, a Debug executable, mixed devices/drivers/lighting paths, visibility fallback, validation errors, nonzero omitted-light counts, or inconsistent shadow-face counts. The driver name supplied to the benchmark was cross-checked against `nvidia-smi` and `vulkaninfo`; the device name is reported by Vulkan. This remains a single-machine synthetic scene measurement.
|
||||
|
||||
## Gate result
|
||||
|
||||
@@ -30,12 +31,12 @@ Each configuration's p50 is the median of three run medians. The overhead compar
|
||||
|
||||
| Shadow setting | Visibility | Added raster at 32 lights | At 64 lights | At 128 lights |
|
||||
| --- | --- | ---: | ---: | ---: |
|
||||
| Off | Direct | 0.502 ms (31.0%) | 1.012 ms (62.4%) | 2.033 ms (125.5%) |
|
||||
| Off | GPU frustum | 0.507 ms (32.3%) | 1.017 ms (64.8%) | 2.030 ms (129.4%) |
|
||||
| Off | GPU occlusion | 0.507 ms (28.9%) | 1.020 ms (58.2%) | 2.028 ms (115.7%) |
|
||||
| On | Direct | 0.534 ms (35.3%) | 1.046 ms (69.1%) | 2.074 ms (137.0%) |
|
||||
| On | GPU frustum | 0.538 ms (34.9%) | 1.056 ms (68.5%) | 2.077 ms (134.7%) |
|
||||
| On | GPU occlusion | 0.539 ms (30.7%) | 1.057 ms (60.2%) | 2.079 ms (118.4%) |
|
||||
| Off | Direct | 0.501 ms (31.8%) | 1.008 ms (63.9%) | 2.026 ms (128.5%) |
|
||||
| Off | GPU frustum | 0.506 ms (34.6%) | 1.017 ms (69.7%) | 2.033 ms (139.2%) |
|
||||
| Off | GPU occlusion | 0.507 ms (27.5%) | 1.021 ms (55.3%) | 2.032 ms (110.0%) |
|
||||
| On | Direct | 0.535 ms (35.6%) | 1.046 ms (69.6%) | 2.071 ms (138.0%) |
|
||||
| On | GPU frustum | 0.536 ms (34.5%) | 1.050 ms (67.6%) | 2.066 ms (133.1%) |
|
||||
| On | GPU occlusion | 0.536 ms (30.7%) | 1.051 ms (60.1%) | 2.064 ms (118.2%) |
|
||||
|
||||
All 3,240 frames submitted the requested local-light count, reported zero Vulkan errors, and retained the requested visibility mode. Validation was **off** during the performance sweep; zero reported errors here is not a validation-layer pass. Separate GPU tests exercise validation and image correctness.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user