diff options
Diffstat (limited to 'doc/SEQUENCE.md')
| -rw-r--r-- | doc/SEQUENCE.md | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/doc/SEQUENCE.md b/doc/SEQUENCE.md index ca45756..3d7a6ce 100644 --- a/doc/SEQUENCE.md +++ b/doc/SEQUENCE.md @@ -132,7 +132,8 @@ class MyEffect : public Effect { void set_source_node(const std::string& n) { source_node_ = n; } void declare_nodes(NodeRegistry& reg) override { - reg.declare_node(node_prev_, NodeType::U8X4_NORM, -1, -1); + // Use a NodeType whose format matches source_node_ and has CopyDst. + reg.declare_node(node_prev_, NodeType::F16X8, -1, -1); } void render(...) override { @@ -221,7 +222,10 @@ if (!src_tex) return; // external view — no owned texture to copy - `GBUF_RGBA32UINT`: RGBA32Uint — packed feature textures (CNN v3 feat_tex0/1); `STORAGE_BINDING|TEXTURE_BINDING` **`COPY_SRC|COPY_DST`** is required on any node used with `wgpuCommandEncoderCopyTextureToTexture`. -`U8X4_NORM` has both; use it for temporal feedback dest nodes. +The `node_prev_` format **must match** the source texture format exactly — +`CopyTextureToTexture` requires identical formats. `F16X8` (Rgba16Float, +`CopySrc|CopyDst`) matches `GBUF_ALBEDO` (CNNv3Effect output). Use `U8X4_NORM` +only when the source is also Rgba8Unorm. **Aliasing**: Compiler detects ping-pong patterns (Effect i writes A reads B, Effect i+1 writes B reads A) and aliases nodes to same backing texture. |
