Skip to content

feat(router): fab-ready fix loop (prune, mutual-legality verdicts, class widths)#671

Merged
ecto merged 3 commits into
mainfrom
fix/gpu-dispatch-fixes
Jul 25, 2026
Merged

feat(router): fab-ready fix loop (prune, mutual-legality verdicts, class widths)#671
ecto merged 3 commits into
mainfrom
fix/gpu-dispatch-fixes

Conversation

@ecto

@ecto ecto commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Tooling that took the routed CM5 to zero route-attributable DRC violations (details in commit message). Companion to the merged #669.

🤖 Generated with Claude Code

ecto and others added 3 commits July 24, 2026 17:44
Two fixes from the M6 reproducibility investigation:

1. wavefront_batch dispatched (n*total)/256 workgroups in one dimension;
   full-board batches need ~129k against the 65535/dim wgpu cap, so the
   first dispatch poisoned the encoder and every subsequent GPU batch
   silently fell back to CPU (observed: 'proposed 7/83' on the 40-net
   subset, 72 dead batches per full CM5 run — every published M6 run was
   effectively CPU-bound). Split over a 2D grid; the shader flattens via
   num_workgroups. After: 'proposed 83/83', zero validation errors.

2. The greedy pass's rip-up loop kept regressing rounds (CM5: 504 -> 489
   placed over a 46-minute round, damage kept). Snapshot before each round
   and restore on regression, matching the negotiation loop's keep-best.

Plus a board_export example (gerbers/excellon/kicad/bom/pick-place from a
routed .pcb.json).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lity verdict commits, class-width joint paths

From the CM5 fab-ready campaign:
- drc::prune_dangling_copper: remove trace/via islands touching no pad or
  pour of their net (rip-up debris; 4,185 dead traces on the CM5 run,
  NetIslands 172 -> 18, better than the fixture baseline's 30)
- cm5_verdict: probe-then-commit per path (cluster paths were only
  node-disjoint on the coarse window grid — two same-cluster paths could
  overlap at exact geometry); route/commit SI-class nets at class width;
  exclude plane-fed nets from the verdict ratsnest
- strip_nets + prune_copper + board_export examples: the DRC fix loop
  (strip offenders -> session-probed reroute -> prune -> re-DRC) that took
  the CM5 board to zero route-attributable violations in 5 rounds

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
vcad-mcp Building Building Preview, Comment Jul 24, 2026 11:44pm
3 Skipped Deployments
Project Deployment Actions Updated (UTC)
mecheval Ignored Ignored Jul 24, 2026 11:44pm
vcad Ignored Ignored Jul 24, 2026 11:44pm
vcad-docs Ignored Ignored Jul 24, 2026 11:44pm

Request Review

@chojiai

chojiai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Choji has used up today's reviews

Your team has reached the free plan's limit of 5 reviews per day, so Choji stepped aside on this pull request. That's a plan limit, not a reflection of the change itself.

Your free reviews reset tomorrow. To have Choji review every push without waiting, upgrade to Pro for unlimited reviews.

You're on the free plan · 5 reviews/day.

@ecto
ecto merged commit 408aab2 into main Jul 25, 2026
15 checks passed
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.

1 participant