Skip to content

Preserve pedometer layer transit and via continuity - #2548

Draft
AnasSarkiz wants to merge 7 commits into
mainfrom
codex/pedometer-high-density
Draft

Preserve pedometer layer transit and via continuity#2548
AnasSarkiz wants to merge 7 commits into
mainfrom
codex/pedometer-high-density

Conversation

@AnasSarkiz

@AnasSarkiz AnasSarkiz commented Sep 11, 2026

Copy link
Copy Markdown
Member

Pedometer bug report 103 could finish port-point pathing but stall in high-density routing. Preserve outer-layer transit across an inner copper plane and an empty inner layer, then keep via endpoints connected through boundary cleanup, final repair, and SRJ export.

The original tiny-hypergraph pin c1043b3043ddf0c4d841fe5a6d9a515165960911 and UniformPortDistributionSolver behavior are restored. The local changes expose high-density progress, preserve terminal-wire continuity, and share the existing via conversion between repair and export. Routing budgets, timeout acceptance rules, and existing test assertions are unchanged.

Dependency pins:

The requested same-machine dataset 18 / pipeline 9 benchmark completed on 16 scenarios:

Metric Main PR
Completion / relaxed-DRC pass 13/16 13/16
Timeouts 1 1
Median runtime 92.4s 93.7s (+1.4%)
P90 runtime 247.4s 246.2s (-0.5%)
Average vias 208.54 207.31

There are zero outcome regressions. Samples 6 and 15 fail and sample 14 times out on both revisions. These results replace the earlier broad-change benchmark that lost one completion and increased median runtime by 12%.

The benchmark compared main 109c67b with b24c94f. Current head b387501 differs only by line wrapping in the new regression test; production code, dependency pins, and benchmark scripts are identical.

Validation on b387501: build, TypeScript, format, added-code checks, and preview build pass. Eight of nine CI test jobs pass. The sole failing test is sample 3's SVG snapshot (27.571% difference); main 109c67b reproduces the failure and generates a byte-for-byte identical SVG (SHA-256 4e3da8d6a0d6d5e470b4e9d249bf5555ce3e9402055d752c2effec2d3728121d). Both pass the zero-DRC assertion. The unrelated snapshot is unchanged.

The original low-effort pedometer test remains unchanged. The new default-effort test completes all 1,106 high-density regions and validates via representation. The export and repair regressions fail without their fixes. Existing sample 4 work-budget, sample 8, sample 9 exact-output, and other formerly regressed board checks pass. Rectdiff has 78 passing tests and one existing skip; repair02 has 77 passing tests.

Still draft: a fresh default-effort, cache-disabled pedometer run completes with zero connectivity rollbacks, but has 13 relaxed-DRC errors: one trace-pad contact, four pad clearances, and eight same-net via clearances. Power expansion reaches its existing budget. This fixes the stall and via continuity, but does not produce a zero-error pedometer board.

@vercel

vercel Bot commented Sep 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
capacity-node-autorouter Ready Ready Preview Sep 12, 2026 12:33am UTC

Request Review

@tscircuitbot

Copy link
Copy Markdown
Contributor

Benchmark This PR

Run benchmarks by commenting on this PR:

/benchmark [benchmark.sh args...]
/benchmark-long [benchmark.sh args...]
/benchmark-all [benchmark.sh args except --dataset]
/benchmark --same-machine
/benchmark-all --same-machine
/profile --dataset 18

Comment /benchmark to compare current main and the PR head sequentially on the same 8-vCPU Blacksmith runner using the default dataset, or append any arguments accepted by ./benchmark.sh. Same-machine comparison is enabled by default, except for --pipeline 9net, which uses its dedicated cold/hot benchmark workflow.
Comment /benchmark-long for an 8-vCPU run that defaults to 8 workers and has an eight-hour timeout.
Comment /benchmark-all to start separate workflow runs and result comments for dataset01 and dataset18. You may append benchmark arguments such as --pipeline 9; --dataset is not accepted because the command selects both datasets.
Append --same-machine to /benchmark-long or /benchmark-all to compare current main and the PR head sequentially on the same 8-vCPU Blacksmith runner.
Comment /profile --dataset 18 to compare direct Pipeline 7 stage-time percentages between current main and the PR head sequentially on one Blacksmith runner.

