# N-020 Compositor 状态:`BLOCKED`(GraphIR、有界 CPU executor 与真实 Main graph 结构 reader 已落地;完整节点 参数映射、WebGPU、HDR golden 和服务端执行未实现) ## 已验证切片 1. N-020-A:版本化 `CompositorGraphIR` 覆盖 Image、Render Layer、Constant Color、 Transform、Invert、Exposure、Alpha Over、Blur、Mix、Viewer、Composite 与 Unsupported; 节点/资源 ID、重复 input socket、缺失引用和 graph cycle 会拒绝。 2. N-020-B(CPU 子集):线性 sRGB Float32 RGBA executor 按拓扑序执行 Transform、颜色、 Alpha Over、Blur、Mix,并返回 Composite 与多 Viewer 输出。 3. N-020-C(部分):最大 4096 nodes、16384 links、4096 resources、8192 dimension、 16M pixels、256 MiB image 和 100M blur operations;分配前检查,支持 worker cancellation。 4. N-020-D(门):Unsupported node 保留 Blender type metadata,并返回 `COMPOSITOR_NODE_UNSUPPORTED`,不会删节点后继续运行。 5. N-020-A(部分):Blender 5.2 Scene `compositing_node_group` 从真实 Main 快照读取稳定 node identifier、socket identifier 和 link;活动 Group Output/旧 Composite 映射为 Composite, Viewer 和常量 RGBA 映射到已验证节点,其他节点原样保留 `blenderType` 为 Unsupported。 4096 nodes/16384 links、重复 destination、缺 output 或不可读 node tree 返回 blocked status。 ## 仍然阻断 - N-020-A:Main graph 写回,以及 Transform/Invert/Exposure/Alpha Over/Blur/Mix/Image/Render Layer 的逐节点参数与 resource/pass reader;基础真实图结构、常量色、Viewer/Composite 已完成。 - N-020-B/C:WebGPU executor、tile/frame cache、增量 invalidation 和 GPU dispose。 - N-020-D:服务端 Blender job、source hash 和结果提交。 - N-020-E:desktop HDR/alpha/color-space golden、OOM/fault/device-loss。 ## 验收 ```bash WEB_TEST_PORT=5320 npm --prefix web run test:e2e -- --grep "N-020 CPU compositor" npm --prefix web run test:compositor-main-reader ```