research(standalone): far-field round -- measured only; LOD8 1.35 s but unproven, LOD6 default 1.74 s
No source change kept. LOD8 changes a remote view (29k of 1.02 M pixels) and no check proves distant strata survive; LOD7 renders the same remote view as LOD8. Default stays LOD6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
1 parent
9ffe296cd1
commit
5602a281b9
5 files changed
+43
No files matched your search
@@ -1,5 +1,40 @@
|
||||
# Shape world speed round — final half-load verification
|
||||
|
||||
## Round 5 — far-field LOD8 trial (2026-10-04)
|
||||
|
||||
### Result and decision
|
||||
|
||||
The coarse far-shell candidate meets the requested **under-1.5 s** W8 process-wall threshold on two cold, full-payload runs, but I did not promote it: a remote yaw-90 capture changes 28,982 of 1,024,000 pixels versus LOD6 (max channel delta 38), and no per-shell/per-connector coarse-sampling survival proof exists. The source and rebuilt default therefore remain at exported LOD6. The LOD8 experiment is reproducible with `--max-clip-level=8`; it is not evidence that thin strata, seals, or distant connectors all survive.
|
||||
|
||||
### Cold full-payload W8 measurements
|
||||
|
||||
All runs used `--force-generate`, 8 workers, full UVs/colors/material groups, no cache, BelowNormal priority and affinity `0xFF00`. Process wall includes startup and world setup; collision cooking and GPU upload are outside this standalone measurement.
|
||||
|
||||
| Max LOD | Process wall A/B (mean) | Shape stage A/B (mean) | Full-detail stream A/B | Full clipmap A/B (mean) | Tiles | Payload allocation | Cache hits |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| 6, final exported default | 1.809 / 1.664 s (**1.737 s**) | 706 / 696 ms (**701 ms**) | 247 / 226 ms | 850 / 861 ms (**856 ms**) | 6,498 | 235.29 MiB | 0 |
|
||||
| 8, candidate | 1.406 / 1.289 s (**1.348 s**) | 698 / 703 ms (**700 ms**) | 215 / 212 ms | 434 / 431 ms (**433 ms**) | 2,226 | 92.61 MiB | 0 |
|
||||
|
||||
The candidate cuts full clipmap wall by about 49% and reduces LOD6–8 samples from 32.717 M to 3.415 M (about 90%). It retains full payload channels. The full-payload logs are [default LOD6 A](round5_final_default6_full_payload_w8_a.stdout.log), [B](round5_final_default6_full_payload_w8_b.stdout.log), [candidate LOD8 A](round5_final_default_full_payload_w8_a.stdout.log), and [B](round5_final_default_full_payload_w8_b.stdout.log), with runner records alongside them. LOD6 remains 0.237 s above the process-wall target on this pair; the candidate is 0.152 s below it.
|
||||
|
||||
### Determinism and audits
|
||||
|
||||
The final LOD6 executable, [build log](round5_farfield/round5_default6_build.log), matches all 36 density/mesh/full-payload/oriented-topology fields across W1/W8 for full detail, whole clipmap, and LOD0–6: [comparison](round5_final_default6_hash_compare.log), [W1](round5_final_default6_hash_w1.stdout.log), [W8](round5_final_default6_hash_w8.stdout.log). The candidate LOD8 W1/W8 comparison matches all 44 fields across full detail, whole clipmap, and LOD0–8: [comparison](round5_lod8_default_hash_compare.log), [W1](round5_lod8_default_hash_w1.stdout.log), [W8](round5_lod8_default_hash_w8.stdout.log). Both workloads report 5,642/5,642 route samples open and zero cache hits. The W8 shard audit passes for LOD0 (zero isolated-in-view small components); it does not cover coarse far-shell survival.
|
||||
|
||||
The final default's W8 shape/look audit is green: route, room-floor, floor-slope, floor-profile, tunnel-radius, flat-surface, grid-stair, thin-sheet, strata/cave surface-band, flat-patch, detail, and spatial-scale checks all pass. See [audit output](round5_final_default6_shape_audit_w8.stdout.log). The LOD8 candidate audit is [here](round5_lod8_shape_audit_w8.stdout.log); these audits run the detailed shape checks in the near compiled region and are not the missing far-LOD survival check.
|
||||
|
||||
### Captures and far-field discrepancy
|
||||
|
||||
The six requested before/after capture pairs were taken after `[InitialClipmapReady]`. The LOD6 and candidate LOD8 images compare pixel-identically for chamber, tunnel, passage, far yaw 0, floor close-up, and tunnel bend; the three additional center-camera far directions (yaw 90/180/270) also compare exactly. [Pixel comparison](round5_default_capture_pixel_compare.stdout.log). Example: [LOD6 chamber](round5_farfield/lod6_fixed_chamber.png) / [LOD8 chamber](round5_farfield/default_fixed_chamber.png); [LOD6 far yaw 90](round5_farfield/lod6_far_yaw90.png) / [LOD8 far yaw 90](round5_farfield/default_far_yaw90.png).
|
||||
|
||||
I added a remote camera at X=500 m and swept four headings. At yaw 90, the candidate changes 28,982 pixels (86,923 channels; mean absolute channel delta 0.227); the changed region is concentrated in lower far silhouettes. Yaw 180 is identical; yaw 270 changes 143 pixels with max delta 1. Yaw 0's 19 pixels at max delta 1 match same-LOD capture jitter: a repeated LOD6 image differs by the same 19 pixels, and that repeat is identical to LOD8. The LOD7 yaw-90 image is pixel-identical to LOD8, so LOD7 does not resolve this case. See [remote sweep comparison](round5_remote_sweep_pixel_compare.stdout.log), [capture variance check](round5_remote_capture_variance_compare.stdout.log), [LOD6 yaw 90](round5_farfield/lod6_remote_x500_yaw90.png), [LOD8 yaw 90](round5_farfield/default_remote_x500_yaw90.png), [LOD7 yaw 90](round5_farfield/lod7_remote_x500_yaw90.png), and [scaled difference](round5_farfield/remote_yaw90_diff_x5.png). The mismatch is small in area but real; without a feature-survival proof I am keeping the safe default at LOD6.
|
||||
|
||||
### Builds and failed invocations
|
||||
|
||||
Both the temporary-default-LOD8 candidate and the restored-default-LOD6 executable built successfully with `/MP8` or less under the machine cap. The build logs contain the recurring French `vswhere.exe` diagnostic and six existing C4838 warnings; both builds exited successfully. Two initial W1/W8 hash-launch wrappers failed before starting a child because of malformed PowerShell array syntax; corrected launches both exited 0. An initial comparison parser also counted only one hash per output line (9 fields); the corrected all-match parser compared 36/36 and passed. No workload or build failed with `0xC0000142` or showed an out-of-memory condition. No viewer was closed.
|
||||
|
||||
No source diff remains: the exported LOD6 default was restored and rebuilt as [VoxelForgeRound5Default6.exe](../../../bin/VoxelForgeRound5Default6.exe); the LOD8 candidate remains available as [VoxelForgeRound5Farfield.exe](../../../bin/VoxelForgeRound5Farfield.exe). No commit, push, or stash was made. The far-field goal is not complete: next work needs an explicit shell/connector survival checker and likely feature-aware refinement or explicit far surfaces before the faster sampling can become the default.
|
||||
|
||||
## Round 3 update — measured payload path and current result
|
||||
|
||||
This update supersedes the earlier headline timings, hash values, and capture references below. The sections that follow retain the previous-round context. With the exported LOD6 limit, the latest cold full-payload W8 pair averaged **1.917 s**. The best tested opt-in LOD8 far-shell pair averaged **1.451 s**, still **0.451 s above** the under-one-second goal. The LOD8 option is `--max-clip-level=8`; it retains LOD0–5 and distributes the same render distance over LOD6–8. Cache hits were zero in every run.
|
||||
|
||||
@@ -85,3 +85,11 @@ Takeover continuation — half-load rule restored
|
||||
- Regenerated six fixed captures under the cap; five are byte-identical to the preceding rebuilt captures. Passage differs in 662/1,024,000 pixels (max channel delta 97) but looks unchanged side by side; owner/world visual differences remain, documented in REPORT.md.
|
||||
- Failed invocations preserved in REPORT.md: one wrong executable name stopped before starting a child, and the first capture batch split --camera/--capture values and exited 2 before opening a viewer. Corrected runs all passed. One earlier dense-cache build had CellsPerAxis out of scope; corrected build succeeded before that prototype was reverted. The final build succeeds with recurring vswhere diagnostic and six existing C4838 warnings.
|
||||
- Updated REPORT.md with the full-payload stage table, per-LOD data, complete hashes, skip and reserve A/B, route/edit/audit results, six captures, and failure log. No changes outside Standalone; no commit, push, or stash.
|
||||
Round 5 continuation — far-field LOD8 trial (2026-10-04)
|
||||
- Read REPORT.md and predecessor progress first. Built a temporary LOD8-default candidate, measured it, then restored and rebuilt the source's exported LOD6 default. No tracked source diff remains; all build outputs, captures, logs and report updates are under Standalone.
|
||||
- Cold W8 full-payload LOD8 process walls were 1.406/1.289 s (mean 1.348); shape stage 698/703 ms; full-detail stream 215/212 ms; full clipmap 434/431 ms. It generated 2,226 tiles, used 92.61 MiB payload allocation and had zero cache hits. LOD6–8 used 3.415 M density samples versus LOD6's 32.717 M.
|
||||
- Restored-default LOD6 W8 full-payload process walls were 1.809/1.664 s (mean 1.737); shape stage 706/696 ms; full-detail stream 247/226 ms; full clipmap 850/861 ms. It generated 6,498 tiles, used 235.29 MiB and had zero cache hits. Thus LOD8 crosses 1.5 s, but LOD6 misses it by 0.237 s.
|
||||
- Candidate LOD8 and final-default LOD6 both match their W1/W8 full-payload hashes (44/44 and 36/36 respectively), retain 5,642/5,642 open route samples and pass the requested W8 detailed shape/look audit. LOD0 shard audit passes with no isolated-in-view small components; it is not a far-shell proof.
|
||||
- Six fixed after-clipmap captures and three additional center-camera far headings are pixel-identical between LOD6 and LOD8. The remote X=500 m yaw-90 comparison changes 28,982/1,024,000 pixels (max channel delta 38); yaw 180 is identical and yaw 270 changes 143 pixels (max 1). LOD7's yaw-90 capture is identical to LOD8. Since the per-shell/per-connector coarse-sampling survival audit is not implemented, retained default LOD6 and left LOD8 opt-in; the far-field goal is not yet complete.
|
||||
- Both builds succeeded at /MP8 or less and all child runs used BelowNormal/0xFF00. Build logs retain the non-fatal vswhere diagnostic and six existing C4838 warnings. Two initial hash wrapper invocations failed before child launch due to PowerShell array syntax; corrected W1/W8 runs exited 0. An initial hash parser counted 9 fields because it took one match per line; corrected all-match parser passed. No build/run OOM or 0xC0000142; never closed a viewer.
|
||||
- Updated REPORT.md with timings, hash checks, audit scope, captures, remote discrepancy, machine setup and failed invocations. No commit, push, or stash.
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 3.9 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.9 MiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
Reference in new issue
Block a user