@graphty/webgpu-graph-algorithms 0.6.5 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +38 -17
  2. package/dist/browser.js +1 -1
  3. package/dist/chunks/{context-hzGggHeM.js → context-DiSr6eiz.js} +32 -18
  4. package/dist/chunks/context-DiSr6eiz.js.map +1 -0
  5. package/dist/node.js +1 -1
  6. package/dist/src/algorithms/bfs.d.ts +10 -6
  7. package/dist/src/algorithms/bfs.d.ts.map +1 -1
  8. package/dist/src/algorithms/bfs.js +32 -9
  9. package/dist/src/algorithms/bfs.js.map +1 -1
  10. package/dist/src/constants.d.ts +33 -0
  11. package/dist/src/constants.d.ts.map +1 -1
  12. package/dist/src/constants.js +33 -0
  13. package/dist/src/constants.js.map +1 -1
  14. package/dist/src/kernel/dispatch.d.ts +2 -2
  15. package/dist/src/kernel/dispatch.d.ts.map +1 -1
  16. package/dist/src/kernel/kernel.d.ts +1 -1
  17. package/dist/src/kernel/kernel.js +2 -2
  18. package/dist/src/kernel/kernel.js.map +1 -1
  19. package/dist/src/kernel/prelude.d.ts.map +1 -1
  20. package/dist/src/kernel/prelude.js +2 -1
  21. package/dist/src/kernel/prelude.js.map +1 -1
  22. package/dist/src/kernels.d.ts +10 -7
  23. package/dist/src/kernels.d.ts.map +1 -1
  24. package/dist/src/kernels.js +33 -9
  25. package/dist/src/kernels.js.map +1 -1
  26. package/dist/src/layouts/forceatlas2.d.ts.map +1 -1
  27. package/dist/src/layouts/forceatlas2.js +2 -1
  28. package/dist/src/layouts/forceatlas2.js.map +1 -1
  29. package/dist/src/layouts/fruchterman-reingold.d.ts.map +1 -1
  30. package/dist/src/layouts/fruchterman-reingold.js +4 -2
  31. package/dist/src/layouts/fruchterman-reingold.js.map +1 -1
  32. package/dist/src/layouts/repulsion-exact.d.ts +16 -0
  33. package/dist/src/layouts/repulsion-exact.d.ts.map +1 -1
  34. package/dist/src/layouts/repulsion-exact.js +21 -1
  35. package/dist/src/layouts/repulsion-exact.js.map +1 -1
  36. package/dist/src/layouts/repulsion-grid.d.ts +1 -1
  37. package/dist/src/layouts/repulsion-grid.js +1 -1
  38. package/dist/src/layouts/spring-electrical.d.ts.map +1 -1
  39. package/dist/src/layouts/spring-electrical.js +6 -2
  40. package/dist/src/layouts/spring-electrical.js.map +1 -1
  41. package/dist/src/primitives/frontier.d.ts +1 -0
  42. package/dist/src/primitives/frontier.d.ts.map +1 -1
  43. package/dist/src/primitives/frontier.js +1 -0
  44. package/dist/src/primitives/frontier.js.map +1 -1
  45. package/dist/src/primitives/grid-pyramid.d.ts +4 -4
  46. package/dist/src/primitives/grid-pyramid.d.ts.map +1 -1
  47. package/dist/src/primitives/grid-pyramid.js +4 -3
  48. package/dist/src/primitives/grid-pyramid.js.map +1 -1
  49. package/dist/src/primitives/grid.d.ts +13 -10
  50. package/dist/src/primitives/grid.d.ts.map +1 -1
  51. package/dist/src/primitives/grid.js +10 -7
  52. package/dist/src/primitives/grid.js.map +1 -1
  53. package/dist/src/wgsl/advance-expand.wgsl.d.ts +4 -3
  54. package/dist/src/wgsl/advance-expand.wgsl.d.ts.map +1 -1
  55. package/dist/src/wgsl/advance-expand.wgsl.js +4 -3
  56. package/dist/src/wgsl/advance-expand.wgsl.js.map +1 -1
  57. package/dist/src/wgsl/bfs-bottom-up.wgsl.d.ts +4 -3
  58. package/dist/src/wgsl/bfs-bottom-up.wgsl.d.ts.map +1 -1
  59. package/dist/src/wgsl/bfs-bottom-up.wgsl.js +4 -3
  60. package/dist/src/wgsl/bfs-bottom-up.wgsl.js.map +1 -1
  61. package/dist/src/wgsl/bfs-fused.wgsl.d.ts +6 -6
  62. package/dist/src/wgsl/bfs-fused.wgsl.d.ts.map +1 -1
  63. package/dist/src/wgsl/bfs-fused.wgsl.js +6 -6
  64. package/dist/src/wgsl/bfs-next-degree.wgsl.d.ts +23 -0
  65. package/dist/src/wgsl/bfs-next-degree.wgsl.d.ts.map +1 -0
  66. package/dist/src/wgsl/bfs-next-degree.wgsl.js +34 -0
  67. package/dist/src/wgsl/bfs-next-degree.wgsl.js.map +1 -0
  68. package/dist/src/wgsl/fa2-repulsion-exact.wgsl.d.ts +4 -1
  69. package/dist/src/wgsl/fa2-repulsion-exact.wgsl.d.ts.map +1 -1
  70. package/dist/src/wgsl/fa2-repulsion-exact.wgsl.js +18 -2
  71. package/dist/src/wgsl/fa2-repulsion-exact.wgsl.js.map +1 -1
  72. package/dist/src/wgsl/fa2-stats-finalize.wgsl.d.ts +1 -1
  73. package/dist/src/wgsl/fa2-stats-finalize.wgsl.d.ts.map +1 -1
  74. package/dist/src/wgsl/fa2-stats-finalize.wgsl.js +4 -2
  75. package/dist/src/wgsl/fa2-stats-finalize.wgsl.js.map +1 -1
  76. package/dist/src/wgsl/frontier-finalize.wgsl.d.ts +21 -20
  77. package/dist/src/wgsl/frontier-finalize.wgsl.d.ts.map +1 -1
  78. package/dist/src/wgsl/frontier-finalize.wgsl.js +26 -25
  79. package/dist/src/wgsl/frontier-finalize.wgsl.js.map +1 -1
  80. package/dist/src/wgsl/grid-cell-key.wgsl.d.ts +3 -2
  81. package/dist/src/wgsl/grid-cell-key.wgsl.d.ts.map +1 -1
  82. package/dist/src/wgsl/grid-cell-key.wgsl.js +4 -2
  83. package/dist/src/wgsl/grid-cell-key.wgsl.js.map +1 -1
  84. package/dist/src/wgsl/grid-centroid.wgsl.d.ts +3 -2
  85. package/dist/src/wgsl/grid-centroid.wgsl.d.ts.map +1 -1
  86. package/dist/src/wgsl/grid-centroid.wgsl.js +3 -2
  87. package/dist/src/wgsl/grid-centroid.wgsl.js.map +1 -1
  88. package/dist/src/wgsl/grid-downsample.wgsl.d.ts +1 -1
  89. package/dist/src/wgsl/grid-downsample.wgsl.js +1 -1
  90. package/dist/src/wgsl/grid-far-field.wgsl.d.ts +6 -4
  91. package/dist/src/wgsl/grid-far-field.wgsl.d.ts.map +1 -1
  92. package/dist/src/wgsl/grid-far-field.wgsl.js +15 -8
  93. package/dist/src/wgsl/grid-far-field.wgsl.js.map +1 -1
  94. package/dist/src/wgsl/grid-near-field.wgsl.d.ts +2 -2
  95. package/dist/src/wgsl/grid-near-field.wgsl.d.ts.map +1 -1
  96. package/dist/src/wgsl/grid-near-field.wgsl.js +6 -2
  97. package/dist/src/wgsl/grid-near-field.wgsl.js.map +1 -1
  98. package/dist/src/wgsl/histogram.wgsl.d.ts +1 -1
  99. package/dist/src/wgsl/histogram.wgsl.js +1 -1
  100. package/dist/webgpu-graph-algorithms.js +124 -40
  101. package/dist/webgpu-graph-algorithms.js.map +1 -1
  102. package/package.json +3 -3
  103. package/src/algorithms/bfs.ts +33 -9
  104. package/src/algorithms/pagerank.ts +19 -5
  105. package/src/algorithms/power-iteration.ts +8 -2
  106. package/src/constants.ts +35 -0
  107. package/src/kernel/dispatch.ts +2 -2
  108. package/src/kernel/kernel.ts +2 -2
  109. package/src/kernel/prelude.ts +2 -0
  110. package/src/kernels.ts +35 -9
  111. package/src/layouts/forceatlas2.ts +2 -0
  112. package/src/layouts/fruchterman-reingold.ts +4 -1
  113. package/src/layouts/repulsion-exact.ts +29 -1
  114. package/src/layouts/repulsion-grid.ts +1 -1
  115. package/src/layouts/spring-electrical.ts +8 -1
  116. package/src/memory/residency.ts +14 -4
  117. package/src/primitives/frontier.ts +2 -0
  118. package/src/primitives/grid-pyramid.ts +6 -5
  119. package/src/primitives/grid.ts +17 -12
  120. package/src/wgsl/advance-expand.wgsl.ts +4 -3
  121. package/src/wgsl/bfs-bottom-up.wgsl.ts +4 -3
  122. package/src/wgsl/bfs-fused.wgsl.ts +6 -6
  123. package/src/wgsl/bfs-next-degree.wgsl.ts +33 -0
  124. package/src/wgsl/fa2-repulsion-exact.wgsl.ts +18 -2
  125. package/src/wgsl/fa2-stats-finalize.wgsl.ts +4 -2
  126. package/src/wgsl/frontier-finalize.wgsl.ts +26 -25
  127. package/src/wgsl/grid-cell-key.wgsl.ts +4 -2
  128. package/src/wgsl/grid-centroid.wgsl.ts +3 -2
  129. package/src/wgsl/grid-downsample.wgsl.ts +1 -1
  130. package/src/wgsl/grid-far-field.wgsl.ts +15 -8
  131. package/src/wgsl/grid-near-field.wgsl.ts +6 -2
  132. package/src/wgsl/histogram.wgsl.ts +1 -1
  133. package/dist/chunks/context-hzGggHeM.js.map +0 -1
