Record the primitive render dispatch and how it was measured
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
912602d52b
commit
64d8042f52
1 file changed
+11
-7
@@ -5,8 +5,8 @@ Not a decisions log; delete it when the extraction is done.
|
|||||||
|
|
||||||
## Read this first
|
## Read this first
|
||||||
|
|
||||||
**Pull request #11 has been reviewed seven times; the seventh is answered in
|
**Pull request #11 has been reviewed seven times; the last answer is `b9c4856`
|
||||||
`79dcc15` and an eighth has not arrived.** Check for one before doing anything
|
and an eighth review has not arrived.** Check for one before doing anything
|
||||||
else:
|
else:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -39,7 +39,7 @@ 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
|
- 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`.
|
canonical; work in the fork and open PRs into `iris/iris:main`.
|
||||||
- **#11** `split/11-texture-bindings`, worktree `/home/bob/repos/iris-pr11`,
|
- **#11** `split/11-texture-bindings`, worktree `/home/bob/repos/iris-pr11`,
|
||||||
head `79dcc15`, fourteen commits on top of `0f6a28b`. Reviewed seven times,
|
head `b9c4856`, fifteen commits on top of `0f6a28b`. Reviewed seven times,
|
||||||
all answered.
|
all answered.
|
||||||
- **#12** `split/12-pointer-routing`, worktree `/home/bob/repos/iris-pr12`,
|
- **#12** `split/12-pointer-routing`, worktree `/home/bob/repos/iris-pr12`,
|
||||||
head `028521b`. A scroll falling through a hovered button. Not reviewed as
|
head `028521b`. A scroll falling through a hovered button. Not reviewed as
|
||||||
@@ -67,10 +67,14 @@ shape:
|
|||||||
for a trait object.
|
for a trait object.
|
||||||
- **The shared group is what every pipeline gets**: the window and the masks.
|
- **The shared group is what every pipeline gets**: the window and the masks.
|
||||||
A mask texture would go here too.
|
A mask texture would go here too.
|
||||||
- **`Primitive::SAMPLES` says what a primitive samples and how often it binds**
|
- **Each primitive records its own draws.** `Primitive::render` makes a
|
||||||
-- `Atlas` once for a list, `Image(fn)` for one instance alone, defaulted to
|
`PrimitiveRender` that states the layout its shader reads, uploads what it
|
||||||
nothing. That is group 2, so a rect's pipeline has no texture or sampler in
|
owns, and records its draws: `GlyphRender` owns the atlas and binds it once
|
||||||
its layout. Both cases share one layout builder and one group builder.
|
per list, `ImageRender` owns the images and binds one per instance, the
|
||||||
|
default owns nothing. The renderer knows nothing about textures.
|
||||||
|
**Measured**, because dispatch per list was the objection: 6 instructions
|
||||||
|
per list, 0.1% of a frame at 256 and at 1024 layers, against the ~5,400
|
||||||
|
wgpu spends recording one. `tests/draw_cost.rs` is that measurement.
|
||||||
- **`shader.wgsl` became `shader/prelude.wgsl` plus one file per primitive**,
|
- **`shader.wgsl` became `shader/prelude.wgsl` plus one file per primitive**,
|
||||||
because one module cannot declare two types at the same binding. The prelude
|
because one module cannot declare two types at the same binding. The prelude
|
||||||
carries only what every primitive uses -- window, masks, vertex shader,
|
carries only what every primitive uses -- window, masks, vertex shader,
|
||||||
|
|||||||
Reference in new issue
Block a user