Everything after /benchmark, /benchmark-long, or /benchmark-all is safely forwarded to ./benchmark.sh, except --profile-solvers, which enables profile comparison tables, and --same-machine, which enables the paired runner.
Examples: /benchmark --dataset 18 --sample-timeout 2000s, /benchmark --pipeline 10 --dataset 29, /benchmark --pipeline 10 --dataset 29 --sample 1, /benchmark --pipeline 7 --limit 20, /benchmark all 20 --concurrency 8, /benchmark --same-machine, /benchmark-all --pipeline 9 --same-machine, and /benchmark-long --dataset 18.

Use /update-snapshots (or /us) to run BUN_UPDATE_SNAPSHOTS=1 bun test --timeout 120_000 on the PR branch and auto-commit snapshot updates.
Use /usf to read recent failed test files, update and verify their exact CI test shards, and auto-commit only their snapshots. It uses the configured fast benchmark runner by default; use /usf --ubuntu-latest for GitHub-hosted x64 CI parity.

Any PR whose title contains [BENCHMARK TEST] will automatically run one default-dataset benchmark on PR updates; it does not post a PR result comment.

Copy link
Copy Markdown
Member Author

/benchmark --same-machine --dataset 18 --pipeline 9

@tscircuitbot

tscircuitbot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Same Machine Benchmark Results

Both revisions ran sequentially in one Blacksmith job on blacksmith-01m28hdpx7gtn9qa8rg7b7fcnv-8vcpu.

Dataset: srj18 · Scenarios: 16
Main: 109c67b · PR: 3aa639a

Solver Metric Main PR Delta
Pipeline9 Completion 81.3% (🕒6.3%) 75.0% (🕒6.3%) -6.3 pp
Pipeline9 Relaxed DRC pass 81.3% (🕒6.3%) 75.0% (🕒6.3%) -6.3 pp
Pipeline9 DRC issues 0 0 0
Pipeline9 Timeouts 1 1 0
Pipeline9 P50 time 98.5s 89.0s -9.6%
Pipeline9 P60 time 123.1s 100.7s -18.2%
Pipeline9 P70 time 223.6s 158.9s -29.0%
Pipeline9 P80 time 232.3s 242.6s +4.4%
Pipeline9 P90 time 257.2s 256.8s -0.1%
Pipeline9 P95 time 297.6s 298.2s +0.2%
Pipeline9 Average vias 208.54 203.67 -2.3%

Outcome changes: 0 improved, 1 regressed. DRC issues are totaled across solved samples. Timing percentiles include solved and timed-out samples; negative timing deltas are faster.

Main pipeline stage timings

AutoroutingPipelineSolver9_PreloadedTraceGraph

Recorded timings: 16/16 samples (3 partial, including failed or timed-out samples).
Times are summed across samples; percentages use the total recorded stage time for this solver.

Stage Total time % of stage time
preprocessSimpleRouteJsonSolver 3.734s 0.2%
componentDetectionSolver 0.183s 0.0%
escapeViaLocationSolver 0.663s 0.0%
netToPointPairsSolver 0.787s 0.0%
topologyPlanningSolver 18.702s 0.8%
topologyMergingSolver 19.572s 0.9%
nodeDimensionSubdivisionSolver 0.368s 0.0%
edgeSolver 4.449s 0.2%
availableSegmentPointSolver 1.222s 0.1%
necessaryCrampedPortPointSolver 4.137s 0.2%
preloadedTraceGraphSolver 0.095s 0.0%
portPointPathingSolver 546.904s 24.4%
uniformPortDistributionSolver 4.673s 0.2%
highDensityRouteSolver 1061.685s 47.3%
highDensityForceImproveSolver 20.473s 0.9%
highDensityRepairSolver 0.006s 0.0%
highDensityStitchSolver 1.532s 0.1%
traceSimplificationSolver 131.397s 5.9%
mutatedPreloadedTraceSimplificationSolver 0.282s 0.0%
traceWidthSolver 24.939s 1.1%
globalDrcForceImproveSolver 60.167s 2.7%
pipeline9JointDrcRepairSolver 338.055s 15.1%
lengthMatchingPostProcessingSolver 0.564s 0.0%
powerTraceExpansionSolver 0.001s 0.0%
Total 2244.590s 100.0%
PR pipeline stage timings

