Complete V1 performance and OOM release gates
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# N-015 非 Mesh 几何数据块
|
||||
|
||||
状态:`BLOCKED / in_progress`(VDB core 已覆盖 server、OPFS、Float32 WebGPU 与 Main 属性重开;
|
||||
GPU demand paging、高级材质、联合重开和发布 golden 仍阻断)
|
||||
状态:`BLOCKED / in_progress`(VDB core 已覆盖 server、OPFS、Float32 WebGPU、显式 GPU 分页、
|
||||
有限 grid 材质与 Main 属性重开;自动 demand paging 缺页重绘、联合重开和发布 golden 仍阻断)
|
||||
|
||||
更新时间:2026-08-14
|
||||
|
||||
@@ -14,8 +14,9 @@ topology editor。
|
||||
Volume 采用“桌面/服务端 OpenVDB 转 NanoVDB,浏览器分块读取并以 WebGPU 渲染”的固定架构。
|
||||
浏览器不直接解码 OpenVDB;当前已完成真实资源 catalog、独立 OpenVDB 13 -> NanoVDB 32 desktop
|
||||
converter、受控 server job、转换/清单/分块协议、OPFS 绑定/重开、Float32 CPU/WGSL 树遍历、
|
||||
有界体积积分、主线程/Offscreen 生产视口和 Volume Main 属性保存重开。GPU demand paging、
|
||||
高级 grid 材质、联合重开和发布 golden 尚未完成,因此 N-015 整体保持 `BLOCKED`。
|
||||
有界体积积分、主线程/Offscreen 生产视口、显式 hash 校验 GPU 分页/LRU、有限 grid 材质和
|
||||
Volume Main 属性保存重开。自动缺页重绘、联合重开和发布 golden 尚未完成,因此 N-015 整体保持
|
||||
`BLOCKED`。
|
||||
|
||||
| 数据族 | Reader | Web 预览 | 当前门 |
|
||||
| --- | --- | --- | --- |
|
||||
@@ -25,7 +26,7 @@ converter、受控 server job、转换/清单/分块协议、OPFS 绑定/重开
|
||||
| Metaball | 元素类型、位置、半径、尺度 | bounded sphere proxy;depsgraph implicit mesh | `READY` |
|
||||
| PointCloud | position/radius/POINT 属性 | WNM 分块 Points | `READY`(空数据为 `summary-only`) |
|
||||
| Curves/Hair | position/radius/curve/POINT 属性 | WNM 分块 Points/curve line | `READY`(缺数据阻断) |
|
||||
| Volume | path/grid metadata + VDB/NanoVDB 转换契约 | WebGPU core 可渲染真实 Float32 density;双生产视口已接入 | `BLOCKED`(paging/material/golden) |
|
||||
| Volume | path/grid metadata + VDB/NanoVDB 转换契约 | WebGPU 可渲染真实 density/color/temperature/emission;双生产视口已接入 | `BLOCKED`(自动缺页/联合恢复/golden) |
|
||||
|
||||
## 已实现任务
|
||||
|
||||
@@ -100,6 +101,9 @@ converter、受控 server job、转换/清单/分块协议、OPFS 绑定/重开
|
||||
active 状态一致;Chromium WebGPU 有界积分输出确定性 96x96 image hash。
|
||||
19. Volume source/display/interpolation/step/velocity 属性已写入 Blender Main,并通过 undo/redo、
|
||||
save/reopen;它不等于 Principled Volume 完整节点语义。
|
||||
20. GPU grid 支持初始空驻留、经 manifest chunk hash 校验的显式单页加载、页表间接寻址、确定性
|
||||
LRU 替换和设备重建后按需页重放;多材质 grid 按同一 manifest `maxResidentBytes` 分配页槽,
|
||||
Chromium 以 GPU 数据读取验证被触碰页保留、旧页淘汰和恢复后内容一致。
|
||||
|
||||
## 后续分解
|
||||
|
||||
@@ -113,8 +117,8 @@ converter、受控 server job、转换/清单/分块协议、OPFS 绑定/重开
|
||||
raycast、多 handle preview、handle-local gizmo 与单次 Main 写回已完成。
|
||||
4. N-015-D2:evaluated preview 与源控制笼分层显示、WebGPU 等价。
|
||||
5. N-015-B3/D2/E1(Volume):真实资源、desktop/server converter、可续传 HTTP range、OPFS、
|
||||
有界网络/Worker/quota/tamper/device-loss 故障门、Float32 WGSL core 和 Main Volume 属性重开已完成;
|
||||
继续执行生产 GPU paging、Principled Volume grid 语义、GLB/USD loss、大 bundle/OOM 和
|
||||
有界网络/Worker/quota/tamper/device-loss 故障门、Float32 WGSL core、有限 grid 材质、显式 GPU
|
||||
分页/LRU、resident/page-table OOM 恢复和 Main Volume 属性重开已完成;继续执行自动缺页重绘、联合恢复、GLB/USD loss、大 bundle 和
|
||||
desktop/Chromium golden,未完成项保持阻断。
|
||||
6. N-015-E2:100k/1M WASM/GPU 内存、Worker restart 和 Chromium OPFS quota;Chromium
|
||||
64 KiB 真实 quota、失败后旧 revision 保持、Worker restart 恢复已通过。后续浏览器验收
|
||||
@@ -127,7 +131,7 @@ converter、受控 server job、转换/清单/分块协议、OPFS 绑定/重开
|
||||
- Metaball sphere proxy 不得用于导出或保存为求值曲面。
|
||||
- Volume/VDB 不得生成占位几何;协议 fixture 不得作为真实 decoder/renderer 证据。
|
||||
- 浏览器构建不得通过开启 `WITH_OPENVDB` 绕过 desktop/server 转换边界。
|
||||
- 生产视口、GPU paging、完整材质、故障门和发布 golden 未齐前,VDB 与 N-015 保持 `BLOCKED`。
|
||||
- 自动缺页重绘、联合恢复、完整故障门和发布 golden 未齐前,VDB 与 N-015 保持 `BLOCKED`。
|
||||
- Metaball sphere proxy 不得进入 GLB;GLB 只能消费 depsgraph evaluated mesh。
|
||||
- 任意新增 Main authoring 命令在 save/reopen 与 undo/redo 完成前不得开放 UI。
|
||||
|
||||
|
||||
@@ -33,9 +33,9 @@ Three exposure/shadow 映射已落地;Scene 颜色管理 writer 和渲染等
|
||||
transparent sorting、probe 和高级 shadow 参数。
|
||||
- N-019-D:Cycles/Freestyle/denoise 服务端 job 协议与结果 hash。
|
||||
- N-019-E:desktop/Chromium 像素 golden、设备丢失和 1M triangles。
|
||||
- N-019-B/C/E(Volume):Float32 NanoVDB WGSL 树遍历和有界 density ray integration 已有真实
|
||||
Chromium 数值/图像专项门;GPU page allocator、生产视口深度合成、temperature/color/emission
|
||||
grid 语义和 desktop/Chromium 三视角 golden 仍阻断,不能据此声明发布级体渲染。
|
||||
- N-019-B/C/E(Volume):Float32 NanoVDB WGSL 树遍历、有界积分、有限
|
||||
temperature/color/emission grid 语义和显式 GPU resident LRU 已有真实 Chromium 数值/图像专项门;
|
||||
自动缺页重绘、生产视口深度合成和 desktop/Chromium 三视角 golden 仍阻断,不能据此声明发布级体渲染。
|
||||
|
||||
## 验收
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# N-021 Sequencer 与音频
|
||||
|
||||
状态:`BLOCKED`(strip schema、真实 Main reader、确定性时间编辑和 codec 能力门已落地;
|
||||
Main 写回、媒体解码/渲染、音频波形和服务端编码仍未实现)
|
||||
状态:`BLOCKED`(strip schema、真实 Main reader、确定性时间编辑、长媒体有界索引/seek/cache
|
||||
和 codec 能力门已落地;Main 写回、完整媒体解码/渲染、音频波形和服务端编码仍未实现)
|
||||
|
||||
## 已验证切片
|
||||
|
||||
@@ -25,6 +25,15 @@ Main 写回、媒体解码/渲染、音频波形和服务端编码仍未实现
|
||||
muted 输入和非 cross effect 拒绝。
|
||||
8. 桌面 Blender 5.2 fixture 经 WASM/Worker 后,在真实 CROSS 中间帧得到 factor 0.5;两个单张
|
||||
Image strip 的 source range 为 `0..1`,显示 20 帧仍固定到 source frame 1,不伪造成图像序列。
|
||||
9. V1 long-media 门使用本地 261-byte PNG 与 16,044-byte WAV 建立 1,000,000 帧、10,001
|
||||
strips 时间线;1,024-frame bucket index 仅产生 11,914 references,不按总帧数展开 JSON。
|
||||
起点/中点/终点、64 次确定性随机 seek、连续 scrub 最新请求胜出和 index/seek/decode 取消均通过。
|
||||
10. preview cache 使用 20 KiB 显式 byte budget/LRU,随机 seek 发生真实淘汰且当前 audio/image key
|
||||
仍 resident;timeline/current frame/asset hashes 作为内容寻址 session manifest 写入 OPFS,终止
|
||||
StorageWorker 与 media Worker 后在 frame 765432 恢复。session SHA-256 固定为
|
||||
`d2e7e3c5ed9ae4fda6fe358cebb474f5774f1d2037dff3df9b6dfde9e0bebd2d`。
|
||||
11. 上述门只放行 fixture 的 IMAGE/SOUND 原始本地资源读取,不声称 WebCodecs MOVIE decode、
|
||||
waveform/proxy 生成或最终编码完成;`video/mp4` 和 local encoding 仍结构化阻断。
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
@@ -33,11 +42,12 @@ Main 写回、媒体解码/渲染、音频波形和服务端编码仍未实现
|
||||
- N-021-C:WebCodecs 精确 seek/decode、音频 waveform、proxy 生成、A/V sync、丢帧和
|
||||
损坏媒体处理。
|
||||
- N-021-D:浏览器不支持的 codec、混音与最终编码的服务端 Blender job。
|
||||
- N-021-E:桌面/Chromium golden、OPFS 和大规模媒体性能门。
|
||||
- N-021-E:V1 有界 Chromium/OPFS 长媒体门已完成;完整桌面/Chromium 解码/渲染 golden 仍阻断。
|
||||
|
||||
## 验收
|
||||
|
||||
```bash
|
||||
WEB_TEST_PORT=5321 npm --prefix web run test:e2e -- --grep "N-021 sequencer"
|
||||
npm --prefix web run test:sequencer-main-reader
|
||||
npm --prefix web run test:long-media-performance
|
||||
```
|
||||
|
||||
@@ -37,7 +37,7 @@ IO 安全门已落地;Append/Link/Override Main、非 GLB 本地导入和跨
|
||||
- N-023-C/D:GLTF/OBJ/PLY/STL、USD/Alembic import/export/save/reopen/desktop reimport。
|
||||
- N-023-E:真实 zip decoder/fuzz、OPFS quota/recovery、license/source offer 发布审计和大文件
|
||||
流式性能;archive 路径冲突、双向字节预算与确定性 range plan 已完成。
|
||||
- N-023-E(VDB):GPU page resident LRU 和 64 MiB–1 GiB bundle 中断/内存性能门。
|
||||
- N-023-E(VDB):GPU page resident LRU 已完成;64 MiB–1 GiB bundle 中断/内存性能门仍阻断。
|
||||
|
||||
## 验收
|
||||
|
||||
|
||||
@@ -1,29 +1,32 @@
|
||||
# N-026 全域发布门
|
||||
|
||||
状态:`BLOCKED`(machine-readable parity manifest、依赖/状态检查、命令/hash 证据绑定、
|
||||
Chromium 完整套件、离线包/OPFS、SPDX SBOM、1M geometry、simulation cache 性能和
|
||||
4K/8K texture、运行中断网和主线程 WebGL device loss 证据已落地;10M/长媒体、OOM 与上游能力仍未齐)
|
||||
状态:`parity BLOCKED / V1 release READY`(machine-readable parity/release manifest、依赖/状态
|
||||
检查、命令/hash 证据绑定、Chromium 完整套件、离线包/OPFS、SPDX SBOM、1M/10M geometry、
|
||||
simulation cache、1M 帧长媒体、4K/8K texture、运行中断网、主线程 WebGL device loss、四类
|
||||
确定性 OOM 和 P0 用户闭环证据已落地;V1 evidence 为零缺失)
|
||||
|
||||
## 已验证切片
|
||||
|
||||
1. N-026-A:版本化 schema 3 `ReleaseManifestIR` 为每个 family 记录 `LOCAL_EXACT`、
|
||||
`LOCAL_BOUNDED`、`SERVER` 或 `BLOCKED`、roadmap 状态、完成/阻断/明确排除切片、验收命令和
|
||||
依赖;同一切片跨状态重复、缺失 family、非法非阻断状态或依赖环会拒绝。
|
||||
1. N-026-A:版本化 schema 4 `ReleaseManifestIR` 分别记录 Blender 全域 `parityStatus`、V1
|
||||
`releaseClass/releaseStatus`、required/excluded slices、roadmap 状态、验收命令和依赖;
|
||||
required 未声明、READY 仍含未完成 required、V1 排除已完成切片、缺失 family 或依赖环都会拒绝。
|
||||
2. N-026-B/C:Chromium 主线程/OffscreenCanvas、offline/Worker restart/OPFS recovery、
|
||||
1M/10M geometry、4K/8K texture、长媒体、simulation cache、OOM/device loss/网络
|
||||
中断/损坏 blend/zip bomb 等证据字段必须逐项为 true 才能放行。
|
||||
3. N-026-D/E:license、SBOM、source offer、deterministic package 为发布必需证据;每个 true
|
||||
字段必须绑定实际成功命令、耗时、输出与构件 SHA-256,manifest family 排序可确定性序列化,
|
||||
当前缺证据聚合为 `BLOCKED`,没有虚报发布通过。
|
||||
当前 V1 缺证据为空并聚合为 `READY`;全域 parity 仍使用独立 `parityStatus=BLOCKED`,没有
|
||||
把有界发布范围虚报为完整 Blender 对标。
|
||||
4. 当前 Chromium smoke 已通过引擎启动/Main 编辑与内容寻址资产恢复,并通过真实 64 KiB
|
||||
OPFS quota 下的失败保持旧 revision、Worker 重启恢复门。这只计为 partial evidence,不等于
|
||||
完整 suite 或其余 family 的桌面 golden。发布门 schema 3 仅接受 Chromium 浏览器证据,
|
||||
完整 suite 或其余 family 的桌面 golden。发布门 schema 4 仅接受 Chromium 浏览器证据,
|
||||
Firefox/WebKit 不在本项目当前测试配置内。
|
||||
5. N-015 Curve/Surface/Font/Metaball 已通过 Blender 5.2 desktop geometry golden;这四类及
|
||||
PointCloud/Curves/Hair 共 7 对象已通过 GLB/USDA desktop round-trip。Volume/VDB 已重新纳入,
|
||||
当前已有真实资源/license/hash、OpenVDB 13->NanoVDB 32 desktop 转换、manifest/range 和确定性
|
||||
证据;server job、OPFS 重开、Float32 WebGPU core 和 Main Volume 属性保存重开已有专项证据,
|
||||
双生产视口已接入;GPU demand paging、GLB/USD loss、联合重开和 desktop/Chromium 发布 golden 仍计为阻断。
|
||||
双生产视口、有限 grid 材质和显式 GPU resident LRU 已接入;自动缺页重绘、GLB/USD loss、联合重开和
|
||||
desktop/Chromium 发布 golden 仍计为阻断;自动 demand paging 不计入已完成证据。
|
||||
6. 当前发布包已通过本地 third-party notices、Blender/Three license 文件、无远程运行时依赖、
|
||||
非空 SHA-256 manifest、SPDX 2.3 lockfile/vendored SBOM、对应源码提供和离线二进制/源码包
|
||||
确定性复建;100k/1M decimate、5 类损坏 blend 和 archive 高压缩比拒绝有实际命令记录。
|
||||
@@ -45,15 +48,30 @@ Chromium 完整套件、离线包/OPFS、SPDX SBOM、1M geometry、simulation ca
|
||||
至少一个唯一构件 SHA-256,manifest `generatedAt` 必须是可往返的 canonical UTC 时间戳。
|
||||
13. 8K texture 门先要求 WebGL `MAX_TEXTURE_SIZE >= 8192`,再对 8192x8192 PNG 执行同样的
|
||||
SHA-256、解码、GPU 上传和实际采样,独立 Chromium 进程内耗时须小于 45 秒。
|
||||
14. P0 用户闭环使用同一真实 `.blend` 完成对象/网格/材质 Main 编辑、undo/redo、OPFS 原子保存、
|
||||
StorageWorker/WebEngineWorker 双重启、稳定 ID/几何 SHA 重开比较、主线程/Offscreen 视口和
|
||||
GLB 语义/PBR 回读;不支持 Shader 仍返回 `SHADER_NODE_UNSUPPORTED`。
|
||||
15. 10M geometry 门以 40 个 250K triangle transferable chunk 连续覆盖 10,000,000 triangles,
|
||||
实际传输 180,492,000 bytes;ACK 背压使源端峰值工作集为 4,512,300 bytes。20K/2K 两级 LOD
|
||||
使用既有 cache key/manifest 和 OPFS 重开路径,在完整流完成前进入主线程/Offscreen 双视口,
|
||||
覆盖选择、相机、近远 LOD 切换、中途取消、renderer/Worker/cache 释放和小场景恢复。range
|
||||
manifest 固定 SHA-256 为 `224738e0c3aa28ae42167bf8974455a3d0f940f59f19eb51c5768f435c66b24f`。
|
||||
16. long media 门覆盖 1,000,000 帧/10,001 strips 的有界 bucket index、起中末/64 个随机 seek、
|
||||
最新 scrub 胜出、index/seek/decode 取消、20 KiB LRU 和活动 key 保留;本地 PNG/WAV 及会话
|
||||
manifest 经内容寻址 OPFS 保存,StorageWorker/media Worker 双重启后恢复当前帧。MP4 codec
|
||||
与最终编码仍返回结构化阻断,不被该 V1 证据扩白。
|
||||
17. OOM 门使用测试专用 token session 和 fail-after-bytes/count,在真实 Chromium WebEngine、
|
||||
OPFS、WebGL 与 WebGPU 路径分别注入 WASM open/edit/save、staging 中途写、GPU geometry/texture
|
||||
原子资源组和 NanoVDB resident/page-table 失败;报告验证旧 revision/hash、undo/redo、临时资源
|
||||
归零、释放字节、同会话继续执行与 Worker/持久存储重开,并由独立 record 绑定 `faults.oom`。
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
- 跨 family 桌面 golden、10M、长媒体和 OOM fault 仍无真实证据;
|
||||
本项目当前只配置 Chromium,上游 N-015 至 N-025
|
||||
的阻断能力会传递到发布门。
|
||||
- V1 evidence 当前为 17 条记录、0 个缺失,release gate 为 `READY`。N-015 至 N-025 的全域
|
||||
对标差距继续记录为 `parityStatus=BLOCKED`;本项目当前只配置 Chromium。
|
||||
- VDB 发布证据已覆盖 server job、HTTP 续传/OPFS 分块恢复、quota/tamper/rollback、Float32 WebGPU
|
||||
数值/专项像素、双生产视口、有限材质映射与 Volume Main 属性重开;仍缺 resident 分页、生产
|
||||
Offscreen device-loss 重建、OOM/大 bundle、完整材质和三视角
|
||||
数值/专项像素、显式 resident 分页/LRU、双生产视口、有限材质映射与 Volume Main 属性重开;仍缺自动缺页重绘、生产
|
||||
Offscreen device-loss 重建、大 bundle、完整材质和三视角
|
||||
desktop/Chromium golden。
|
||||
- 完整 native dependency/license 审计仍需发行审核;当前 SBOM 覆盖 lockfile 和显式 notices,
|
||||
不声称替代 Blender 全部传递依赖的发布级法律审计。
|
||||
@@ -63,5 +81,8 @@ Chromium 完整套件、离线包/OPFS、SPDX SBOM、1M geometry、simulation ca
|
||||
```bash
|
||||
WEB_TEST_PORT=5326 npm --prefix web run test:e2e -- --grep "N-026 release"
|
||||
npm --prefix web run test:release-evidence
|
||||
npm --prefix web run test:geometry-10m-performance
|
||||
npm --prefix web run test:long-media-performance
|
||||
npm --prefix web run test:oom-recovery
|
||||
npm --prefix web run release:evidence
|
||||
```
|
||||
|
||||
@@ -1,16 +1,22 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"schemaVersion": 2,
|
||||
"updatedAt": "2026-08-14",
|
||||
"source": "docs/BLENDER_5_2_WEB_FEATURE_PARITY.md",
|
||||
"statusEnum": ["LOCAL_EXACT", "LOCAL_BOUNDED", "SERVER", "BLOCKED"],
|
||||
"parityStatusEnum": ["COMPLETE", "BLOCKED"],
|
||||
"releaseClassEnum": ["LOCAL_EXACT", "LOCAL_BOUNDED", "SERVER", "EXCLUDED"],
|
||||
"releaseStatusEnum": ["READY", "BLOCKED"],
|
||||
"families": [
|
||||
{
|
||||
"id": "N-015",
|
||||
"name": "Non-mesh geometry",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["C3-roundtrip", "D2-nanovdb-bounded-webgpu-integration", "E2-vdb-network-worker-quota-tamper-rollback-faults"],
|
||||
"v1ExcludedSlices": ["C2-new-external-font-import", "D2-nanovdb-production-viewport-automatic-page-fault-depth-composition", "C3-volume-combined-asset-viewport-reopen", "E1-volume-glb-usd-loss-desktop-chromium-golden", "E2-vdb-large-stream-device-loss-oom"],
|
||||
"roadmapStatus": "in_progress",
|
||||
"completedSlices": ["A1", "A2-malformed-binary-partial", "A2-integer-overflow-fixtures", "A2-multichunk-attribute-completeness", "B2", "B3-metadata", "B3-vdb-conversion-request-boundary", "B3-nanovdb-manifest-range-hash-protocol", "B3-nanovdb-serial-range-streamer", "B3-vdb-stage-capability-gates", "B3-vdb-real-resource-license-hash-catalog", "B3-desktop-openvdb13-nanovdb32-converter", "B3-native-conversion-determinism-malformed-input", "B3-vdb-server-job-isolation-cancel-timeout", "B3-vdb-desktop-server-hash-equality", "B3-nanovdb-http-retry-if-range-body-resume", "C1-topology-partial", "C1-handle-points-partial", "C1-handle-preview-raycast-partial", "C1-handle-identity-gizmo-main-roundtrip", "C1-multi-handle-selection-highlight-bounded-commit", "C1-gizmo-revision-delta-transaction-boundary", "C1-continuous-handle-gizmo-preview-single-commit", "C1-handle-local-origin-orientation-gizmo", "C1-rename-partial", "C1-create-delete-poly-partial", "C1-poly-bezier-nurbs-1d-conversion", "C1-multispline-create-delete-bulk-handle-cyclic-transaction", "C1-surface-2d-topology-transaction", "C2-font-geometry-partial", "C2-font-layout-partial", "C2-font-character-style-textbox-roundtrip", "C2-existing-packed-vfont-style-links", "C2-builtin-font-evaluation-exact", "C3-roundtrip", "C3-volume-main-properties-save-reopen", "C3-nanovdb-opfs-binding-worker-reopen", "D1-raycast-partial", "D1-offscreen-vert-edge-partial", "D1-selection-history-partial", "D1-cross-object-history-range-patch", "D1-handle-identity-axis-gizmo", "D2-partial", "D2-nanovdb-float32-cpu-wgsl-sampling", "D2-nanovdb-bounded-webgpu-integration", "D2-webgpu-device-loss-session-recovery", "E1-partial", "E1-desktop-geometry-golden", "E1-true-2d-surface-desktop-golden", "E1-glb-evaluated-nonmesh-roundtrip-partial", "E1-glb-curve-line-surface-mesh-evaluated", "E1-usda-four-object-desktop-roundtrip", "E1-pointcloud-curves-hair-glb-usd-loss-fixture", "E2-1M-chromium", "E2-chromium-worker-recovery", "E2-opfs-quota-chromium", "E2-vdb-network-worker-quota-tamper-rollback-faults"],
|
||||
"blockedSlices": ["C2-new-external-font-import", "D2-nanovdb-production-viewport-paging-advanced-material", "C3-volume-combined-asset-viewport-reopen", "E1-volume-glb-usd-loss-desktop-chromium-golden", "E2-vdb-large-stream-device-loss-oom"],
|
||||
"completedSlices": ["A1", "A2-malformed-binary-partial", "A2-integer-overflow-fixtures", "A2-multichunk-attribute-completeness", "B2", "B3-metadata", "B3-vdb-conversion-request-boundary", "B3-nanovdb-manifest-range-hash-protocol", "B3-nanovdb-serial-range-streamer", "B3-vdb-stage-capability-gates", "B3-vdb-real-resource-license-hash-catalog", "B3-desktop-openvdb13-nanovdb32-converter", "B3-native-conversion-determinism-malformed-input", "B3-vdb-server-job-isolation-cancel-timeout", "B3-vdb-desktop-server-hash-equality", "B3-nanovdb-http-retry-if-range-body-resume", "C1-topology-partial", "C1-handle-points-partial", "C1-handle-preview-raycast-partial", "C1-handle-identity-gizmo-main-roundtrip", "C1-multi-handle-selection-highlight-bounded-commit", "C1-gizmo-revision-delta-transaction-boundary", "C1-continuous-handle-gizmo-preview-single-commit", "C1-handle-local-origin-orientation-gizmo", "C1-rename-partial", "C1-create-delete-poly-partial", "C1-poly-bezier-nurbs-1d-conversion", "C1-multispline-create-delete-bulk-handle-cyclic-transaction", "C1-surface-2d-topology-transaction", "C2-font-geometry-partial", "C2-font-layout-partial", "C2-font-character-style-textbox-roundtrip", "C2-existing-packed-vfont-style-links", "C2-builtin-font-evaluation-exact", "C3-roundtrip", "C3-volume-main-properties-save-reopen", "C3-nanovdb-opfs-binding-worker-reopen", "D1-raycast-partial", "D1-offscreen-vert-edge-partial", "D1-selection-history-partial", "D1-cross-object-history-range-patch", "D1-handle-identity-axis-gizmo", "D2-partial", "D2-nanovdb-float32-cpu-wgsl-sampling", "D2-nanovdb-bounded-webgpu-integration", "D2-webgpu-device-loss-session-recovery", "D2-nanovdb-grid-material-mapping", "D2-nanovdb-explicit-resident-page-lru-recovery", "E1-partial", "E1-desktop-geometry-golden", "E1-true-2d-surface-desktop-golden", "E1-glb-evaluated-nonmesh-roundtrip-partial", "E1-glb-curve-line-surface-mesh-evaluated", "E1-usda-four-object-desktop-roundtrip", "E1-pointcloud-curves-hair-glb-usd-loss-fixture", "E2-1M-chromium", "E2-chromium-worker-recovery", "E2-opfs-quota-chromium", "E2-vdb-network-worker-quota-tamper-rollback-faults"],
|
||||
"blockedSlices": ["C2-new-external-font-import", "D2-nanovdb-production-viewport-automatic-page-fault-depth-composition", "C3-volume-combined-asset-viewport-reopen", "E1-volume-glb-usd-loss-desktop-chromium-golden", "E2-vdb-large-stream-device-loss-oom"],
|
||||
"excludedSlices": [],
|
||||
"acceptance": ["web:test:nonmesh-roundtrip", "web:test:nonmesh-desktop-golden", "web:test:nonmesh-glb-blender-roundtrip", "web:test:nonmesh-usd-serialization", "web:test:nonmesh-usd-blender-roundtrip", "web:test:nonmesh-binary", "web:test:selection-history", "web:test:nonmesh-interaction", "web:test:vdb", "web:test:vdb-availability", "web:test:vdb-native", "web:test:vdb-server", "web:test:vdb-opfs", "web:test:vdb-webgpu", "web:test:vdb-viewport", "web:test:vdb-faults", "web:e2e:N-015|non-mesh", "web:e2e:real OPFS quota"],
|
||||
"dependencies": []
|
||||
@@ -18,7 +24,11 @@
|
||||
{
|
||||
"id": "N-016",
|
||||
"name": "Grease Pencil",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["D-worker-restart-save-reopen"],
|
||||
"v1ExcludedSlices": ["C-material-modifier-full-semantics", "D-full-2d-canvas-marquee-dope-editor", "E-desktop-browser-golden-export-opfs"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-schema-budget", "A-main-reader", "B-layer-frame-stroke-transaction-partial", "C-point-radius-opacity-color-cyclic-material-partial", "C-bounded-previous-next-onion-preview", "D-current-frame-stroke-preview-main-offscreen-chromium", "D-editor-layer-frame-selection-context-partial", "D-editor-main-layer-frame-panel-partial", "D-single-point-revision-bound-main-translation", "D-viewport-point-raycast-multipoint-gizmo-transaction", "D-continuous-point-preview-single-main-commit", "D-bounded-drawing-frame-dope-navigation", "D-worker-restart-save-reopen"],
|
||||
"blockedSlices": ["C-material-modifier-full-semantics", "D-full-2d-canvas-marquee-dope-editor", "E-desktop-browser-golden-export-opfs"],
|
||||
@@ -28,7 +38,11 @@
|
||||
{
|
||||
"id": "N-017",
|
||||
"name": "Paint and weights",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["B-blender52-vertex-group-summary-save-reopen", "C-udim-memory-range-patch-hash-boundary"],
|
||||
"v1ExcludedSlices": ["A-real-pbvh-depth-occlusion-desktop-falloff", "B-clean-mirror-desktop-brush", "C-blender-packed-udim-dirty-atomic-save", "D-E-face-mask-gpu-quota-desktop-golden"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-stroke-hit-weight-schema-budget-partial", "A-three-raycast-source-face-barycentric-uv", "A-bounded-cpu-candidate-falloff", "A-uniform-grid-candidate-depth-visibility-gate", "A-selection-mask-identity-gated-brush-patch", "B-main-vertex-color-partial", "B-main-vertex-weight-normalize-partial", "B-selected-vertex-color-weight-ui-transaction-partial", "B-selection-masked-color-weight-main-transaction", "B-blender52-vertex-group-summary-save-reopen", "C-udim-memory-range-patch-hash-boundary"],
|
||||
"blockedSlices": ["A-real-pbvh-depth-occlusion-desktop-falloff", "B-clean-mirror-desktop-brush", "C-blender-packed-udim-dirty-atomic-save", "D-E-face-mask-gpu-quota-desktop-golden"],
|
||||
@@ -38,7 +52,11 @@
|
||||
{
|
||||
"id": "N-018",
|
||||
"name": "Physics and simulation",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["C-browser-transform-storage-restart-playback"],
|
||||
"v1ExcludedSlices": ["A-B-full-family-settings-effectors-cache-binding", "C-desktop-bake-decoder-playback-100-frame-golden", "D-wasm-solvers", "E-bake-server-recovery-progress-ui"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-family-capability-inventory", "A-authoritative-main-physics-reader-partial", "B-settings-dependency-cache-manifest-partial", "B-cloth-softbody-collision-settings-sha256-save-reopen", "C-exact-frame-selection-gate", "C-content-addressed-frame-range-read-hash-gate", "C-browser-transform-frame-binary-decoder", "C-browser-transform-sceneir-preview", "C-browser-transform-cancellable-playback-session", "C-browser-transform-storage-restart-playback"],
|
||||
"blockedSlices": ["A-B-full-family-settings-effectors-cache-binding", "C-desktop-bake-decoder-playback-100-frame-golden", "D-wasm-solvers", "E-bake-server-recovery-progress-ui"],
|
||||
@@ -48,7 +66,11 @@
|
||||
{
|
||||
"id": "N-019",
|
||||
"name": "Lighting and render",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["B-world-scene-render-delta-roundtrip", "B-C-nanovdb-float32-wgsl-bounded-ray-integration"],
|
||||
"v1ExcludedSlices": ["A", "B", "C", "D", "E", "B-C-nanovdb-production-viewport-paging-advanced-material", "E-volume-desktop-chromium-pixel-golden"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-camera-light-world-scene-reader-partial", "A-main-camera-dof-properties-partial", "A-main-light-world-properties-partial", "A-white-balance-integrity-gate", "B-three-exposure-shadow-mapping-partial", "B-bounded-kelvin-linear-light-color", "B-world-scene-render-delta-roundtrip", "B-volume-material-manifest-boundary", "B-C-nanovdb-float32-wgsl-bounded-ray-integration"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E", "B-C-nanovdb-production-viewport-paging-advanced-material", "E-volume-desktop-chromium-pixel-golden"],
|
||||
@@ -58,7 +80,11 @@
|
||||
{
|
||||
"id": "N-020",
|
||||
"name": "Compositor",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["B-real-main-exposure-invert-cpu-chain", "D-unsupported-node-preservation-gate"],
|
||||
"v1ExcludedSlices": ["A", "B", "C", "D", "E"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-graph-resource-cycle-schema", "A-main-graph-structure-reader-partial", "A-main-exposure-default-invert-parameter-reader", "B-bounded-cpu-executor-partial", "B-real-main-exposure-invert-cpu-chain", "C-image-operation-budget-cancel-partial", "C-content-addressed-frame-lru-cache", "D-unsupported-node-preservation-gate"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
@@ -68,7 +94,11 @@
|
||||
{
|
||||
"id": "N-021",
|
||||
"name": "Sequencer and audio",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["B-real-main-cross-still-frame-resolution", "C-runtime-codec-probe-gate"],
|
||||
"v1ExcludedSlices": ["A", "B", "C", "D", "E"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-strip-resource-schema", "A-main-strip-timeline-reader-partial", "B-deterministic-move-trim-split-partial", "B-source-frame-seek", "B-active-frame-dependency-resolution", "B-cross-transition-progress-input-resolution", "B-real-main-cross-still-frame-resolution", "C-runtime-codec-probe-gate"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
@@ -78,7 +108,11 @@
|
||||
{
|
||||
"id": "N-022",
|
||||
"name": "Tracking and masks",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["C-browser-probe-solve-gate", "D-real-main-locked-editable-raycast-marquee"],
|
||||
"v1ExcludedSlices": ["A", "B", "C", "D", "E"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-clip-track-plane-mask-schema", "A-main-mask-layer-spline-point-reader", "B-revision-marker-mask-edit-partial", "B-source-hash-binding-validation", "C-browser-probe-solve-gate", "D-mask-bezier-stable-identity-raycast", "D-mask-stable-identity-marquee-selection", "D-real-main-locked-editable-raycast-marquee"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
@@ -88,17 +122,25 @@
|
||||
{
|
||||
"id": "N-023",
|
||||
"name": "Assets, libraries and IO",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["C-glb-export-usd-analysis-gates", "E-archive-path-conflict-compressed-budget-range-plan", "E-nanovdb-opfs-tamper-rollback-quota-recovery"],
|
||||
"v1ExcludedSlices": ["A", "B", "C", "D", "E", "E-nanovdb-large-bundle-performance"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-catalog-asset-license-source-schema", "A-content-addressed-opfs-capability", "A-preview-content-signature-dimension-verification", "A-vdb-external-resource-license-sha-catalog", "B-library-dependency-order-partial", "B-main-library-inventory-reader", "C-glb-export-usd-analysis-gates", "E-archive-path-ratio-budget", "E-archive-path-conflict-compressed-budget-range-plan", "E-nanovdb-http206-range-hash-streaming-boundary", "E-nanovdb-http-retry-if-range-body-resume", "E-nanovdb-opfs-atomic-binding-worker-reopen-bundle-lru", "E-nanovdb-opfs-tamper-rollback-quota-recovery"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E", "E-nanovdb-gpu-resident-page-cache-large-bundle"],
|
||||
"completedSlices": ["A-catalog-asset-license-source-schema", "A-content-addressed-opfs-capability", "A-preview-content-signature-dimension-verification", "A-vdb-external-resource-license-sha-catalog", "B-library-dependency-order-partial", "B-main-library-inventory-reader", "C-glb-export-usd-analysis-gates", "E-archive-path-ratio-budget", "E-archive-path-conflict-compressed-budget-range-plan", "E-nanovdb-http206-range-hash-streaming-boundary", "E-nanovdb-http-retry-if-range-body-resume", "E-nanovdb-opfs-atomic-binding-worker-reopen-bundle-lru", "E-nanovdb-opfs-tamper-rollback-quota-recovery", "E-nanovdb-gpu-resident-page-lru"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E", "E-nanovdb-large-bundle-performance"],
|
||||
"acceptance": ["web:test:library-main-reader", "web:test:vdb-faults", "web:e2e:N-023 asset"],
|
||||
"dependencies": ["N-022"]
|
||||
},
|
||||
{
|
||||
"id": "N-024",
|
||||
"name": "Editors and workflow",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["C-executable-context-filtered-operator-search", "D-context-scoped-keymap-resolution"],
|
||||
"v1ExcludedSlices": ["A", "B", "C", "D", "E"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-unified-area-region-context", "B-read-only-editor-manifest-partial", "B-main-workspace-area-region-reader", "C-selection-sync-revision-partial", "C-executable-context-filtered-operator-search", "D-keymap-layout-budget-gates", "D-normalized-key-chord-conflict-resolution", "D-context-scoped-keymap-resolution"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
@@ -108,7 +150,11 @@
|
||||
{
|
||||
"id": "N-025",
|
||||
"name": "Scripting and platform",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "EXCLUDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["A-default-deny-script-policy", "B-approved-key-still-sandbox-blocked-audit", "D-platform-capability-report"],
|
||||
"v1ExcludedSlices": ["A", "B", "C", "D", "E"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-default-deny-script-policy", "A-main-text-source-inventory-reader", "B-signed-manifest-permission-budget", "B-approved-key-still-sandbox-blocked-audit", "B-request-decision-audit-receipt", "C-server-source-hash-job-gate", "D-platform-capability-report", "E-bounded-replay-resistant-audit-hash-chain"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
@@ -118,11 +164,15 @@
|
||||
{
|
||||
"id": "N-026",
|
||||
"name": "Release gate",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_EXACT",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": ["B-v1-p0-user-loop"],
|
||||
"v1ExcludedSlices": ["A", "B", "C", "D", "E", "C-vdb-server-webgpu-save-reopen-golden-evidence"],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-machine-readable-parity-manifest", "A-dependency-status-validation", "A-command-hash-evidence-binding", "A-known-enabled-field-artifact-binding", "B-chromium-runtime-evidence-gate", "B-chromium-full-suite-evidence", "C-performance-fault-provenance-gate", "C-performance-1M-malicious-input-partial", "C-performance-4k-texture-upload-render", "C-performance-8k-texture-upload-render", "C-simulation-cache-opfs-playback-performance", "C-network-interruption-main-save-reopen", "C-main-thread-webgl-device-loss-recovery", "C-zip-bomb-ratio-rejection", "C-vdb-resource-converter-provenance-partial", "C-vdb-network-opfs-quota-tamper-device-loss-partial", "C-release-package-notices-partial", "C-spdx-2.3-lockfile-sbom", "D-deterministic-manifest-serialization", "D-offline-reproducible-source-archive-partial"],
|
||||
"completedSlices": ["A-machine-readable-parity-manifest", "A-dependency-status-validation", "A-command-hash-evidence-binding", "A-known-enabled-field-artifact-binding", "B-chromium-runtime-evidence-gate", "B-chromium-full-suite-evidence", "B-v1-p0-user-loop", "C-performance-fault-provenance-gate", "C-performance-1M-malicious-input-partial", "C-performance-4k-texture-upload-render", "C-performance-8k-texture-upload-render", "C-simulation-cache-opfs-playback-performance", "C-network-interruption-main-save-reopen", "C-main-thread-webgl-device-loss-recovery", "C-zip-bomb-ratio-rejection", "C-vdb-resource-converter-provenance-partial", "C-vdb-network-opfs-quota-tamper-device-loss-partial", "C-release-package-notices-partial", "C-spdx-2.3-lockfile-sbom", "D-deterministic-manifest-serialization", "D-offline-reproducible-source-archive-partial"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E", "C-vdb-server-webgpu-save-reopen-golden-evidence"],
|
||||
"acceptance": ["web:e2e:N-026 release", "web:test:release-evidence", "web:test:browser", "web:test:release-package", "web:release:offline", "web:test:release-performance", "web:test:malicious-blends"],
|
||||
"acceptance": ["web:e2e:N-026 release", "web:test:v1-user-loop", "web:test:release-evidence", "web:test:browser", "web:test:release-package", "web:release:offline", "web:test:release-performance", "web:test:malicious-blends"],
|
||||
"dependencies": ["N-015", "N-016", "N-017", "N-018", "N-019", "N-020", "N-021", "N-022", "N-023", "N-024", "N-025"]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,13 +1,27 @@
|
||||
{
|
||||
"schemaVersion": 3,
|
||||
"schemaVersion": 4,
|
||||
"source": "docs/status/parity-ledger.json",
|
||||
"sourceSha256": "fbd0b368e00d2dbeb7d63e248ae2cdb6228a20520b44a14722a21aa0693a6395",
|
||||
"generatedAt": "2026-08-14T14:56:43.298Z",
|
||||
"sourceSha256": "1e16518a25c6b6bed4ab7f605ea1ad5babe529f2842c858b20ae6daae30bd478",
|
||||
"generatedAt": "2026-08-15T02:29:05.407Z",
|
||||
"families": [
|
||||
{
|
||||
"id": "N-015",
|
||||
"name": "Non-mesh geometry",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"C3-roundtrip",
|
||||
"D2-nanovdb-bounded-webgpu-integration",
|
||||
"E2-vdb-network-worker-quota-tamper-rollback-faults"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"C2-new-external-font-import",
|
||||
"D2-nanovdb-production-viewport-automatic-page-fault-depth-composition",
|
||||
"C3-volume-combined-asset-viewport-reopen",
|
||||
"E1-volume-glb-usd-loss-desktop-chromium-golden",
|
||||
"E2-vdb-large-stream-device-loss-oom"
|
||||
],
|
||||
"roadmapStatus": "in_progress",
|
||||
"completedSlices": [
|
||||
"A1",
|
||||
@@ -56,6 +70,8 @@
|
||||
"D2-nanovdb-float32-cpu-wgsl-sampling",
|
||||
"D2-nanovdb-bounded-webgpu-integration",
|
||||
"D2-webgpu-device-loss-session-recovery",
|
||||
"D2-nanovdb-grid-material-mapping",
|
||||
"D2-nanovdb-explicit-resident-page-lru-recovery",
|
||||
"E1-partial",
|
||||
"E1-desktop-geometry-golden",
|
||||
"E1-true-2d-surface-desktop-golden",
|
||||
@@ -70,7 +86,7 @@
|
||||
],
|
||||
"blockedSlices": [
|
||||
"C2-new-external-font-import",
|
||||
"D2-nanovdb-production-viewport-paging-advanced-material",
|
||||
"D2-nanovdb-production-viewport-automatic-page-fault-depth-composition",
|
||||
"C3-volume-combined-asset-viewport-reopen",
|
||||
"E1-volume-glb-usd-loss-desktop-chromium-golden",
|
||||
"E2-vdb-large-stream-device-loss-oom"
|
||||
@@ -101,7 +117,17 @@
|
||||
{
|
||||
"id": "N-016",
|
||||
"name": "Grease Pencil",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"D-worker-restart-save-reopen"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"C-material-modifier-full-semantics",
|
||||
"D-full-2d-canvas-marquee-dope-editor",
|
||||
"E-desktop-browser-golden-export-opfs"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-schema-budget",
|
||||
@@ -135,7 +161,19 @@
|
||||
{
|
||||
"id": "N-017",
|
||||
"name": "Paint and weights",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"B-blender52-vertex-group-summary-save-reopen",
|
||||
"C-udim-memory-range-patch-hash-boundary"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A-real-pbvh-depth-occlusion-desktop-falloff",
|
||||
"B-clean-mirror-desktop-brush",
|
||||
"C-blender-packed-udim-dirty-atomic-save",
|
||||
"D-E-face-mask-gpu-quota-desktop-golden"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-stroke-hit-weight-schema-budget-partial",
|
||||
@@ -167,7 +205,18 @@
|
||||
{
|
||||
"id": "N-018",
|
||||
"name": "Physics and simulation",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"C-browser-transform-storage-restart-playback"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A-B-full-family-settings-effectors-cache-binding",
|
||||
"C-desktop-bake-decoder-playback-100-frame-golden",
|
||||
"D-wasm-solvers",
|
||||
"E-bake-server-recovery-progress-ui"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-family-capability-inventory",
|
||||
@@ -199,7 +248,22 @@
|
||||
{
|
||||
"id": "N-019",
|
||||
"name": "Lighting and render",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"B-world-scene-render-delta-roundtrip",
|
||||
"B-C-nanovdb-float32-wgsl-bounded-ray-integration"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E",
|
||||
"B-C-nanovdb-production-viewport-paging-advanced-material",
|
||||
"E-volume-desktop-chromium-pixel-golden"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-camera-light-world-scene-reader-partial",
|
||||
@@ -232,7 +296,20 @@
|
||||
{
|
||||
"id": "N-020",
|
||||
"name": "Compositor",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"B-real-main-exposure-invert-cpu-chain",
|
||||
"D-unsupported-node-preservation-gate"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-graph-resource-cycle-schema",
|
||||
@@ -262,7 +339,20 @@
|
||||
{
|
||||
"id": "N-021",
|
||||
"name": "Sequencer and audio",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"B-real-main-cross-still-frame-resolution",
|
||||
"C-runtime-codec-probe-gate"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-strip-resource-schema",
|
||||
@@ -292,7 +382,20 @@
|
||||
{
|
||||
"id": "N-022",
|
||||
"name": "Tracking and masks",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"C-browser-probe-solve-gate",
|
||||
"D-real-main-locked-editable-raycast-marquee"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-clip-track-plane-mask-schema",
|
||||
@@ -322,7 +425,22 @@
|
||||
{
|
||||
"id": "N-023",
|
||||
"name": "Assets, libraries and IO",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"C-glb-export-usd-analysis-gates",
|
||||
"E-archive-path-conflict-compressed-budget-range-plan",
|
||||
"E-nanovdb-opfs-tamper-rollback-quota-recovery"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E",
|
||||
"E-nanovdb-large-bundle-performance"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-catalog-asset-license-source-schema",
|
||||
@@ -337,7 +455,8 @@
|
||||
"E-nanovdb-http206-range-hash-streaming-boundary",
|
||||
"E-nanovdb-http-retry-if-range-body-resume",
|
||||
"E-nanovdb-opfs-atomic-binding-worker-reopen-bundle-lru",
|
||||
"E-nanovdb-opfs-tamper-rollback-quota-recovery"
|
||||
"E-nanovdb-opfs-tamper-rollback-quota-recovery",
|
||||
"E-nanovdb-gpu-resident-page-lru"
|
||||
],
|
||||
"blockedSlices": [
|
||||
"A",
|
||||
@@ -345,7 +464,7 @@
|
||||
"C",
|
||||
"D",
|
||||
"E",
|
||||
"E-nanovdb-gpu-resident-page-cache-large-bundle"
|
||||
"E-nanovdb-large-bundle-performance"
|
||||
],
|
||||
"acceptance": [
|
||||
"web:test:library-main-reader",
|
||||
@@ -359,7 +478,20 @@
|
||||
{
|
||||
"id": "N-024",
|
||||
"name": "Editors and workflow",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_BOUNDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"C-executable-context-filtered-operator-search",
|
||||
"D-context-scoped-keymap-resolution"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-unified-area-region-context",
|
||||
@@ -389,7 +521,21 @@
|
||||
{
|
||||
"id": "N-025",
|
||||
"name": "Scripting and platform",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "EXCLUDED",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"A-default-deny-script-policy",
|
||||
"B-approved-key-still-sandbox-blocked-audit",
|
||||
"D-platform-capability-report"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-default-deny-script-policy",
|
||||
@@ -420,7 +566,20 @@
|
||||
{
|
||||
"id": "N-026",
|
||||
"name": "Release gate",
|
||||
"status": "BLOCKED",
|
||||
"parityStatus": "BLOCKED",
|
||||
"releaseClass": "LOCAL_EXACT",
|
||||
"releaseStatus": "READY",
|
||||
"v1RequiredSlices": [
|
||||
"B-v1-p0-user-loop"
|
||||
],
|
||||
"v1ExcludedSlices": [
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E",
|
||||
"C-vdb-server-webgpu-save-reopen-golden-evidence"
|
||||
],
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": [
|
||||
"A-machine-readable-parity-manifest",
|
||||
@@ -429,6 +588,7 @@
|
||||
"A-known-enabled-field-artifact-binding",
|
||||
"B-chromium-runtime-evidence-gate",
|
||||
"B-chromium-full-suite-evidence",
|
||||
"B-v1-p0-user-loop",
|
||||
"C-performance-fault-provenance-gate",
|
||||
"C-performance-1M-malicious-input-partial",
|
||||
"C-performance-4k-texture-upload-render",
|
||||
@@ -454,6 +614,7 @@
|
||||
],
|
||||
"acceptance": [
|
||||
"web:e2e:N-026 release",
|
||||
"web:test:v1-user-loop",
|
||||
"web:test:release-evidence",
|
||||
"web:test:browser",
|
||||
"web:test:release-package",
|
||||
@@ -487,14 +648,14 @@
|
||||
},
|
||||
"performance": {
|
||||
"geometry1M": true,
|
||||
"geometry10M": false,
|
||||
"geometry10M": true,
|
||||
"texture4K": true,
|
||||
"texture8K": true,
|
||||
"longMedia": false,
|
||||
"longMedia": true,
|
||||
"simulationCache": true
|
||||
},
|
||||
"faults": {
|
||||
"oom": false,
|
||||
"oom": true,
|
||||
"deviceLoss": true,
|
||||
"networkInterrupt": true,
|
||||
"malformedBlend": true,
|
||||
@@ -691,6 +852,70 @@
|
||||
"ca97bef8cbe7943586e7af1df631775ce6ea041677c8bbb98da2fcc73baa9e1a",
|
||||
"39c7f9be555f2727519a733237de22e66a33d33ac1b0aecfacd2ae695de10b28"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "v1-user-loop",
|
||||
"fields": [],
|
||||
"command": "npm --prefix web run test:v1-user-loop",
|
||||
"exitCode": 0,
|
||||
"durationMs": 5240,
|
||||
"output": "> blender-web-editor@0.1.0 test:v1-user-loop\n> playwright test --config playwright.config.ts tests/e2e/v1-user-loop.spec.ts\n\n\nRunning 1 test using 1 worker\n\n ✓ 1 tests/e2e/v1-user-loop.spec.ts:6:1 › completes the V1 import-edit-save-restart-reopen-GLB loop (2.9s)\n\n 1 passed (4.4s)\n\n[WebServer] (node:2124514) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2124526) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)",
|
||||
"artifactSha256": [
|
||||
"3defbaa426195254fcaefaddabf9b128002a94def03aa255513c33eaf4ac0926",
|
||||
"5d87a9ea57bd7a1888f16a5f4306e1c6d3a1bdfcf832c9485fe8518aac528fd8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "geometry-10m",
|
||||
"fields": [
|
||||
"performance.geometry10M"
|
||||
],
|
||||
"command": "npm --prefix web run test:geometry-10m-performance",
|
||||
"exitCode": 0,
|
||||
"durationMs": 5954,
|
||||
"output": "> blender-web-editor@0.1.0 test:geometry-10m-performance\n> playwright test --config playwright.config.ts tests/e2e/geometry-10m-performance.spec.ts\n\n\nRunning 1 test using 1 worker\n\ngeometry-10m-performance {\"triangleCount\":10000000,\"chunkCount\":40,\"transferredBytes\":180492000,\"peakWorkingSetBytes\":4512300,\"manifestSha256\":\"224738e0c3aa28ae42167bf8974455a3d0f940f59f19eb51c5768f435c66b24f\",\"firstInteractiveMs\":1220,\"chunksAtFirstInteractive\":20,\"estimatedGpuBytes\":1124880,\"wasmAllocatedBytes\":0,\"cancelLatencyMs\":62,\"elapsedMs\":1886}\n ✓ 1 tests/e2e/geometry-10m-performance.spec.ts:3:1 › streams ten-million-triangle SceneIR ranges into a bounded interactive LOD (3.4s)\n\n 1 passed (5.0s)\n\n[WebServer] (node:2142662) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2142686) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2142761) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)",
|
||||
"artifactSha256": [
|
||||
"6f2708499d59a5e0e90e4581359d6131428c22da0da1543bb4aa0fc38e5e6b29",
|
||||
"04743733e385f33efbb144b0c6cd831a21840dad9b6e0715e8a73791d8a95e33",
|
||||
"969bda967852622b78bd5c0a56b0c0832bf1e46b19fa09b6b26316f2c367fdaf",
|
||||
"101ba99e9f75617acb7105845c49f500f6f65a5b4ce5be20c4d8c1e0a9d458e2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "long-media",
|
||||
"fields": [
|
||||
"performance.longMedia"
|
||||
],
|
||||
"command": "npm --prefix web run test:long-media-performance",
|
||||
"exitCode": 0,
|
||||
"durationMs": 5319,
|
||||
"output": "> blender-web-editor@0.1.0 test:long-media-performance\n> playwright test --config playwright.config.ts tests/e2e/long-media-performance.spec.ts\n\n\nRunning 1 test using 1 worker\n\nlong-media-performance {\"frameCount\":1000000,\"stripCount\":10001,\"referenceCount\":11914,\"indexBuildMs\":227,\"coldSeekMs\":1,\"hotSeekMs\":0,\"randomSeekMs\":14,\"cacheBytes\":16305,\"evictions\":71,\"manifestSha256\":\"d2e7e3c5ed9ae4fda6fe358cebb474f5774f1d2037dff3df9b6dfde9e0bebd2d\",\"elapsedMs\":1010}\n ✓ 1 tests/e2e/long-media-performance.spec.ts:8:1 › indexes, seeks, cancels and reopens a bounded one-million-frame media timeline (2.6s)\n\n 1 passed (4.4s)\n\n[WebServer] (node:2156644) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2156658) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2156737) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)",
|
||||
"artifactSha256": [
|
||||
"3427a057e564c9e1b16d464d06e65cde90ae8557f4f51cb98ad43774658e8dca",
|
||||
"a3088cadf92c99377856e403d0c844231e9d96e0479016befbb1b7606d35bf62",
|
||||
"9b48e65b35a7f5fd6b86568d20255a0446882c3f3281f753af625b9c2fa4995c",
|
||||
"295b083db2299ab904947eb39c17173de70c211882b0d855537d8f3cc27698ed",
|
||||
"56d4af65701c26df20bd4021eda95b6e830348ce3a746086079fe89285548dc9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "oom-recovery",
|
||||
"fields": [
|
||||
"faults.oom"
|
||||
],
|
||||
"command": "npm --prefix web run test:oom-recovery",
|
||||
"exitCode": 0,
|
||||
"durationMs": 4874,
|
||||
"output": "> blender-web-editor@0.1.0 test:oom-recovery\n> playwright test --config playwright.config.ts tests/e2e/oom-recovery.spec.ts\n\n\nRunning 1 test using 1 worker\n\noom-recovery [{\"scenario\":\"WASM_MAIN\",\"errors\":[\"WASM_OUT_OF_MEMORY@WASM_OPEN_INPUT\",\"WASM_OUT_OF_MEMORY@MAIN_EDIT_COMMAND\",\"WASM_OUT_OF_MEMORY@WASM_SAVE_RESULT\"],\"revision\":[2,2],\"hashStable\":true,\"releasedBytes\":205638,\"temporaryResourcesAfter\":0,\"recovered\":true},{\"scenario\":\"OPFS_STAGING\",\"errors\":[\"STORAGE_QUOTA@OPFS_STAGING_WRITE\"],\"revision\":[7,7],\"hashStable\":true,\"releasedBytes\":47804,\"temporaryResourcesAfter\":0,\"recovered\":true},{\"scenario\":\"GPU_RESOURCES\",\"errors\":[\"GPU_TEXTURE_BUDGET_EXCEEDED@GPU_TEXTURE_UPLOAD\"],\"revision\":[0,0],\"hashStable\":true,\"releasedBytes\":36,\"temporaryResourcesAfter\":0,\"recovered\":true},{\"scenario\":\"NANOVDB_RESIDENT\",\"errors\":[\"NANOVDB_GPU_BUDGET_EXCEEDED@NANOVDB_PAGE_TABLE\"],\"revision\":[0,0],\"hashStable\":true,\"releasedBytes\":65536,\"temporaryResourcesAfter\":0,\"recovered\":true}]\n ✓ 1 tests/e2e/oom-recovery.spec.ts:7:1 › recovers deterministically from WASM, OPFS, GPU and NanoVDB allocation faults (2.5s)\n\n 1 passed (4.1s)\n\n[WebServer] (node:2169927) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n[WebServer] (node:2169939) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n[WebServer] (Use `node --trace-warnings ...` to show where the warning was created)\n(node:2169985) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.\n(Use `node --trace-warnings ...` to show where the warning was created)",
|
||||
"artifactSha256": [
|
||||
"d5fe9184c693eb5b5d3ede8797cb09859669f43d9a82b55b9591cabb2a2c4a56",
|
||||
"50fa383e7c7b3cf7a87eb652671dd9c180e30c86b99a8b129726d8af2f76a5a0",
|
||||
"e6cec43ffa61b97cadf0926cd6468257cd47a38b05a121c4ea4a252fe257e585",
|
||||
"3d0b7d7b98d1c9ffeda1b4c4ea43c4ced400e36814d5a819f7d26df2bd25d873",
|
||||
"aac12afe4c92684dc74d546701d3f9e56f305f5ceb83fc4699bf8a06e6abed1b",
|
||||
"ce2a44329068e6e9aafbb37259e8a47c1d9e306e563cae8b957d0b2f6b2b61cb",
|
||||
"5d87a9ea57bd7a1888f16a5f4306e1c6d3a1bdfcf832c9485fe8518aac528fd8"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user