Record the seventh #11 review

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
irisandClaude Opus 5 committed 2026-09-13 17:44:21 -04:00
1 parent 8beb461d83
commit 2937a48133
1 file changed
+17 -11
+17 -11
View File
@@ -5,8 +5,8 @@ Not a decisions log; delete it when the extraction is done.
## Read this first
**Pull request #11 has been reviewed six times ("very close now"); the sixth
is answered in `444a2cd` and a seventh has not arrived.** Check for one before doing anything
**Pull request #11 has been reviewed seven times; the seventh is answered in
`79dcc15` and an eighth has not arrived.** Check for one before doing anything
else:
```sh
@@ -39,8 +39,8 @@ packing images into arrays like atlas pages, and a bindless `binding_array`
- Agent fork: `git@git.arirex.me:iris-ai/iris.git`. The bot cannot push
canonical; work in the fork and open PRs into `iris/iris:main`.
- **#11** `split/11-texture-bindings`, worktree `/home/bob/repos/iris-pr11`,
head `444a2cd`, twelve commits on top of `0f6a28b`. Reviewed six times, all
answered.
head `79dcc15`, fourteen commits on top of `0f6a28b`. Reviewed seven times,
all answered.
- **#12** `split/12-pointer-routing`, worktree `/home/bob/repos/iris-pr12`,
head `028521b`. A scroll falling through a hovered button. Not reviewed as
of the last check. Independent of #11 and can merge in either order.
@@ -65,16 +65,17 @@ shape:
and those are data. `InstanceList` carries a runtime stride and its data as
bytes. Measured: 0.2ns per write over a statically typed list, against 1.6ns
for a trait object.
- **The shared group is what every pipeline gets**: window, masks, the glyph
atlas array, and the one sampler. A mask texture would go here too. A
primitive that samples an image of its own declares `Primitive::TEXTURE`,
which gives it an image bind group, a draw call per instance, and the slot
recorded at write time; no other pipeline mentions textures at all.
- **The shared group is what every pipeline gets**: the window and the masks.
A mask texture would go here too.
- **`Primitive::SAMPLES` says what a primitive samples and how often it binds**
-- `Atlas` once for a list, `Image(fn)` for one instance alone, defaulted to
nothing. That is group 2, so a rect's pipeline has no texture or sampler in
its layout. Both cases share one layout builder and one group builder.
- **`shader.wgsl` became `shader/prelude.wgsl` plus one file per primitive**,
because one module cannot declare two types at the same binding. The prelude
carries only what every primitive uses -- window, masks, vertex shader,
`masked()` -- and its header records the group 0 binding numbers; the atlas
and sampler are declared by the shaders that read them.
`masked()` -- and its header is where binding numbers are written down; what
a shader samples is declared by that shader.
- **A texture handle is drawn like anything else.** `Painter::primitive` takes
`impl PrimitiveLike`: a primitive, or something that yields one and does what
else drawing it needs -- a `&TextureHandle` retains its share on the way
@@ -188,6 +189,11 @@ Still in the target and not yet claimed:
Everything below depends on running them from there; extracting them is a
slice of its own.
The three sampling paths each need a real render, and the examples for two of
them are not in the repo: `/tmp/pr11-checks/run.sh` copies them in, renders
rect+glyph+image together, an image alone in a layer, and a grown atlas, then
removes them again.
## Verifying a framework slice
```sh