mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-18 00:58:30 +09:00
[Docs] (Disaggregated): rewrite the staged-progress log as a concise current-state document and link it from the roadmap's status line
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,120 @@
|
||||
# 当前阶段进度
|
||||
|
||||
分支 `feat/disaggregated`,头 `7cb29d46`(2026-09-16,已推 GitHub)。本文随每次落地更新。
|
||||
逐条裁定的长文原文在 git 历史里(`git log -p -- docs/Disaggregated/CURRENT_STAGE_PROGRESS.md`,`ef35ea0c` 之前的版本 = ID-1..75 全文)。
|
||||
|
||||
## 1. 阶段状态
|
||||
|
||||
| 阶段 | 状态 | 范围 |
|
||||
|---|---|---|
|
||||
| P0 / P0.5 / P1 / P2 / P3a / P4a | 已落地 | 见 `ROADMAP.md`、`MEASUREMENTS.md` §1–§25 |
|
||||
| **P5** 首个 IPC 帧(reduced path) | **已收官** | `ff2994d9..37fc4fdb`,八包 + j0/x2/ap/docs |
|
||||
| **P5b** inproc 下的 verb 迁移 | **代码已落地,测量未收口** | `37fc4fdb..7cb29d46` |
|
||||
| P6 spawn transport | 未开始 | 排在 P5b 之后 |
|
||||
|
||||
## 2. 当前头实测
|
||||
|
||||
| 门 | 结果 |
|
||||
|---|---|
|
||||
| 构建 | pull / push / verify / split 四个 flavour 全部通过 |
|
||||
| G1(pull 符号恒等) | `.text +0`,27814 符号 0 增 / 0 删 / 0 resize / 0 重命名 |
|
||||
| unit | pull / push / verify 各 1817/1817;split 2138/2138 |
|
||||
| `integration-split`(inproc) | **107/107**(P5 收官时 22) |
|
||||
| `integration-gpu`(push) | 1148/1148 |
|
||||
| `integration-gpu`(split,单体传输) | 1267/1267 |
|
||||
| G5(p3a / p4a 保护区) | 双绿 |
|
||||
| 集成普查(inproc,测于 `348d22a4`) | 811 passed / 203 skipped / 62 aborted,共 1267 |
|
||||
|
||||
## 3. P5b 落地内容
|
||||
|
||||
| 包 | 迁移的槽 / 内容 | 效果 |
|
||||
|---|---|---|
|
||||
| c0b | 25 个已测量 class-C 槽的 wire 记录、`WireVerbSink` 分派、具名 Fatal stub、`CONTRACT-P5B.md` | 四包可并行 |
|
||||
| f1 | `ClearBuffer{iv,uiv,fv,fi}`、`ClearNamedFramebuffer*`、`CopyTexImage2D`、`CopyTexSubImage2D`、`GenerateMipmap` | 34 个车道中止归零 |
|
||||
| i1 | `BindImageTexture`、`DispatchCompute`、`CopyImageSubData`、`MemoryBarrier`、`ShaderStorageBlockBinding` + 两个伴随槽 | 235 个车道条目解锁 |
|
||||
| t2 | 四个 stream-output span 行、XFB 对象绑定、`PatchParameteri`、`kCapBackendOwnsXfbCapture` | 138 个车道条目解锁 |
|
||||
| d1 | 十九个索引 / 实例 / multi-draw / indirect 槽下沉到 `draw_vbo` | Minecraft 主阻塞解除 |
|
||||
| sync | `FenceSync`、`ClientWaitSync`、`GetSyncStatus`、`WaitSync`、`DeleteSync` 上 apply 线程;client 铸造 Fence 句柄,wire 只过 `{slot,gen}` | 顺带修掉 `MGL_BACKEND_SLOT_PTR_LOCAL` 对 split 恒返回 nullptr |
|
||||
| blit / mip | `BlitNamedFramebuffer` 经作用域化 client-shadow 绑定下沉;生成 mip 存储按推送描述符验证 | 31 + 7 个 trace 阻塞解除 |
|
||||
| r1 / r2 | P5 收官审查 13 项(coherent-map 服务器侧绕过、FBO 死亡在 client 线程、`PACK_SWAP_BYTES`、`RingOverrun` 等待、CI 对照九项) | — |
|
||||
| 收官审查修复 | 索引 span 上界(`Count × IndexSize` 必须装进声明的 run)、fence wait 预算、`Fatal{ReplyStatusInvalid, "ReadPixels"}` | P5b 审查 0 blocker |
|
||||
|
||||
## 4. 真实负载(inproc,独立 apply 线程)
|
||||
|
||||
- `DrawElements` 不再是阻塞。d1 普查时 77 个 Minecraft 后端用例中 28 个渲染通过(SSIM ≥ 0.99995)。
|
||||
- blit + mip 之后:`improved-transparency-minecraft-26.3` DirectVulkan SSIM 0.999914;`minecraft-1.21.4-fabric-iris-bsl-in-world` DirectVulkan 0.997324、DirectGLES 0.997496。
|
||||
- OpenRA 双后端 SSIM 1.0。
|
||||
- 新头上的完整 trace 普查未跑。
|
||||
|
||||
## 5. 开放项(按优先级)
|
||||
|
||||
| 项 | 证据 |
|
||||
|---|---|
|
||||
| `SEG_STAGE` 默认 32 MiB 装不下 128 MiB 上传:improved-transparency DirectGLES 报 `Fatal{RingOverrun}`。`MOBILEGL_IPC_STAGE_MB=256` 是 profile,不是修复 | `p5b-results/blit-codex-v1.md` |
|
||||
| Magma(DirectVulkan)split compute/image 路径:89 个错答中 82 个 | `p5b-results/i1-v1.md` |
|
||||
| rd12 DirectGLES `InitialBytesNotCarried/resource_respecify`;rd12 DirectVulkan `BarrierTimeout/Present` | `p5b-results/d1-codex-v1.md` |
|
||||
| RGB 三通道 CPU mip 回退 | `p5b-results/mip-codex-v1.md` |
|
||||
| 设备 barrier tax 未测(此前每次 split 臂都停在 `DrawElements`) | `p5-results/ab-v1.md` |
|
||||
| 27 个 P5 inproc 错答:纹理读回走 client-shadow 回退、P7 query 计数、一个检查 harness、一个 FBO/RBO 删除后生命期 | P4b / P7 / P6 债 |
|
||||
| `rsp` 残余输入;`SEG_REPLY` 2 MiB 上限;GetCaps 两个 blobref 的载体;PACK-PBO 读回真实形式 | P3b/P4b、P6+ |
|
||||
| 39 个未被任何负载命中的 class-C 槽(query / sync / indirect / 具名 FBO clear 等) | P5b wave 3 / P9 / P10 |
|
||||
| `test.yml`/`apk.yml` 里的 `feat/disaggregated` 触发器是临时的,合入 dev 前必须移除 | — |
|
||||
|
||||
## 6. 下一步
|
||||
|
||||
1. 新头上跑一次完整普查(车道 + 79 个 trace),拿到真实的 Minecraft 渲染数与新的首阻塞表。
|
||||
2. 修 `SEG_STAGE` 默认容量。
|
||||
3. 重建三个 APK(pull / push / split),跑红米四臂 A/B:首次可测 barrier tax。
|
||||
4. host 全门一次 + 文档收口 → P5b 收官。
|
||||
5. 剩余首阻塞(Magma compute/image、rd12、RGB mip)一轮。
|
||||
6. P6 spawn transport。
|
||||
|
||||
## 7. 记录位置
|
||||
|
||||
| 内容 | 位置 |
|
||||
|---|---|
|
||||
| P5 brief / 契约 / 前言 | `~/w7/notes/p5/BRIEF-P5.md`、`MobileGL/MG_Remote/CONTRACT-P5.md`、`~/w7/notes/p5/PACKAGE-PREAMBLE.md` |
|
||||
| P5 包报告与审查 | `~/w7/notes/p5/p5-results/`(`joint-v1.md` 全门记录、`ab-v1.md` 设备 A/B、`p5-close-codex-review.md`) |
|
||||
| P5b brief / 契约 / 报告 | `~/w7/notes/p5b/BRIEF-P5B.md`、`MobileGL/MG_Remote/CONTRACT-P5B.md`、`~/w7/notes/p5b/p5b-results/` |
|
||||
| class-C 普查 | `~/w7/notes/p6/census-classC.md`;基线 `~/w7/p5b-c0b-census-logs/results.json` |
|
||||
| 门日志 | `~/w7/p5-joint-gate.log`、`~/w7/p5b-quickgate.log`、`~/w7/p5-joint-evidence/` |
|
||||
| 脚本 | `~/w7/notes/tools/`(`wsl_p5_gate.sh`、`p5_ab_redmi.sh`、`wsl_build_p5_apks.sh`、`p6_census_*.{sh,py}`、`p5b-c0b-census.sh`) |
|
||||
|
||||
## 8. 裁定索引(ID-40..75;ID-1..39 见 git 历史)
|
||||
|
||||
| ID | 裁定 |
|
||||
|---|---|
|
||||
| 40 | wave-1 谱系重写:`~/w7/pipe` 曾残留 `rereview` 身份,58 个提交改回用户身份并重挂到 GitHub 谱系 |
|
||||
| 41 | G5 第十一行 `FlushPendingRangesFrom` 始终对 pin 比较,pin 重钉在 `3dadd4c1` |
|
||||
| 42 | persistent-map 成员性期望改为 `live == (arm == emulated)`;emulated 方向红检在联调头 VERIFIED |
|
||||
| 43 | `RingTest` 双旗标空间用例改述实树:带 CALL 旗标的头会被弹出,不再被当 wrap filler 吞掉 |
|
||||
| 44 | dev 合并;G1 基线按 dev 重取(`4595163c`) |
|
||||
| 45 | wave-2 从配额中断处重启 |
|
||||
| 46 | codex 对 wave-1 的跨族审查:10 个 major,逐条执行验证全部确认 |
|
||||
| 47 | `SEG_REPLY` 改 16 MiB / 8 个 2 MiB slot;超限在 client 侧具名拒绝 |
|
||||
| 48 | wave 1.5 分派(w1/s1/t1/p1) |
|
||||
| 49 | ReadPixels 以紧凑形式过线:server 用中性 pack 读进回复,client 按应用 pack 散布 |
|
||||
| 50/52 | v1 两份审查合并;`liveHostBase()` 在有传输时不得回落到 client 的 `MappedData()` |
|
||||
| 51 | CI 上内存台账测试红 = 内核 hiwater 滞后,台账自持峰值 |
|
||||
| 53 | 每个 `DirectGLES.Split.*` 条目一个私有日志;E1 对照从日志读 `Fatal{BarrierViolation}` |
|
||||
| 54 | forwarder 每 (dpy, draw, read, ctx) tuple 只 bind 一次;client 的 release 不解绑 apply 线程的上下文 |
|
||||
| 55 | c1 的 R-17:33 行走生成表 + 4 行 escapes + 回复邮箱;`PipeCatalogueTest` 钉 37 |
|
||||
| 56/58 | c1 两份审查(codex 12 项 / Claude 3 blocker 8 major 6 minor);B1 = 五处取地址的 `&MGPipeApply*` 逃过转换 |
|
||||
| 57 | split 下绑定 PACK PBO 的 ReadPixels 具名拒绝,P5 不实现 |
|
||||
| 59 | v1 round 2 落地;联调 `integration-split` 21/21 |
|
||||
| 60 | 实现包可派给 GPT 族;实现方与审查方错开模型族 |
|
||||
| 61 | c1 round 3 + j0 review + 联调包 |
|
||||
| 62 | v1 round-2 审查:`MOBILEGL_IPC_VERB_BARRIER=0` 杀掉 pre-flight 导致 21 个条目全 skip、ctest 返 0 —— 对照必须把"选中条目被跳过"判为失败 |
|
||||
| 63 | 联调头五部分全门实测 |
|
||||
| 64 | c1 round-3 判定 MERGEABLE;余项转 c1f 门包 |
|
||||
| 65 | 联调处置:27 个 inproc 错答归 P4b/P7 债;E2 clear-drop 对照未变红 → x2 |
|
||||
| 66 | 过程规则改变:不过度验证、轮次间不审查、阶段收官由 codex 审一次、只读/非核心任务派给 codex |
|
||||
| 67 | 相同 tuple 的重复 make-current 不重发 caps;不同 tuple 重发且 client 立即采纳 |
|
||||
| 68 | class-C 普查:所有 Minecraft trace 首阻塞 = `DrawElements`;P5b 计划(Minecraft 优先) |
|
||||
| 69 | v1 round 3;红米 A/B 记录(split 臂当时不可测) |
|
||||
| 70 | c0b 落地;四包启动;APK lane 根因 = setup-android 默认 cmdline-tools 20.0 已无 `tools` 包 |
|
||||
| 71 | x2 经 x2m 合入,P5 代码齐全 |
|
||||
| 72 | f1 落地:34 个 clear/copy/mip 中止归零 |
|
||||
| 73 | P5 收官审查:1 blocker / 10 major / 2 minor → r1(核心)/ r2(CI) |
|
||||
| 74 | 配额中断期间由用户的 Codex root task 推进 P5b 第二波;不重启同名 Claude 包 |
|
||||
| 75 | P5b 整波落地推送 `7cb29d46`;快速门全绿;修掉一个测试日志捕获缺陷(库按进程截断日志,`RunInChild` 的增量读把第 2、3 个子进程的诊断读空) |
|
||||
@@ -1,6 +1,6 @@
|
||||
# MGPipe 路线图
|
||||
|
||||
> 状态:**P0、P0.5、P1、P2、P3a、P4a、P5 已落地,P5b 收尾中**。迁移集成头 `348d22a4` 已有 A=2 / B=54 / C=15;一次主机阶段门与合并普查正在完成,阶段唯一收官审查为 0 blocker / 2 major / 1 minor,三项已在 `82683d4a` 修复,包内定向 9/9 与 7/7(均 0 skip),合并确认待汇总。最后 APK/Redmi 出口未完成,不能标记 P5b 收官。P6 仍排在四个目标 trace 的 Redmi `inproc` 渲染之后。设计见 `ARCHITECTURE.md`,分头证据见 `MEASUREMENTS.md` §26–35。
|
||||
> 状态:**P0、P0.5、P1、P2、P3a、P4a、P5 已落地;P5b 代码已落地(`feat/disaggregated@7cb29d46`),测量未收口**。当前头、逐门数字、开放项与下一步见 **[`CURRENT_STAGE_PROGRESS.md`](CURRENT_STAGE_PROGRESS.md)**(随每次落地更新)。P5b 收官仍需:新头上的完整普查、一次主机全门、APK 与红米 A/B。P6 排在四个目标 trace 的红米 `inproc` 渲染之后。设计见 `ARCHITECTURE.md`,分头证据见 `MEASUREMENTS.md` §26–35。
|
||||
|
||||
## 通用纪律(每个 commit)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user