AutoroutingPipelineSolver9_PreloadedTraceGraph

Recorded timings: 16/16 samples (4 partial, including failed or timed-out samples).
Times are summed across samples; percentages use the total recorded stage time for this solver.

Stage Total time % of stage time
preprocessSimpleRouteJsonSolver 3.078s 0.2%
componentDetectionSolver 0.210s 0.0%
escapeViaLocationSolver 0.590s 0.0%
netToPointPairsSolver 0.724s 0.0%
topologyPlanningSolver 19.938s 1.0%
topologyMergingSolver 21.920s 1.1%
nodeDimensionSubdivisionSolver 0.414s 0.0%
edgeSolver 5.066s 0.3%
availableSegmentPointSolver 1.347s 0.1%
necessaryCrampedPortPointSolver 3.793s 0.2%
preloadedTraceGraphSolver 0.093s 0.0%
portPointPathingSolver 471.414s 23.8%
uniformPortDistributionSolver 2.890s 0.1%
highDensityRouteSolver 917.467s 46.2%
highDensityForceImproveSolver 24.880s 1.3%
highDensityRepairSolver 0.006s 0.0%
highDensityStitchSolver 1.639s 0.1%
traceSimplificationSolver 129.445s 6.5%
mutatedPreloadedTraceSimplificationSolver 0.329s 0.0%
traceWidthSolver 25.333s 1.3%
globalDrcForceImproveSolver 64.258s 3.2%
pipeline9JointDrcRepairSolver 289.426s 14.6%
lengthMatchingPostProcessingSolver 0.500s 0.0%
powerTraceExpansionSolver 0.001s 0.0%
Total 1984.763s 100.0%
Changed outcomes (1)
Solver Sample Main PR Main time PR time Delta
Pipeline9 8 DRC passed Timeout 226.4s 360.0s Regressed

Workflow: View run
Artifact: Download raw reports

@AnasSarkiz

Copy link
Copy Markdown
Member Author

/benchmark --same-machine --dataset 18 --pipeline

@tscircuitbot

tscircuitbot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Same Machine Benchmark Results

The paired benchmark ended with failure before both reports were produced.

Workflow: View run
Artifact: Download raw reports

Copy link
Copy Markdown
Member Author

/benchmark --same-machine --dataset 18 --pipeline 9

@tscircuitbot

tscircuitbot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Same Machine Benchmark Results

Both revisions ran sequentially in one Blacksmith job on blacksmith-01m28tx82d5q3cvqw6z4jegp60-8vcpu.

Dataset: srj18 · Scenarios: 16
Main: 109c67b · PR: a33dd01

Solver Metric Main PR Delta
Pipeline9 Completion 81.3% (🕒6.3%) 75.0% (🕒12.5%) -6.3 pp
Pipeline9 Relaxed DRC pass 81.3% (🕒6.3%) 75.0% (🕒12.5%) -6.3 pp
Pipeline9 DRC issues 0 0 0
Pipeline9 Timeouts 1 2 +1
Pipeline9 P50 time 105.9s 118.6s +12.0%
Pipeline9 P60 time 126.9s 151.0s +19.0%
Pipeline9 P70 time 238.3s 224.5s -5.8%
Pipeline9 P80 time 260.3s 247.1s -5.1%
Pipeline9 P90 time 287.3s 327.6s +14.1%
Pipeline9 P95 time 317.6s 360.0s +13.3%
Pipeline9 Average vias 208.54 225.08 +7.9%

Outcome changes: 0 improved, 1 regressed. DRC issues are totaled across solved samples. Timing percentiles include solved and timed-out samples; negative timing deltas are faster.

Main pipeline stage timings

AutoroutingPipelineSolver9_PreloadedTraceGraph

Recorded timings: 16/16 samples (3 partial, including failed or timed-out samples).
Times are summed across samples; percentages use the total recorded stage time for this solver.

