From 6481691d1e228612090fc580729d64e57a9a3ce2 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Tue, 29 Sep 2026 08:06:38 -0400 Subject: [PATCH] [Docs] (P11): the status page, the roadmap row and the phase README for P11 in progress, and ruling ID-P11-10 on absorbing origin@86dc38a0 --- docs/Disaggregated/CURRENT_STAGE_PROGRESS.md | 28 +++++++++---------- docs/Disaggregated/ROADMAP.md | 2 +- .../notes/p11/INTEGRATOR-DECISIONS-P11.md | 1 + docs/Disaggregated/notes/p11/README.md | 6 ++-- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/docs/Disaggregated/CURRENT_STAGE_PROGRESS.md b/docs/Disaggregated/CURRENT_STAGE_PROGRESS.md index 5758c658..0878a6ed 100644 --- a/docs/Disaggregated/CURRENT_STAGE_PROGRESS.md +++ b/docs/Disaggregated/CURRENT_STAGE_PROGRESS.md @@ -1,29 +1,27 @@ -# 当前阶段:P10 已收官(2026-09-29);下一阶段 P11 / P8 待排 +# 当前阶段:P11 进行中(2026-09-29) -> **更新 2026-09-29**。这一页只有摘要;裁定明细、测量与证据在 [`notes/p10/README.md`](notes/p10/README.md)(计划与范围重划 [`PLAN-P10.md`](notes/p10/PLAN-P10.md))。上一阶段 P9 同日收官,见 [`notes/p9/README.md`](notes/p9/README.md)。 +> **更新 2026-09-29**。这一页只有摘要;计划、裁定与测量在 [`notes/p11/README.md`](notes/p11/README.md)(计划 [`PLAN-P11.md`](notes/p11/PLAN-P11.md)、裁定 [`INTEGRATOR-DECISIONS-P11.md`](notes/p11/INTEGRATOR-DECISIONS-P11.md))。上一阶段 P10 同日收官,见 [`notes/p10/README.md`](notes/p10/README.md)。 ## 目标 -split 下的同步对象、查询与帧节奏不再逐次往返:fence 轮询不再等 server,最后一个手写 class-C 清掉,credit 在带延迟的链路上有配对数据。 +大 buffer(≥ 16 MiB)的 persistent map 在 split 下诚实地落在它声明的档位上;同一台设备上从其他 app 启动的 GL 程序(Termux 一类)能走共享内存,并能导入 client 分配的 AHardwareBuffer(T0)。 ## 完成情况 | 项 | 状态 | |---|---| -| A:`glClientWaitSync` / `glGetSynciv` 由 server 报告本地作答 | ✅ 两后端;`kEventFenceSignaled`(EventKind 5),present 时在归还 credit 前也报告;`MOBILEGL_IPC_POLL_ESCALATE`(64,0 = A/B 对照);零超时轮询有界退出 | -| A 的收益 | 主机 Magma·tcp 每帧 −37%、fence 往返 598 → 0;Adreno 830 上两后端都是 0 次往返、598 / 598 次本地作答;主机 Espryt(llvmpipe)无收益,属于驱动行为 | -| B:最后一个 class-C、split 覆盖 | ✅ `SetSwapInterval` 槽改为转发,class C 清零;`GL_KHR_parallel_shader_compile` 由 client 决定;AsyncCompile / XfbPrimitiveQuery / PrimitivesGeneratedNoXfb 在 split 各臂进门 | -| C:`PRESENT_CREDIT` 1/2/3 | 设备 tcp loopback 在噪声内(rd12 51.4 / 51.6 / 52.4 fps),默认保持 1;跨机 +26% 仍以 P12 为准 | -| 主机门与单进程构建二进制不变(G1) | ✅ 符号增 0 减 0,`.text` `0xa52203`;全部车道绿(数字见裁定 ID-P10-12) | - -## 收官(2026-09-29) - -- 契约 [`MG_Remote/CONTRACT-P10.md`](../../MobileGL/MG_Remote/CONTRACT-P10.md);`EventKind` 追加 1 个;控制协议修订号不变。 -- 转入 [`notes/DEBTS.md`](notes/DEBTS.md):fp64 宣告按 server 环境(同类的 parallel-compile 已修);loopback 上的传输停车(性能);Magma 不支持 `eglSwapInterval`(dev,已开独立任务)。 -- 收官审查沿用 P12 的做法:不派 agent / Codex,契约断言由本人对照代码核过,G1 同机复核。 +| 范围重划 | ✅ `gPipeInputs` 版本化与 T1 关闭;采纳基线三个数撤下,改为同会话重测(ID-P11-1) | +| 合并 dev(重铸读回、局部上传、Magma 排序、Magma `eglSwapInterval`) | ✅ 两后端 × 单进程 / Split / Spawn / Tcp;push 单进程臂上的一个丢写已修;G1 换基线(ID-P11-6) | +| A1 档位在握手时定 | ✅ Stream 上一行具名拒绝后 T2;共享段上 client 握手期具名 Fatal;无线上格式改动 | +| A2 断言 arena 落在哪一档、三臂登记 | ✅ 两后端 | +| A3 T0 在 app 域 | ✅ 两后端 GO(含 128 MiB 与持续锁定) | +| A4 采纳基线(Adreno 830) | ✅ 采纳省 RSS 360–480 MB、不改帧时;split T2 在 MC 26.3 上 RSS 1.4–2×、p99 Espryt +37–42% / Magma 约 2.5×(`notes/p11/A-DEVICE.md`) | +| B0 跨 app client 探针 | 进行中(shell 里的 retrace 可执行文件 → 另一个 app 里的 server;再在 app 域复核) | +| B1 外部 client 的共享内存数据面 / B2 T0 | 待 B0 | +| 主机门(集成头) | ✅ 全绿,数字见 ID-P11-9 | ## 下一步 -按 [`ROADMAP.md`](ROADMAP.md):P11(persistent map 与 ≥ 16 MiB 采纳,同机臂专属;前置开放问题 3);P8(monolith 跑道);P6.5 残余与 P3b/P4b 余项并行。 +B0 结果 → B1(通道 + 共享内存数据面)→ B2(T0 导入,两后端)。转出的 dev 缺陷(Espryt 零散写入并集框、Magma 单进程 rd12 映射耗尽)已开独立任务,见 [`notes/DEBTS.md`](notes/DEBTS.md)。 **阻塞**:没有需要决策的事项。 diff --git a/docs/Disaggregated/ROADMAP.md b/docs/Disaggregated/ROADMAP.md index 7699c3b8..d436927c 100644 --- a/docs/Disaggregated/ROADMAP.md +++ b/docs/Disaggregated/ROADMAP.md @@ -36,7 +36,7 @@ client(跑应用的一方)与 server(跑驱动的一方)可以在**不 | [P8](notes/p8/README.md) | 把剩余的仿真路径挪到正确的一侧,补齐协议 | 待排 | | [**P9**](notes/p9/README.md) | **反向通道:回读、日志、重铸不再同步等待 client** | ✅ 09-29:PACK-PBO 回读 fire-and-forget(两后端)、日志分级转发、重铸无拉取(`OnLog` / `OnTexturePullRequest` 删,回调 9 → 7),F1 / F2;契约 `MG_Remote/CONTRACT-P9.md`;G1 成立;事件量批处理无实测需求不做;余项进 [`DEBTS.md`](notes/DEBTS.md) | | [**P10**](notes/p10/README.md) | **同步对象、查询与帧节奏** | ✅ 09-29:fence 轮询由 server 报告本地作答(`kEventFenceSignaled`、`MOBILEGL_IPC_POLL_ESCALATE`;主机 Magma·tcp −37%,Adreno 830 上两后端 0 次往返);`SetSwapInterval` 转发、class C 清零;query / XFB / AsyncCompile 登记 split 各臂;credit 1/2/3 设备 loopback 在噪声内;契约 `MG_Remote/CONTRACT-P10.md`;G1 成立;余项进 [`DEBTS.md`](notes/DEBTS.md) | -| [P11](notes/p11/README.md) | 同机大缓冲零拷贝共享 | 待排 | +| [**P11**](notes/p11/README.md) | **同机大缓冲零拷贝共享** | 进行中(09-29):已合并 dev;采纳档位在握手时定、落档断言三臂登记;T0 在 app 域两后端 GO;B(同机外部 client 的共享内存 + T0)已排期,B0 探针在跑 | | [P13](notes/p13/README.md) | 删掉旧的"后端直接读前端"路径 | 待排 | ## 另见 diff --git a/docs/Disaggregated/notes/p11/INTEGRATOR-DECISIONS-P11.md b/docs/Disaggregated/notes/p11/INTEGRATOR-DECISIONS-P11.md index bdf492f7..ef3bac4a 100644 --- a/docs/Disaggregated/notes/p11/INTEGRATOR-DECISIONS-P11.md +++ b/docs/Disaggregated/notes/p11/INTEGRATOR-DECISIONS-P11.md @@ -13,3 +13,4 @@ | ID-P11-7 | 2026-09-29 | A3 / A4 的结论(`A-DEVICE.md`):T0 在 app 域两后端都是 GO(与 shell 域逐行相同,含 128 MiB 与持续锁定);Adreno 上采纳只省 RSS(Espryt 480 MB、Magma 356 MB)、不改帧时;split T2 相对单进程采纳在 MC 26.3 上 RSS 1.4–2×、p99 Espryt +37–42% / Magma 约 2.5×(部分来自线程落位)。 | 这是 B2 的可行性与价值依据。 | `A-DEVICE.md`、`DEBTS.md` | | ID-P11-8 | 2026-09-29 | 本阶段查出、不在 P11 修的:Espryt 零散写入按并集框上传覆盖 GPU 纹素(dev 独立任务);Magma 单进程 rd12 耗尽 `vm.max_map_count`(dev 独立任务);client 与 server 共用日志前缀时截断 server 日志(小修);pull 构建没有门跑集成测试(需裁定);split 的线程落位(性能)。 | 按规矩不顺手修 dev 的缺陷;性能只记录。 | `DEBTS.md` | | ID-P11-9 | 2026-09-29 | **集成头 `82467823`**(dev 合并 + A-host + 计划文档)整套门:G1 对 P11 基线符号增 0 减 0、`.text` `0xa56413`;fatal census 79、refusal 词 4、link ratchet 171、spawn parity 0、协议修订 3、wire-declines 53/53;卫生 12/12;unit 2654;integration-split / spawn / tcp 392 / 309 / 321;integration-magma-split / spawn / tcp / full-split 214 / 193 / 177 / 613;integration-gpu monolith / inproc 2529 / 2529。verify 构建 unit / integration-verify / integration-verify-split 2654 / 1298 / 1232。主机 retrace 230 / 236(6 项仍是 iterationrp 的宿主 llvmpipe JIT 崩溃,monolith 同挂)。 | — | 全部 | +| ID-P11-10 | 2026-09-29 | 推送前发现 origin 已前进到 `86dc38a0`(另一个会话把 Magma `eglSwapInterval` 的移植直接推到了本线)。它与已合并的 dev `c60639db` 在 9 个文件上逐字相同,另加 split 专属的 `ForgetRequestedSwapInterval`(`MOBILEGL_BUILD_DISAGGREGATED` 下;传输模式下 `~BackendObject_DirectVulkan` 调用它,结束的 server 会话不把交换间隔带给下一个,与 DirectGLES 同规则)。以合并吸收(`9176dcff`,净增 16 行),不改写 origin。 | origin 不能强推;两份实现只差这一处,取并集。 | `DirectVulkan.{h,cpp}`、`BackendObject_DirectVulkan.cpp` | diff --git a/docs/Disaggregated/notes/p11/README.md b/docs/Disaggregated/notes/p11/README.md index 3157eac8..f784deff 100644 --- a/docs/Disaggregated/notes/p11/README.md +++ b/docs/Disaggregated/notes/p11/README.md @@ -1,6 +1,8 @@ -# P11 — persistent map 与 ≥16 MiB 采纳(待排,同机臂专属) +# P11 — persistent map 与 ≥16 MiB 采纳(进行中) -> 尚未开工。本页保存该阶段在路线图上的完整范围与出口门(2026-09-24 从 [`ROADMAP.md`](../../ROADMAP.md) 阶段表移入,原文照录);阶段开工后,计划、裁定与报告都放在本目录。 +> **2026-09-29 开工**。计划与范围重划 [`PLAN-P11.md`](PLAN-P11.md)(B 已排期:消费者是同机从其他 app 启动的 GL 程序);裁定 [`INTEGRATOR-DECISIONS-P11.md`](INTEGRATOR-DECISIONS-P11.md);真机测量 [`A-DEVICE.md`](A-DEVICE.md);协议 `MobileGL/MG_Remote/CONTRACT-P11.md`。已落地:合并 dev、A1 / A2(档位在握手时定、断言落档、三臂登记)、A3(T0 在 app 域两后端 GO)、A4(基线重测)。进行中:B0。 +> +> 下面是该阶段在路线图上的原始范围与出口门(2026-09-24 从 [`ROADMAP.md`](../../ROADMAP.md) 阶段表移入,原文照录)。 ## 摘要