Skip to content

Commit 3fb5f95

Browse files
committed
bus: broadcast ndarray U8x64 rasterizer intrinsics for seismon
Tier 1+2 shipped: pairwise_avg, cmpgt_mask, mask_blend, shl_epi16, mask_store, saturating_add, permute_bytes. Full rasterizer toolkit now available. Seismon session can build framebuffer.rs end-to-end. ndarray commit 1f224bae. 9 tests. Tier 3 (U16x32, movemask) deferred. https://claude.ai/code/session_01SbYsmmbPf9YQuYbHZN52Zh
1 parent 7d8831a commit 3fb5f95

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

.claude/board/CROSS_SESSION_BROADCAST.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,3 +126,29 @@ loop {
126126
```
127127

128128
1630 ndarray lib tests pass (was 1619 → +11 renderer tests). Zero regressions.
129+
130+
## 2026-04-26 — ndarray U8x64 rasterizer intrinsics shipped (seismon wishlist Tier 1+2)
131+
132+
**Branch:** ndarray `claude/teleport-session-setup-wMZfb` (commit `1f224bae`)
133+
134+
8 new methods on `U8x64` across all 3 backends (AVX-512 / AVX2 / scalar):
135+
136+
| Method | AVX-512 intrinsic | What it unlocks |
137+
|---|---|---|
138+
| `pairwise_avg` | `_mm512_avg_epu8` | Mipmap 4×4 downsample in 2 ops |
139+
| `cmpgt_mask` | `_mm512_cmpgt_epu8_mask` | Threshold, Z-test, hit-test |
140+
| `mask_blend` | `_mm512_mask_blend_epi8` | Sprite alpha blit |
141+
| `shl_epi16` | `_mm512_slli_epi16` | Nibble write (completes `shr_epi16` pair) |
142+
| `mask_store` | `_mm512_mask_storeu_epi8` | Partial-tile edge writes |
143+
| `saturating_add` | `_mm512_adds_epu8` | Additive blend (completes `saturating_sub` pair) |
144+
| `permute_bytes` | `_mm512_permutexvar_epi8` | Cross-lane byte shuffle (palette remap) |
145+
146+
**For seismon session:** these + existing `cmpeq_mask` + `shr_epi16` +
147+
`saturating_sub` + `shuffle_bytes` give you the full rasterizer toolkit.
148+
`framebuffer.rs` + `rasterize_dots` + `rasterize_edges` can now be built
149+
end-to-end against `crate::simd::U8x64`.
150+
151+
**Tier 3 (deferred):** `U16x32` lane type, `movemask_epi8`. Not blocking;
152+
can synthesize via existing `unpack_lo/hi_epi8` + I32 ops.
153+
154+
9 tests pass. All methods have matching scalar fallbacks.

0 commit comments

Comments
 (0)