Stage Total time % of stage time
preprocessSimpleRouteJsonSolver 3.739s 0.2%
componentDetectionSolver 0.197s 0.0%
escapeViaLocationSolver 0.783s 0.0%
netToPointPairsSolver 0.866s 0.0%
topologyPlanningSolver 21.400s 0.9%
topologyMergingSolver 20.126s 0.8%
nodeDimensionSubdivisionSolver 0.391s 0.0%
edgeSolver 4.773s 0.2%
availableSegmentPointSolver 1.409s 0.1%
necessaryCrampedPortPointSolver 4.925s 0.2%
preloadedTraceGraphSolver 0.132s 0.0%
portPointPathingSolver 626.106s 26.1%
uniformPortDistributionSolver 5.619s 0.2%
highDensityRouteSolver 1076.110s 44.9%
highDensityForceImproveSolver 22.693s 0.9%
highDensityRepairSolver 0.008s 0.0%
highDensityStitchSolver 1.932s 0.1%
traceSimplificationSolver 138.595s 5.8%
mutatedPreloadedTraceSimplificationSolver 0.301s 0.0%
traceWidthSolver 25.807s 1.1%
globalDrcForceImproveSolver 60.609s 2.5%
pipeline9JointDrcRepairSolver 379.502s 15.8%
lengthMatchingPostProcessingSolver 0.616s 0.0%
powerTraceExpansionSolver 0.001s 0.0%
Total 2396.639s 100.0%
PR pipeline stage timings

AutoroutingPipelineSolver9_PreloadedTraceGraph

Recorded timings: 16/16 samples (4 partial, including failed or timed-out samples).
Times are summed across samples; percentages use the total recorded stage time for this solver.

Stage Total time % of stage time
preprocessSimpleRouteJsonSolver 3.374s 0.2%
componentDetectionSolver 0.186s 0.0%
escapeViaLocationSolver 0.588s 0.0%
netToPointPairsSolver 0.823s 0.0%
topologyPlanningSolver 21.100s 0.9%
topologyMergingSolver 22.435s 1.0%
nodeDimensionSubdivisionSolver 0.484s 0.0%
edgeSolver 5.566s 0.2%
availableSegmentPointSolver 1.405s 0.1%
necessaryCrampedPortPointSolver 3.990s 0.2%
preloadedTraceGraphSolver 0.102s 0.0%
portPointPathingSolver 571.660s 25.4%
uniformPortDistributionSolver 5.869s 0.3%
highDensityRouteSolver 979.120s 43.6%
highDensityForceImproveSolver 38.161s 1.7%
highDensityRepairSolver 0.007s 0.0%
highDensityStitchSolver 1.969s 0.1%
traceSimplificationSolver 203.166s 9.0%
mutatedPreloadedTraceSimplificationSolver 0.303s 0.0%
traceWidthSolver 24.517s 1.1%
globalDrcForceImproveSolver 66.984s 3.0%
pipeline9JointDrcRepairSolver 295.505s 13.1%
lengthMatchingPostProcessingSolver 0.582s 0.0%
powerTraceExpansionSolver 0.001s 0.0%
Total 2247.894s 100.0%
Changed outcomes (1)
Solver Sample Main PR Main time PR time Delta
Pipeline9 9 DRC passed Failed 62.3s 48.9s Regressed

Workflow: View run
Artifact: Download raw reports

@AnasSarkiz
AnasSarkiz marked this pull request as draft September 12, 2026 00:11
@AnasSarkiz AnasSarkiz changed the title Complete pedometer high-density routing with pinned solver fixes Preserve pedometer layer transit and via continuity Sep 12, 2026

Copy link
Copy Markdown
Member Author

/benchmark --same-machine --dataset 18 --pipeline 9

@tscircuitbot

tscircuitbot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Same Machine Benchmark Results

The paired benchmark ended with cancelled before both reports were produced.

Workflow: View run
Artifact: Download raw reports

Copy link
Copy Markdown
Member Author

/benchmark --same-machine --dataset 18 --pipeline 9

@tscircuitbot

tscircuitbot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Same Machine Benchmark Results

Both revisions ran sequentially in one Blacksmith job on blacksmith-01m29gae63vyc4awtsm82pyknc-8vcpu.

Dataset: srj18 · Scenarios: 16
Main: 109c67b · PR: b24c94f