package/dist/node.js CHANGED
@@ -1,4 +1,4 @@
1
- import { W as WebGpuGraphError, G as GpuContext } from "./chunks/context-hzGggHeM.js";
1
+ import { W as WebGpuGraphError, G as GpuContext } from "./chunks/context-DiSr6eiz.js";
2
2
  const INSTALL_HINT = "install the optional peer dependency webgpu@0.4.0";
3
3
  function isDawnModule(loaded) {
4
4
  return typeof loaded === "object" && loaded !== null && typeof loaded.create === "function";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Breadth-first search on the device (design 8.4, 3.3 line 807, 9.7; P8-T6 / P8-T7 / P8-T8, the P8 plan's PD-5 /
3
3
  * PD-6 / PD-7 / PD-14 / PD-18 / PD-21 / PD-23 / PD-24 / PD-26 / DEP-P8-B): the direction-optimizing traversal over
4
- * the `Frontier` of P8-T4, every per-level choice made ON THE DEVICE. Every level is eight recorded dispatches, all
4
+ * the `Frontier` of P8-T4, every per-level choice made ON THE DEVICE. Every level is nine recorded dispatches, all
5
5
  * DIRECT (2026-09-25, docs/decisions/G8.md G8-F5: Dawn validates every `dispatchWorkgroupsIndirect` with an internal
6
6
  * clamp pass costing about 0.4 ms of device time whether or not it dispatches anything, in Node and in Chromium
7
7
  * alike, and that was 97 % of a traversal's wall time) -- `frontier-finalize` role 0 (the level boundary: rotates
@@ -13,11 +13,15 @@
13
13
  * per frontier entry with the same claim inline and no edge queue; the fused level and the retry alike), then the
14
14
  * bottom-up trio: a `fill` zeroing the frontier bitset, `bfs-bitset-build` setting the frontier's bits, and
15
15
  * `bfs-bottom-up` sweeping the unvisited list over the REVERSE core (each unvisited vertex reads its in-neighbours
16
- * until the first one in the bitset and claims itself). Every kernel is a grid-stride dispatch of a host-planned
17
- * grid (`planGridStride`) that loops to its count word and reads the path word first, so exactly one path does the
18
- * level's work and the others cost one uniform load per workgroup. The unvisited set Beamer's test is against (PD-18) is rebuilt exactly once per submit, before
19
- * the levels, by `bfs-unvisited-flags` plus `compact` over an iota queue, and maintained between rebuilds by
20
- * subtraction inside the selector (whose JSDoc states the boundary rule). The host records `MAX_LEVELS_PER_SUBMIT`
16
+ * until the first one in the bitset and claims itself), and last `bfs-next-degree` (the out-degree sum of whatever
17
+ * the level claimed, into the block's `nextDegreeSum` word: Beamer's m_f for the NEXT boundary, measured on the
18
+ * frontier that boundary decides for -- issue #391, which found the previous proxy, the degree of the frontier just
19
+ * expanded, one level stale and missing the switch at the level holding two thirds of the 1M / 10M R-MAT's arcs).
20
+ * Every kernel is a grid-stride dispatch of a host-planned grid (`planGridStride`) that loops to its count word and
21
+ * reads the path word first, so exactly one path does the level's work and the others cost one uniform load per
22
+ * workgroup. The unvisited set Beamer's test is against (PD-18) is rebuilt exactly once per submit, before the
23
+ * levels, by `bfs-unvisited-flags` plus `compact` over an iota queue, and maintained between rebuilds by subtraction
24
+ * inside the selector (whose JSDoc states the boundary rule; both words are exact at every boundary). The host records `MAX_LEVELS_PER_SUBMIT`
21
25
  * levels into ONE command buffer, submits, and reads four bytes, the `done` word (PD-7): a road network has
22
26
  * thousands of levels and a per-level `mapAsync` would be slower than the CPU. A level recorded past the end is a
23
27
  * no-op (its boundary finds `done` set, writes path 0 and moves no counter), so the loop needs no diameter and
@@ -1 +1 @@
1
- {"version":3,"file":"bfs.d.ts","sourceRoot":"","sources":["../../../src/algorithms/bfs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,uBAAuB,CAAC;AAGpF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAmBhD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAohB1D;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAC9B,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,aAAa,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,UAAU,GAAG,aAAa,GACrC,OAAO,CAAC,YAAY,CAAC,CAEvB"}
1
+ {"version":3,"file":"bfs.d.ts","sourceRoot":"","sources":["../../../src/algorithms/bfs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,uBAAuB,CAAC;AAGpF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAmBhD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAwiB1D;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAC9B,GAAG,EAAE,UAAU,EACf,CAAC,EAAE,aAAa,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,UAAU,GAAG,aAAa,GACrC,OAAO,CAAC,YAAY,CAAC,CAEvB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Breadth-first search on the device (design 8.4, 3.3 line 807, 9.7; P8-T6 / P8-T7 / P8-T8, the P8 plan's PD-5 /
3
3
  * PD-6 / PD-7 / PD-14 / PD-18 / PD-21 / PD-23 / PD-24 / PD-26 / DEP-P8-B): the direction-optimizing traversal over
4
- * the `Frontier` of P8-T4, every per-level choice made ON THE DEVICE. Every level is eight recorded dispatches, all
4
+ * the `Frontier` of P8-T4, every per-level choice made ON THE DEVICE. Every level is nine recorded dispatches, all
5
5
  * DIRECT (2026-09-25, docs/decisions/G8.md G8-F5: Dawn validates every `dispatchWorkgroupsIndirect` with an internal
6
6
  * clamp pass costing about 0.4 ms of device time whether or not it dispatches anything, in Node and in Chromium
7
7
  * alike, and that was 97 % of a traversal's wall time) -- `frontier-finalize` role 0 (the level boundary: rotates
@@ -13,11 +13,15 @@
13
13
  * per frontier entry with the same claim inline and no edge queue; the fused level and the retry alike), then the
14
14
  * bottom-up trio: a `fill` zeroing the frontier bitset, `bfs-bitset-build` setting the frontier's bits, and
15
15
  * `bfs-bottom-up` sweeping the unvisited list over the REVERSE core (each unvisited vertex reads its in-neighbours
16
- * until the first one in the bitset and claims itself). Every kernel is a grid-stride dispatch of a host-planned
17
- * grid (`planGridStride`) that loops to its count word and reads the path word first, so exactly one path does the
18
- * level's work and the others cost one uniform load per workgroup. The unvisited set Beamer's test is against (PD-18) is rebuilt exactly once per submit, before
19
- * the levels, by `bfs-unvisited-flags` plus `compact` over an iota queue, and maintained between rebuilds by
20
- * subtraction inside the selector (whose JSDoc states the boundary rule). The host records `MAX_LEVELS_PER_SUBMIT`
16
+ * until the first one in the bitset and claims itself), and last `bfs-next-degree` (the out-degree sum of whatever
17
+ * the level claimed, into the block's `nextDegreeSum` word: Beamer's m_f for the NEXT boundary, measured on the
18
+ * frontier that boundary decides for -- issue #391, which found the previous proxy, the degree of the frontier just
19
+ * expanded, one level stale and missing the switch at the level holding two thirds of the 1M / 10M R-MAT's arcs).
20
+ * Every kernel is a grid-stride dispatch of a host-planned grid (`planGridStride`) that loops to its count word and
21
+ * reads the path word first, so exactly one path does the level's work and the others cost one uniform load per
22
+ * workgroup. The unvisited set Beamer's test is against (PD-18) is rebuilt exactly once per submit, before the
23
+ * levels, by `bfs-unvisited-flags` plus `compact` over an iota queue, and maintained between rebuilds by subtraction
24
+ * inside the selector (whose JSDoc states the boundary rule; both words are exact at every boundary). The host records `MAX_LEVELS_PER_SUBMIT`
21
25
  * levels into ONE command buffer, submits, and reads four bytes, the `done` word (PD-7): a road network has
22
26
  * thousands of levels and a per-level `mapAsync` would be slower than the CPU. A level recorded past the end is a
23
27
  * no-op (its boundary finds `done` set, writes path 0 and moves no counter), so the loop needs no diameter and
@@ -62,6 +66,8 @@ import { prepareRadixSort, radixHistBytes } from "../primitives/radix-sort.js";
62
66
  import { assertDeviceComputes } from "../primitives/verify.js";
63
67
  import { algorithmScope } from "./scope.js";
64
68
  const ALGORITHM = "breadthFirstSearch";
69
+ /** Workgroups of the `bfs-next-degree` grid (issue #391): enough to sum n out-degrees by grid stride, few enough that a high-diameter traversal does not pay a full-width reduction per level. */
70
+ const NEXT_DEGREE_MAX_GROUPS = 128;
65
71
  /**
66
72
  * Params slots of the ring, COUNTED per run (P8-T12), because `UniformRing.reserve` wraps to slot 0 when a submit's
67
73
  * records outrun the ring and silently overwrites a record the submit still reads; the ring's `overruns` counts
@@ -70,8 +76,9 @@ const ALGORITHM = "breadthFirstSearch";
70
76
  * `bfs-contract`, the bits `fill`, `bfs-bitset-build`) and four re-issued once per arc window (`advance-expand`,
71
77
  * `bfs-fused`, the fused retry, `bfs-bottom-up`). The driver as built writes fewer -- the contract and the bitset
72
78
  * build share one window-free record, a window's two fused dispatches share one, the bits fill has one record per
73
- * submit, and a directed snapshot's reverse view is one window whatever the forward core's count -- so at most
74
- * `3 + 3 x windows` per level, and the bound holds with room. The 16 covers the per-submit rebuild
79
+ * submit, `bfs-next-degree` has one window-free record of its own (issue #391), and a directed snapshot's reverse
80
+ * view is one window whatever the forward core's count -- so at most `4 + 3 x windows` per level, and the bound
81
+ * holds with room. The 16 covers the per-submit rebuild
75
82
  * (`bfs-unvisited-flags` and `compact`, whose scan is at most 9 dispatches for any n below 2^32, so 10, plus the
76
83
  * bits fill). The result batch flushes in its own submit, so the ring must hold IT too, and its size grows with `n`,
77
84
  * not with the cadence: the iota `fill`, the radix sort's four passes of one record plus its scan's `2 x levels - 1`
@@ -263,6 +270,7 @@ export async function bfsWithTuning(ctx, s, source, options, tuning) {
263
270
  const bitset = await ctx.pipelines.kernel(kernelSpec("bfs-bitset-build"));
264
271
  const bottomUp = await ctx.pipelines.kernel(kernelSpec("bfs-bottom-up", graphOverrides(reverse, null)));
265
272
  const unvisited = await ctx.pipelines.kernel(kernelSpec("bfs-unvisited-flags"));
273
+ const nextDegree = await ctx.pipelines.kernel(kernelSpec("bfs-next-degree"));
266
274
  const pred = await ctx.pipelines.kernel(kernelSpec("sssp-pred", { ...graphOverrides(core, null), MODE: 1 }));
267
275
  const fill = await ctx.pipelines.kernel(kernelSpec("fill"));
268
276
  const sort = await prepareRadixSort(scope);
@@ -276,6 +284,11 @@ export async function bfsWithTuning(ctx, s, source, options, tuning) {
276
284
  // plan's GROUP count as its stride (planGridStride's cap applies to the groups)
277
285
  const levelPlan = planGridStride(Math.max(n, frontier.edgeCapacity), wg, ctx.caps);
278
286
  const sweepPlan = planGridStride(n, wg, ctx.caps);
287
+ // `bfs-next-degree` sums at most n words and is dispatched on EVERY level, so its fixed cost -- one
288
+ // workgroup reduction (six barriers) and one atomic per workgroup -- is paid 1,999 times on the
289
+ // 1000 x 1000 grid. A capped grid pays it 128 times a level instead of ceil(n / wg): on the card the
290
+ // grid row went from 436 to 356 ms and neither R-MAT row moved.
291
+ const degreePlan = planGridStride(n, wg, ctx.caps, NEXT_DEGREE_MAX_GROUPS);
279
292
  const fusedPlan = planGridStride(n * wg, wg, ctx.caps);
280
293
  const bitsPlan = plan1d(bitsWords, wg, ctx.caps);
281
294
  const recordFill = (pass, dst, value, mode) => {
@@ -337,7 +350,7 @@ export async function bfsWithTuning(ctx, s, source, options, tuning) {
337
350
  const bitsParams = scope.params(FILL_PARAMS, { count: bitsWords, value: 0, mode: 0, pad0: 0 });
338
351
  const boundBitsFill = fill.bind({ dst: frontierBits, P: bitsParams.binding });
339
352
  for (let level = 0; level < levelsPerSubmit; level++) {
340
- planner.recordFinalize(pass, 0, level, { ...fields, firstOfSubmit: Math.min(level, 2) });
353
+ planner.recordFinalize(pass, 0, level, { ...fields, firstOfSubmit: Math.min(level, 1) });
341
354
  advance.record(pass, frontier);
342
355
  planner.recordFinalize(pass, 1, level, fields);
343
356
  // one window-free record serves the contract and the bitset build, which read no arc; the kernels that
@@ -411,6 +424,16 @@ export async function bfsWithTuning(ctx, s, source, options, tuning) {
411
424
  });
412
425
  bottomUp.dispatch(pass, boundSweep, sweepPlan, [sweepParams.offset]);
413
426
  }
427
+ // the next frontier's out-degree sum (issue #391): whichever path claimed, the vertices are in the output
428
+ // queue now, and the next boundary reads word 25 as Beamer's m_f for the frontier it is about to expand
429
+ const degreeParams = scope.params(FRONTIER_PARAMS, { wg, n, stride: degreePlan.stride ?? wg });
430
+ const boundDegree = nextDegree.bind({
431
+ frontier: frontier.output,
432
+ outDegree,
433
+ counters,
434
+ P: degreeParams.binding,
435
+ });
436
+ nextDegree.dispatch(pass, boundDegree, degreePlan, [degreeParams.offset]);
414
437
  frontier.swap();
415
438
  }
416
439
  batch.endPass();
@@ -1 +1 @@
1
- {"version":3,"file":"bfs.js","sourceRoot":"","sources":["../../../src/algorithms/bfs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bfs.js","sourceRoot":"","sources":["../../../src/algorithms/bfs.ts"],"names":[],"mappings":"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"}
@@ -105,6 +105,13 @@ export declare const FA2_DISTANCE_FLOOR = 0.01;
105
105
  export declare const FA2_DISTANCE_FLOOR_SQ = 0.0001;
106
106
  /** The coincident threshold `d^2 < 1e-8` of spec 7.2. */
107
107
  export declare const FA2_COINCIDENT_SQ = 1e-8;
108
+ /**
109
+ * The most WG-node tiles one K3 (`fa2-repulsion-exact`) dispatch sums per invocation (issue #87). llvmpipe runs at
110
+ * most 65,535 loop iterations per shader invocation, counted over every loop together, and then quietly breaks
111
+ * out of each loop; one tile costs WG + 2 of them (258 at WG 256), so a single pass lost every node past
112
+ * j = 65,027. 128 tiles is 33,024 iterations, half the budget; a larger exact run records ceil(tiles / 128) passes.
113
+ */
114
+ export declare const EXACT_TILES_PER_PASS = 128;
108
115
  /** Bits of Fa2Params.flags (contract 4.4). */
109
116
  export declare const FA2_FLAG_FIRST = 1;
110
117
  /** Fa2Params.flags bit: the Fruchterman-Reingold temperature is the adaptive one in the state block, not the uniform's (the `cooling: "adaptive"` option). */
@@ -154,6 +161,32 @@ export declare const SE_DEFAULTS: Readonly<{
154
161
  iterationsPerStep: 1;
155
162
  maxInFlight: 2;
156
163
  }>;
164
+ /**
165
+ * The absolute settle floor of the shared settle rule (spec 7.17; issue #97): an iteration counts toward `settled` only
166
+ * when its mean displacement is at most `settleThreshold x rmsRadius` AND at most this fraction of the model's length
167
+ * unit -- `springLength` for spring-electrical (scaled by node count, see SETTLE_FLOOR_REFERENCE_NODES), `k` for
168
+ * Fruchterman-Reingold. The relative rule alone reported a spring
169
+ * layout settled while it still grew (6 % over 1,000 iterations at 10k nodes). ForceAtlas2 writes
170
+ * `SETTLE_FLOOR_UNBOUNDED` instead: it does not drift after settling, and its per-iteration jitter grows with n, so any
171
+ * fixed floor only delays or blocks its stop. The values are measured:
172
+ * design/decisions/2026-09-24-settle-rule-has-an-absolute-floor.md.
173
+ */
174
+ export declare const SETTLE_FLOOR_FRACTION: Readonly<{
175
+ springElectrical: number;
176
+ fruchtermanReingold: number;
177
+ }>;
178
+ /**
179
+ * The node count at which the spring-electrical floor is exactly `SETTLE_FLOOR_FRACTION.springElectrical x
180
+ * springLength`; at `n` nodes it is that times `(SETTLE_FLOOR_REFERENCE_NODES / n)^(1/4)`. A spring layout's rms radius
181
+ * grows about as n^(1/4) in springLengths (3.4 at 150 nodes, 6.4 at 2,000, 10.4 at 10,000), so the relative half of the
182
+ * rule loosens with size while the floor tightens with it: on a small graph the floor sits above the relative threshold
183
+ * and the relative rule decides alone, as before issue #97; on a large one the floor binds, which is where the relative
184
+ * rule let an expanding layout stop. A fixed floor bound the 150-node story graph too, where the grid tier's jitter sits
185
+ * at the relative threshold, and nearly doubled its settle (427 -> 829 iterations on the RTX 4070 SUPER).
186
+ */
187
+ export declare const SETTLE_FLOOR_REFERENCE_NODES = 2000;
188
+ /** The settle floor that never binds: the largest finite f32, 0x1.fffffep+127 (ForceAtlas2's `settleFloor`, issue #97). */
189
+ export declare const SETTLE_FLOOR_UNBOUNDED: number;
157
190
  /** The smallest finest grid side `G` (spec 7.7 geometry table: `clamp(nextPow2(2 n^(1/dim)), 8, gridMax)`; P4 PD-9). */
158
191
  export declare const GRID_MIN_SIDE = 8;
159
192
  /** The coarsest pyramid level's side (spec 7.7: "levels (coarsest 4 per axis)", `levels = log2(G / 4) + 1`). */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
@@ -105,6 +105,13 @@ export const FA2_DISTANCE_FLOOR = 0.01;
105
105
  export const FA2_DISTANCE_FLOOR_SQ = 0.0001;
106
106
  /** The coincident threshold `d^2 < 1e-8` of spec 7.2. */
107
107
  export const FA2_COINCIDENT_SQ = 1e-8;
108
+ /**
109
+ * The most WG-node tiles one K3 (`fa2-repulsion-exact`) dispatch sums per invocation (issue #87). llvmpipe runs at
110
+ * most 65,535 loop iterations per shader invocation, counted over every loop together, and then quietly breaks
111
+ * out of each loop; one tile costs WG + 2 of them (258 at WG 256), so a single pass lost every node past
112
+ * j = 65,027. 128 tiles is 33,024 iterations, half the budget; a larger exact run records ceil(tiles / 128) passes.
113
+ */
114
+ export const EXACT_TILES_PER_PASS = 128;
108
115
  /** Bits of Fa2Params.flags (contract 4.4). */
109
116
  export const FA2_FLAG_FIRST = 1;
110
117
  /** Fa2Params.flags bit: the Fruchterman-Reingold temperature is the adaptive one in the state block, not the uniform's (the `cooling: "adaptive"` option). */
@@ -154,6 +161,32 @@ export const SE_DEFAULTS = Object.freeze({
154
161
  iterationsPerStep: 1,
155
162
  maxInFlight: 2,
156
163
  });
164
+ /**
165
+ * The absolute settle floor of the shared settle rule (spec 7.17; issue #97): an iteration counts toward `settled` only
166
+ * when its mean displacement is at most `settleThreshold x rmsRadius` AND at most this fraction of the model's length
167
+ * unit -- `springLength` for spring-electrical (scaled by node count, see SETTLE_FLOOR_REFERENCE_NODES), `k` for
168
+ * Fruchterman-Reingold. The relative rule alone reported a spring
169
+ * layout settled while it still grew (6 % over 1,000 iterations at 10k nodes). ForceAtlas2 writes
170
+ * `SETTLE_FLOOR_UNBOUNDED` instead: it does not drift after settling, and its per-iteration jitter grows with n, so any
171
+ * fixed floor only delays or blocks its stop. The values are measured:
172
+ * design/decisions/2026-09-24-settle-rule-has-an-absolute-floor.md.
173
+ */
174
+ export const SETTLE_FLOOR_FRACTION = Object.freeze({
175
+ springElectrical: 3e-3,
176
+ fruchtermanReingold: 2e-3,
177
+ });
178
+ /**
179
+ * The node count at which the spring-electrical floor is exactly `SETTLE_FLOOR_FRACTION.springElectrical x
180
+ * springLength`; at `n` nodes it is that times `(SETTLE_FLOOR_REFERENCE_NODES / n)^(1/4)`. A spring layout's rms radius
181
+ * grows about as n^(1/4) in springLengths (3.4 at 150 nodes, 6.4 at 2,000, 10.4 at 10,000), so the relative half of the
182
+ * rule loosens with size while the floor tightens with it: on a small graph the floor sits above the relative threshold
183
+ * and the relative rule decides alone, as before issue #97; on a large one the floor binds, which is where the relative
184
+ * rule let an expanding layout stop. A fixed floor bound the 150-node story graph too, where the grid tier's jitter sits
185
+ * at the relative threshold, and nearly doubled its settle (427 -> 829 iterations on the RTX 4070 SUPER).
186
+ */
187
+ export const SETTLE_FLOOR_REFERENCE_NODES = 2000;
188
+ /** The settle floor that never binds: the largest finite f32, 0x1.fffffep+127 (ForceAtlas2's `settleFloor`, issue #97). */
189
+ export const SETTLE_FLOOR_UNBOUNDED = 2 ** 128 - 2 ** 104;
157
190
  /** The smallest finest grid side `G` (spec 7.7 geometry table: `clamp(nextPow2(2 n^(1/dim)), 8, gridMax)`; P4 PD-9). */
158
191
  export const GRID_MIN_SIDE = 8;
159
192
  /** The coarsest pyramid level's side (spec 7.7: "levels (coarsest 4 per axis)", `levels = log2(G / 4) + 1`). */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,11 @@
5
5
  * device: every branch is unit-tested against faked capability tables.
6
6
  */
7
7
  import { type PlanCaps } from "../types/context.js";
8
- /** A dispatch shape (spec 5.2). `stride` is the grid-stride step (null for plain 1D / 2D plans). */
8
+ /** A dispatch shape (spec 5.2). `stride` is the grid-stride step (null for plain 1D / 2D plans). `z` is 1 from every planner; only K3's pass split sets it (issue #87). */
9
9
  export interface DispatchPlan {
10
10
  readonly x: number;
11
11
  readonly y: number;
12
- readonly z: 1;
12
+ readonly z: number;
13
13
  readonly items: number;
14
14
  readonly stride: number | null;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/kernel/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,oGAAoG;AACpG,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AA8ED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAI9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAGnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,CAS1G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAWpF;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/kernel/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,2KAA2K;AAC3K,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AA8ED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAI9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAGnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,CAS1G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,YAAY,CAWpF;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAEnD"}
@@ -68,7 +68,7 @@ export declare class Kernel {
68
68
  */
69
69
  bind(resources: KernelBindings): BoundKernel;
70
70
  /**
71
- * setPipeline + setBindGroup for every group (dynamic offsets in dynamicGroups order) + dispatchWorkgroups(plan.x, plan.y, 1); a plan with x === 0 records nothing (spec 5.6).
71
+ * setPipeline + setBindGroup for every group (dynamic offsets in dynamicGroups order) + dispatchWorkgroups(plan.x, plan.y, plan.z); a plan with x === 0 records nothing (spec 5.6).
72
72
  * PLAN DECISION: one dynamic offset per dynamic GROUP, replicated over every uniform binding of that group (every
73
73
  * P1-P3 kernel has exactly one params uniform per group); absent offsets mean 0; a BoundKernel of another kernel
74
74
  * or an offset list of the wrong length is E_INVALID_ARGUMENT.
@@ -184,7 +184,7 @@ export class Kernel {
184
184
  return bound;
185
185
  }
186
186
  /**
187
- * setPipeline + setBindGroup for every group (dynamic offsets in dynamicGroups order) + dispatchWorkgroups(plan.x, plan.y, 1); a plan with x === 0 records nothing (spec 5.6).
187
+ * setPipeline + setBindGroup for every group (dynamic offsets in dynamicGroups order) + dispatchWorkgroups(plan.x, plan.y, plan.z); a plan with x === 0 records nothing (spec 5.6).
188
188
  * PLAN DECISION: one dynamic offset per dynamic GROUP, replicated over every uniform binding of that group (every
189
189
  * P1-P3 kernel has exactly one params uniform per group); absent offsets mean 0; a BoundKernel of another kernel
190
190
  * or an offset list of the wrong length is E_INVALID_ARGUMENT.
@@ -202,7 +202,7 @@ export class Kernel {
202
202
  return;
203
203
  }
204
204
  this.setUp(pass, bound, dynamicOffsets);
205
- pass.dispatchWorkgroups(plan.x, plan.y, 1);
205
+ pass.dispatchWorkgroups(plan.x, plan.y, plan.z);
206
206
  }
207
207
  /**
208
208
  * setPipeline + the bind groups exactly as dispatch(), then dispatchWorkgroupsIndirect(args.buffer, args.offset +
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../src/kernel/kernel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAehD,yFAAyF;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,gHAAgH;AAChH,MAAM,SAAS,GAAG,IAAI,OAAO,EAAqB,CAAC;AACnD,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;;GAIG;AACH,SAAS,QAAQ,CAAC,MAAiB;IAC/B,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACnB,EAAE,GAAG,YAAY,CAAC;QAClB,YAAY,IAAI,CAAC,CAAC;QAClB,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,CAAU,EAAE,CAAU;IAC3C,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,wEAAwE;AACxE,MAAM,OAAO,MAAM;IAmBf;;;;;;;OAOG;IACH,YACI,MAAiB,EACjB,IAAoB,EACpB,QAAwB,EACxB,QAA4B,EAC5B,OAAsC;QAhB1C,6DAA6D;QAC5C,UAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;QAiBpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAY,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtC,MAAM,MAAM,GAAoB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACvG,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,CAAC,SAAyB;QAC1B,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAAC,CAAC;QACvF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,GAAG,EAAE,uBAAuB,IAAI,GAAG,EAAE;oBAClF,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,IAAI;oBACX,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC5C,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAAgE,EAAE,CAAC;QACjF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAC;YAC5D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,GAAG,EAAE,cAAc,IAAI,CAAC,IAAI,cAAc,EAAE;oBACzF,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,IAAI,CAAC,IAAI;oBAChB,QAAQ,EAAE,mCAAmC;iBAChD,CAAC,CAAC;YACP,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,gBAAgB,CACtB,oBAAoB,EACpB,GAAG,EAAE,cAAc,IAAI,CAAC,IAAI,cAAc,OAAO,CAAC,IAAI,EAAE,EACxD;oBACI,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,KAAK,EAAE,OAAO,CAAC,IAAI;oBACnB,QAAQ,EAAE,gDAAgD;iBAC7D,CACJ,CAAC;YACN,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrG,MAAM,IAAI,gBAAgB,CACtB,oBAAoB,EACpB,GAAG,EAAE,cAAc,IAAI,CAAC,IAAI,gBAAgB,OAAO,CAAC,MAAM,EAAE,EAC5D;oBACI,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,KAAK,EAAE,OAAO,CAAC,MAAM;oBACrB,QAAQ,EAAE,iBAAiB,aAAa,8DAA8D;iBACzG,CACJ,CAAC;YACN,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACxC,SAAS;gBACb,CAAC;gBACD,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;gBACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,SAAS;gBACb,CAAC;gBACD,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9B,MAAM,IAAI,gBAAgB,CACtB,oBAAoB,EACpB,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,sFAAsF,EACjI;wBACI,QAAQ,EAAE,UAAU;wBACpB,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBACjC,QAAQ,EAAE,sDAAsD;wBAChE,MAAM,EAAE,OAAO;qBAClB,CACJ,CAAC;gBACN,CAAC;gBACD,IAAI,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxC,MAAM,IAAI,gBAAgB,CACtB,oBAAoB,EACpB,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,qDAAqD,EAChG;wBACI,QAAQ,EAAE,UAAU;wBACpB,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBACjC,QAAQ,EAAE,iBAAiB;wBAC3B,MAAM,EAAE,OAAO;qBAClB,CACJ,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ;aACf,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;aACrF,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAU,CAAC,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAClD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACxB,KAAK,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE;YACvB,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAY,CAAC;gBACjD,OAAO;oBACH,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;iBACnF,CAAC;YACN,CAAC,CAAC;SACL,CAAC,CACL,CAAC;QACF,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACxC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAgB,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;YACrC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,QAAQ,CACJ,IAA2B,EAC3B,KAAkB,EAClB,IAAkB,EAClB,cAAkC;QAElC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACf,OAAO;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;OASG;IACH,gBAAgB,CACZ,IAA2B,EAC3B,KAAkB,EAClB,IAAa,EACb,IAAY,EACZ,cAAkC;QAElC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,oBAAoB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACvF,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,IAAI,yBAAyB,EAAE;gBAC1G,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,eAAe,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC,EAAE;aAC1E,CAAC,CAAC;QACP,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACxC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,KAAkB,EAAE,cAA6C;QAC3E,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,gBAAgB,CACtB,oBAAoB,EACpB,GAAG,EAAE,kCAAkC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAC9D;gBACI,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC3B,QAAQ,EAAE,EAAE;aACf,CACJ,CAAC;QACN,CAAC;QACD,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACvF,MAAM,IAAI,gBAAgB,CACtB,oBAAoB,EACpB,GAAG,EAAE,KAAK,cAAc,CAAC,MAAM,wBAAwB,KAAK,CAAC,aAAa,CAAC,MAAM,iBAAiB,EAClG;gBACI,QAAQ,EAAE,gBAAgB;gBAC1B,KAAK,EAAE,cAAc,CAAC,MAAM;gBAC5B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM;aACvC,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,IAA2B,EAAE,KAAkB,EAAE,cAA6C;QACxG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,IAAI,CAAC,CAAC;gBACV,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACxC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,6DAA6D;IAC7D,UAAU;QACN,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACJ"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../src/kernel/kernel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prelude.d.ts","sourceRoot":"","sources":["../../../src/kernel/prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAuBH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUpD;AAED,iHAAiH;AACjH,eAAO,MAAM,YAAY,EAAE,MAiDzB,CAAC;AAEH,8GAA8G;AAC9G,eAAO,MAAM,aAAa,EAAE,MAAwC,CAAC;AAErE,qHAAqH;AACrH,eAAO,MAAM,6BAA6B,EAAE,MAmDsE,CAAC;AAEnH,iIAAiI;AACjI,eAAO,MAAM,4BAA4B,EAAE,MA6FuE,CAAC;AAEnH,qNAAqN;AACrN,eAAO,MAAM,mBAAmB,8EAA+E,CAAC;AAEhH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAchD,CAAC"}
1
+ {"version":3,"file":"prelude.d.ts","sourceRoot":"","sources":["../../../src/kernel/prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAwBH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUpD;AAED,iHAAiH;AACjH,eAAO,MAAM,YAAY,EAAE,MAkDzB,CAAC;AAEH,8GAA8G;AAC9G,eAAO,MAAM,aAAa,EAAE,MAAwC,CAAC;AAErE,qHAAqH;AACrH,eAAO,MAAM,6BAA6B,EAAE,MAmDsE,CAAC;AAEnH,iIAAiI;AACjI,eAAO,MAAM,4BAA4B,EAAE,MA6FuE,CAAC;AAEnH,qNAAqN;AACrN,eAAO,MAAM,mBAAmB,8EAA+E,CAAC;AAEhH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAchD,CAAC"}
@@ -9,7 +9,7 @@
9
9
  * covers this file's template, so no u32 sentinel or workgroup-size literal is ever typed here.
10
10
  */
11
11
  import { INVALID_INDEX } from "@graphty/graph-format";
12
- import { F32_INF_BITS, FA2_COINCIDENT_SQ, FA2_DISTANCE_FLOOR, FA2_DISTANCE_FLOOR_SQ, FA2_FLAG_ADAPTIVE, FA2_FLAG_FIRST, FR_COOLING_PATIENCE, FR_COOLING_STEP, GRID_BBOX_MARGIN, GRID_EXTENT_FLOOR, GRID_HUB_CELL, MAX_WORKGROUPS_PER_DIM, RADIX_BINS, U32_MAX, WORKGROUP_SIZE, } from "../constants.js";
12
+ import { EXACT_TILES_PER_PASS, F32_INF_BITS, FA2_COINCIDENT_SQ, FA2_DISTANCE_FLOOR, FA2_DISTANCE_FLOOR_SQ, FA2_FLAG_ADAPTIVE, FA2_FLAG_FIRST, FR_COOLING_PATIENCE, FR_COOLING_STEP, GRID_BBOX_MARGIN, GRID_EXTENT_FLOOR, GRID_HUB_CELL, MAX_WORKGROUPS_PER_DIM, RADIX_BINS, U32_MAX, WORKGROUP_SIZE, } from "../constants.js";
13
13
  import { WebGpuGraphError } from "../errors.js";
14
14
  /**
15
15
  * Formats a finite number as a WGSL f32 literal that always carries a decimal point or an exponent (`0.01`,
@@ -34,6 +34,7 @@ const INVALID_INDEX: u32 = ${INVALID_INDEX}u;
34
34
  const U32_MAX: u32 = ${U32_MAX}u;
35
35
  const F32_INF_BITS: u32 = ${F32_INF_BITS}u;
36
36
  const MAX_WORKGROUPS_PER_DIM: u32 = ${MAX_WORKGROUPS_PER_DIM}u;
37
+ const EXACT_TILES_PER_PASS: u32 = ${EXACT_TILES_PER_PASS}u;
37
38
  const FA2_DIST_FLOOR: f32 = ${wgslF32Literal(FA2_DISTANCE_FLOOR)};
38
39
  const FA2_DIST_FLOOR_SQ: f32 = ${wgslF32Literal(FA2_DISTANCE_FLOOR_SQ)};
39
40
  const FA2_COINCIDENT_SQ: f32 = ${wgslF32Literal(FA2_COINCIDENT_SQ)};
@@ -1 +1 @@
1
- {"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../../src/kernel/prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EACH,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,OAAO,EACP,cAAc,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,KAAK,yBAAyB,EAAE;YAChG,QAAQ,EAAE,OAAO;YACjB,KAAK;YACL,QAAQ,EAAE,iBAAiB;SAC9B,CAAC,CAAC;IACP,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,iHAAiH;AACjH,MAAM,CAAC,MAAM,YAAY,GAAW,UAAU,CAAC;6BAClB,aAAa;uBACnB,OAAO;4BACF,YAAY;sCACF,sBAAsB;8BAC9B,cAAc,CAAC,kBAAkB,CAAC;iCAC/B,cAAc,CAAC,qBAAqB,CAAC;iCACrC,cAAc,CAAC,iBAAiB,CAAC;8BACpC,cAAc;iCACX,iBAAiB;+BACnB,cAAc,CAAC,eAAe,CAAC;mCAC3B,mBAAmB;6BACzB,aAAa;iCACT,cAAc,CAAC,iBAAiB,CAAC;gCAClC,cAAc,CAAC,gBAAgB,CAAC;0BACtC,UAAU;gCACJ,UAAU,GAAG,CAAC;;qBAEzB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BjC,CAAC;AAEH,8GAA8G;AAC9G,MAAM,CAAC,MAAM,aAAa,GAAW,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAErE,qHAAqH;AACrH,MAAM,CAAC,MAAM,6BAA6B,GAAW,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kHAmDkD,CAAC;AAEnH,iIAAiI;AACjI,MAAM,CAAC,MAAM,4BAA4B,GAAW,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kHA6FmD,CAAC;AAEnH,qNAAqN;AACrN,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAU,CAAC;AAEhH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB,MAAM,CAAC,MAAM,CAC/D;;;;;;;;;;6CAUyC;KACpC,IAAI,EAAE;KACN,KAAK,CAAC,KAAK,CAAC,CACpB,CAAC"}
1
+ {"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../../src/kernel/prelude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EACH,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,OAAO,EACP,cAAc,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,mBAAmB,KAAK,yBAAyB,EAAE;YAChG,QAAQ,EAAE,OAAO;YACjB,KAAK;YACL,QAAQ,EAAE,iBAAiB;SAC9B,CAAC,CAAC;IACP,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,iHAAiH;AACjH,MAAM,CAAC,MAAM,YAAY,GAAW,UAAU,CAAC;6BAClB,aAAa;uBACnB,OAAO;4BACF,YAAY;sCACF,sBAAsB;oCACxB,oBAAoB;8BAC1B,cAAc,CAAC,kBAAkB,CAAC;iCAC/B,cAAc,CAAC,qBAAqB,CAAC;iCACrC,cAAc,CAAC,iBAAiB,CAAC;8BACpC,cAAc;iCACX,iBAAiB;+BACnB,cAAc,CAAC,eAAe,CAAC;mCAC3B,mBAAmB;6BACzB,aAAa;iCACT,cAAc,CAAC,iBAAiB,CAAC;gCAClC,cAAc,CAAC,gBAAgB,CAAC;0BACtC,UAAU;gCACJ,UAAU,GAAG,CAAC;;qBAEzB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BjC,CAAC;AAEH,8GAA8G;AAC9G,MAAM,CAAC,MAAM,aAAa,GAAW,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAErE,qHAAqH;AACrH,MAAM,CAAC,MAAM,6BAA6B,GAAW,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kHAmDkD,CAAC;AAEnH,iIAAiI;AACjI,MAAM,CAAC,MAAM,4BAA4B,GAAW,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kHA6FmD,CAAC;AAEnH,qNAAqN;AACrN,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAU,CAAC;AAEhH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB,MAAM,CAAC,MAAM,CAC/D;;;;;;;;;;6CAUyC;KACpC,IAAI,EAAE;KACN,KAAK,CAAC,KAAK,CAAC,CACpB,CAAC"}
@@ -20,7 +20,7 @@ import { type BindingDecl, type OverrideDecl, type WgslModuleSpec } from "./kern
20
20
  import { type CoreBinding } from "./memory/residency.js";
21
21
  import { type Binding } from "./types/memory.js";
22
22
  /** Every module id of P1-P4, P7 and P8 (later ids are appended, never renamed). */
23
- export type KernelId = "degree" | "reduce" | "fill" | "segmented-reduce" | "fa2-stats-finalize" | "fa2-attraction" | "fa2-repulsion-exact" | "fa2-speed-finalize" | "fa2-integrate" | "fa2-to-scene" | "spmv-pull" | "pr-scale" | "pr-finalize" | "wcc-link-sample" | "wcc-link-edges" | "wcc-compress" | "wcc-sample" | "indirect-finalize" | "scan-block" | "scan-add" | "histogram" | "counting-scatter" | "radix-hist" | "radix-scatter" | "grid-cell-key" | "grid-centroid" | "grid-centroid-hub" | "grid-downsample" | "grid-far-field" | "grid-near-field" | "compact-scatter" | "dedupe-claim" | "dedupe-filter" | "frontier-finalize" | "advance-expand" | "bfs-contract" | "sssp-pred" | "bfs-fused" | "bfs-bottom-up" | "bfs-bitset-build" | "bfs-unvisited-flags" | "sssp-relax" | "bf-relax" | "closeness-sweep" | "closeness-reduce";
23
+ export type KernelId = "degree" | "reduce" | "fill" | "segmented-reduce" | "fa2-stats-finalize" | "fa2-attraction" | "fa2-repulsion-exact" | "fa2-speed-finalize" | "fa2-integrate" | "fa2-to-scene" | "spmv-pull" | "pr-scale" | "pr-finalize" | "wcc-link-sample" | "wcc-link-edges" | "wcc-compress" | "wcc-sample" | "indirect-finalize" | "scan-block" | "scan-add" | "histogram" | "counting-scatter" | "radix-hist" | "radix-scatter" | "grid-cell-key" | "grid-centroid" | "grid-centroid-hub" | "grid-downsample" | "grid-far-field" | "grid-near-field" | "compact-scatter" | "dedupe-claim" | "dedupe-filter" | "frontier-finalize" | "advance-expand" | "bfs-contract" | "sssp-pred" | "bfs-fused" | "bfs-bottom-up" | "bfs-bitset-build" | "bfs-unvisited-flags" | "bfs-next-degree" | "sssp-relax" | "bf-relax" | "closeness-sweep" | "closeness-reduce";
24
24
  /** One registry entry: everything of a WgslModuleSpec except the per-variant overrides and snippets. */
25
25
  export interface KernelEntry {
26
26
  readonly id: KernelId;
@@ -42,7 +42,7 @@ export declare const RANGE_PARAMS: UniformBlock;
42
42
  export declare const REDUCE_PARAMS: UniformBlock;
43
43
  /** `FillParams` (uniform, 16 B): `count` @0 words, `value` @4, `mode` @8 (0 = the constant `value`, 1 = iota `i + value`), `pad0` @12. */
44
44
  export declare const FILL_PARAMS: UniformBlock;
45
- /** `Fa2Params` (uniform, 128 B; spec 7.3): the per-iteration ForceAtlas2 parameters -- `n` @0, `dim` @4, `flags` @8 (bit 0 = FA2_FLAG_FIRST), `tierStart` @12, `tierEnd` @16, `iterationIndex` @20, `seed` @24, `nearMax` @28, `scalingRatio` @32, `gravity` @36, `jitterTolerance` @40, `scale` @44, `center` @48 (xyz, w 0), `settleThreshold` @64, `extentFactor` @68, `gridMax` @72, `levels` @76, `arcBase` @80 / `arcEnd` @84 (the bound arc window of K2, 0 and arcCount in the layout), `accumulate` @88 (1 combines into `force`: the windowed pattern), `hiEnd` @92 / `midEnd` @124 (the degreeOrder tier boundaries, PD-7; both 0 without a permutation); the P5 model fields (PD-3): `frK` @96 (the FR optimal distance), `temperature` @100 (the FR temperature of this iteration), `springLength` @104, `springCoefficient` @108, `coulomb` @112 (ngraph's `gravity`, negative repels), `dragCoefficient` @116, `timeStep` @120; 128 B. */
45
+ /** `Fa2Params` (uniform, 144 B; spec 7.3): the per-iteration ForceAtlas2 parameters -- `n` @0, `dim` @4, `flags` @8 (bit 0 = FA2_FLAG_FIRST), `tierStart` @12, `tierEnd` @16, `iterationIndex` @20, `seed` @24, `nearMax` @28, `scalingRatio` @32, `gravity` @36, `jitterTolerance` @40, `scale` @44, `center` @48 (xyz, w 0), `settleThreshold` @64, `extentFactor` @68, `gridMax` @72, `levels` @76, `arcBase` @80 / `arcEnd` @84 (the bound arc window of K2, 0 and arcCount in the layout), `accumulate` @88 (1 combines into `force`: the windowed pattern), `hiEnd` @92 / `midEnd` @124 (the degreeOrder tier boundaries, PD-7; both 0 without a permutation); the P5 model fields (PD-3): `frK` @96 (the FR optimal distance), `temperature` @100 (the FR temperature of this iteration), `springLength` @104, `springCoefficient` @108, `coulomb` @112 (ngraph's `gravity`, negative repels), `dragCoefficient` @116, `timeStep` @120; `settleFloor` @128 (the absolute bound on the mean displacement of a settled iteration, in layout units: issue #97); 144 B. */
46
46
  export declare const FA2_PARAMS: UniformBlock;
47
47
  /** `Fa2State` (storage, padded to STATE_HEADER_BYTES = 256; spec 7.3): the device-resident controller state the finalize kernels write and the host reads back for stats -- `speed` @0, `speedEfficiency` @4, `swing` @8, `traction` @12, `centroid` @16, `rmsRadius` @32, `radius` @36, `meanDisplacement` @40, `iteration` @44, `min` @48, `max` @64, `gridMin` @80 (P4), `eps` @96 (P4), `settledCount` @100, `outsideGrid` @104 (P4), `maxCellOccupancy` @108 (P4), `temperature` @112 (FR, written by K1 under STATS_MODE 1), `kineticEnergy` @116 (the preset, K1 under STATS_MODE 2), `frEnergy` @120 / `frProgress` @124 (the FR adaptive cooling), `invCellSize` @128 (P4, PD-10: `1 / cellSize`, written by K1 beside `cellSize` in `gridMin.w`; G1 multiplies by it so every key is bitwise reproducible), `reserved0` @132 (f32), `reserved1` @136 (vec2f), `reserved2` .. `reserved8` @144 .. @240. */
48
48
  export declare const FA2_STATE: UniformBlock;
@@ -90,8 +90,11 @@ export declare const COMPACT_PARAMS: UniformBlock;
90
90
  * submit), `arcsScanned` @64, `fusedLevels` @68, `twoPhaseLevels` @72, `bottomUpLevels` @76, `farCount` @80,
91
91
  * `nextFarCount` @84, `thresholdBits` @88, `deltaBits` @92 (P8-T9), `path` @96 (what the level's kernels run, written
92
92
  * by the selector: 0 nothing, 1 two-phase, 2 fused, 3 bottom-up, 4 the fused retry, 5 a near SSSP round, 6 a far
93
- * one; every level kernel is a direct dispatch that reads it first -- G8-F5). The words nothing writes before
94
- * P8-T8 / P8-T9 are declared now because the byte layout is what the single result copy decodes.
93
+ * one; every level kernel is a direct dispatch that reads it first -- G8-F5), `nextDegreeSum` @100 (issue #391: the
94
+ * out-degree sum of the vertices the level claimed, accumulated by `bfs-next-degree` at the end of every level and
95
+ * read, subtracted and zeroed by the next boundary -- Beamer's m_f measured on the frontier the boundary decides
96
+ * for, not on the one it has just expanded). The words nothing writes before P8-T8 / P8-T9 are declared now because
97
+ * the byte layout is what the single result copy decodes.
95
98
  */
96
99
  export declare const FRONTIER_COUNTERS: UniformBlock;
97
100
  /**
@@ -100,9 +103,9 @@ export declare const FRONTIER_COUNTERS: UniformBlock;
100
103
  * `alpha` @8, `beta` @12 (Beamer's thresholds, P8-T8), `fusedMax` @16, `edgeCapacity` @20, `maxDepth` @24, `n` @28,
101
104
  * `mode` @32 (BFS: 0 auto, 1 top-down only; `sssp-pred`: the PD-27 key rule), `cutoffBits` @36, `arcBase` @40,
102
105
  * `arcEnd` @44 (the bound arc window), `predKind` @48 (0 arc, 1 node), `bitsBase` @52, `source` @56, `stride` @60
103
- * (a grid-stride plan's stride), `firstOfSubmit` @64 (the boundary's index inside its submit, clamped to 2: the
104
- * unvisited-count subtraction runs at >= 1, the degree-sum one at >= 2), `iteration` @68 (an `sssp-pred` hop pass,
105
- * P8-T9), `pad1` @72, `pad2` @76. The `slotBase` field that once addressed the selector's indirect slots went with
106
+ * (a grid-stride plan's stride), `firstOfSubmit` @64 (the boundary's index inside its submit, clamped to 1: both
107
+ * the unvisited-count and the unvisited-degree-sum subtraction run at >= 1, issue #391), `iteration` @68 (an
108
+ * `sssp-pred` hop pass, P8-T9), `pad1` @72, `pad2` @76. The `slotBase` field that once addressed the selector's indirect slots went with
106
109
  * the slots (2026-09-25); `pad2` keeps the block an explicit 80 bytes, the way every block here is padded.
107
110
  */
108
111
  export declare const FRONTIER_PARAMS: UniformBlock;
@@ -1 +1 @@
1
- {"version":3,"file":"kernels.d.ts","sourceRoot":"","sources":["../../src/kernels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernels.d.ts","sourceRoot":"","sources":["../../src/kernels.ts"],"names":[],"mappings":"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"}