Fr0zkaandClaude Opus 5 83a0e4d85c measure(classifier): outer classifier is net-negative in game; nested 3.5x IS real
Three-mode outer-classifier A/B on the headless game path, nested refinement off in all
modes, clean and diagnostics off. Runs made by the forked Codex session; the table was
assembled and checked by me from its logs (Saved/OuterABMode*_20260912.log,
OuterABMove*Headless_20260912.log).

  static  ready p95   mode0 182.4-182.7   mode1 189.7-194.8   mode2 190.0-194.7 ms
          gen p95     mode0 124.9-127.0   mode1 139.1-140.6   mode2 140.3-141.3 ms
          worker CPU  mode0 184.9-193.5   mode1 201.2-202.3   mode2 201.2-201.3 s
          density     mode0 18.05M        mode1 21.89M        mode2 21.89M
  moving  ready p95   mode0 198.9         mode1 208.0         mode2 210.7 ms
          density     mode0 57.7M         mode1 69.6M         mode2 69.6M

The outer classifier costs more than it saves: with it removed (mode 0), every latency
figure improves and density calls drop by about 18%. Mode 0 also cannot remove geometry,
because it skips nothing.

Mode 2 (reuse the validation samples as the mesher's core grid) recorded 0 reuse tiles in
every run. That is by design, not a bug: the grid is only reused when validation DISPROVES
a uniform verdict, and it disproved none. Mixed tiles, which are the ones that need a
grid, never run validation at all.

Recommendation recorded in WORK-NEXT.md, pending the owner: default the outer classifier
mode to 0. The code default is NOT changed in this commit.

CORRECTION to f204413, whose message says the nested classifier's 3.5x could not be
reproduced. That was my error. I passed the streaming console variable
-voxel.UseBlockEarlyOut=1 to the export commandlet, which reads its own -blockearlyout=
argument (VoxelForgeExploreCommandlet.cpp:381, :1093), so both of my runs had nested
refinement off. Re-run with the right flag:
  -blockearlyout=0   0.553 / 0.572 s
  -blockearlyout=1   2.036 / 2.060 s     3.6x, geometry SHA-256 b3e5f4c3..9b377 identical
The 3.5x was real. Turning nested refinement off in streaming (f204413) was worth it,
and Sol's reading of the table was right where mine was wrong.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VZS94UH8bSsBeg5sZaxe2Y
2026-09-12 22:02:53 +02:00
S
Description
No description provided
107 MiB
0 Stars 1 Watchers 0 Forks
Languages
C++ 97.6%
C 2.3%
C# 0.1%