Solver Metric Main PR Delta
Pipeline9 Completion 81.3% (🕒6.3%) 81.3% (🕒6.3%) 0.0 pp
Pipeline9 Relaxed DRC pass 81.3% (🕒6.3%) 81.3% (🕒6.3%) 0.0 pp
Pipeline9 DRC issues 0 0 0
Pipeline9 Timeouts 1 1 0
Pipeline9 P50 time 92.4s 93.7s +1.4%
Pipeline9 P60 time 115.7s 114.3s -1.2%
Pipeline9 P70 time 218.4s 212.0s -2.9%
Pipeline9 P80 time 225.0s 228.3s +1.5%
Pipeline9 P90 time 247.4s 246.2s -0.5%
Pipeline9 P95 time 290.9s 289.0s -0.6%
Pipeline9 Average vias 208.54 207.31 -0.6%

Outcome changes: 0 improved, 0 regressed. DRC issues are totaled across solved samples. Timing percentiles include solved and timed-out samples; negative timing deltas are faster.

Main pipeline stage timings

AutoroutingPipelineSolver9_PreloadedTraceGraph

Recorded timings: 16/16 samples (3 partial, including failed or timed-out samples).
Times are summed across samples; percentages use the total recorded stage time for this solver.

Stage Total time % of stage time
preprocessSimpleRouteJsonSolver 3.290s 0.2%
componentDetectionSolver 0.134s 0.0%
escapeViaLocationSolver 0.548s 0.0%
netToPointPairsSolver 0.671s 0.0%
topologyPlanningSolver 17.446s 0.8%
topologyMergingSolver 19.442s 0.9%
nodeDimensionSubdivisionSolver 0.362s 0.0%
edgeSolver 4.258s 0.2%
availableSegmentPointSolver 1.111s 0.1%
necessaryCrampedPortPointSolver 3.705s 0.2%
preloadedTraceGraphSolver 0.097s 0.0%
portPointPathingSolver 508.316s 23.7%
uniformPortDistributionSolver 4.300s 0.2%
highDensityRouteSolver 1023.348s 47.7%
highDensityForceImproveSolver 19.926s 0.9%
highDensityRepairSolver 0.006s 0.0%
highDensityStitchSolver 1.523s 0.1%
traceSimplificationSolver 124.264s 5.8%
mutatedPreloadedTraceSimplificationSolver 0.301s 0.0%
traceWidthSolver 23.966s 1.1%
globalDrcForceImproveSolver 56.723s 2.6%
pipeline9JointDrcRepairSolver 329.646s 15.4%
lengthMatchingPostProcessingSolver 0.537s 0.0%
powerTraceExpansionSolver 0.001s 0.0%
Total 2143.919s 100.0%
PR pipeline stage timings

AutoroutingPipelineSolver9_PreloadedTraceGraph

Recorded timings: 16/16 samples (3 partial, including failed or timed-out samples).
Times are summed across samples; percentages use the total recorded stage time for this solver.

Stage Total time % of stage time
preprocessSimpleRouteJsonSolver 3.226s 0.2%
componentDetectionSolver 0.172s 0.0%
escapeViaLocationSolver 0.629s 0.0%
netToPointPairsSolver 0.716s 0.0%
topologyPlanningSolver 17.269s 0.8%
topologyMergingSolver 17.485s 0.8%
nodeDimensionSubdivisionSolver 0.326s 0.0%
edgeSolver 4.013s 0.2%
availableSegmentPointSolver 1.050s 0.0%
necessaryCrampedPortPointSolver 3.768s 0.2%
preloadedTraceGraphSolver 0.092s 0.0%
portPointPathingSolver 504.916s 23.7%
uniformPortDistributionSolver 4.623s 0.2%
highDensityRouteSolver 1025.403s 48.2%
highDensityForceImproveSolver 19.666s 0.9%
highDensityRepairSolver 0.007s 0.0%
highDensityStitchSolver 1.584s 0.1%
traceSimplificationSolver 123.262s 5.8%
mutatedPreloadedTraceSimplificationSolver 0.285s 0.0%
traceWidthSolver 23.434s 1.1%
globalDrcForceImproveSolver 56.707s 2.7%
pipeline9JointDrcRepairSolver 320.309s 15.0%
lengthMatchingPostProcessingSolver 0.554s 0.0%
powerTraceExpansionSolver 0.001s 0.0%
Total 2129.499s 100.0%

Workflow: View run
Artifact: Download raw reports

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants