mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
[Docs] (P11): close the phase - rulings ID-P11-17..19 (B2 T0 zero-copy, the stale indexed binding and Magma empty-uniform fixes with the skip-hole, T0 on by default), B2-DEVICE, the P11 README, the roadmap row and header, the status page and the debts P11 hands on
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# 当前阶段:P11 进行中(2026-09-29)
|
||||
# 当前阶段:P11 已收官(2026-09-29);下一阶段 P8 待排
|
||||
|
||||
> **更新 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)。
|
||||
|
||||
@@ -21,11 +21,12 @@
|
||||
| helper 可行性探针 | ✅ 无 Context 的 `app_process` helper 经 Binder 拿到连接(依赖 ROM,`HSPIKE.md`) |
|
||||
| 合并 dev(M2) | ✅ KGSL 分段提交、零散写入按矩形(补齐 split 半边)、描述符池 |
|
||||
| B1 同机外部 client 走共享内存 | ✅ `fd:` 端点 + 令牌 broker + helper + 启动命令 + 外部 client 的 apply 线程策略;rd12 Espryt 约 119 vs tcp 40–53 fps |
|
||||
| B2 T0 零拷贝导入(可开关,`ADOPT_TIER` 0;默认 2 = 共享内存推送) | 下一步 |
|
||||
| 主机门(集成头) | ✅ 全绿,数字见 ID-P11-16(B1)与 ID-P11-15(M2) |
|
||||
| B2 T0 零拷贝导入 | ✅ 两后端、同 app 与外部路线;**默认开**(用户),用不了静默退回 T2;MC 26.3 峰值内存 Espryt −41–42 %、Magma −18–26 %(`notes/p11/B2-DEVICE.md`) |
|
||||
| 顺带修掉 | 删除仍绑定的 buffer 留旧句柄、Magma 空 uniform 绑定段错误、Espryt split 用例跳过算通过 |
|
||||
| 主机门(收官头) | ✅ 全绿,数字见 ID-P11-20 |
|
||||
|
||||
## 下一步
|
||||
|
||||
B2:T0 导入(两后端,经 B1 的通道;第一项真机检查是 AHardwareBuffer 的 dma-buf fd 跨 app 传递),保留开关。本阶段转出的两个 dev 缺陷(Espryt 零散写入、Magma rd12 映射耗尽)已在 dev 修好并经 M2 合入;其余转出项见 [`notes/DEBTS.md`](notes/DEBTS.md)。
|
||||
拆分路线已走完。按 [`ROADMAP.md`](ROADMAP.md):**P8**(monolith 跑道:把读前端字节的 CPU 变换下放到 client、仿真路径下放、协议广度),之后 P13(删掉旧的「后端直接读前端」路径);P6.5 残余与 P3b / P4b 余项并行。
|
||||
|
||||
**阻塞**:没有需要决策的事项。
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 路线图(索引)
|
||||
|
||||
> **2026-09-29**:P0 到 P7、P12、P9、**P10** 已完成(P10:fence 轮询不再往返——server 报告完成的 fence、client 本地作答,真机两后端 0 次往返;最后一个 class-C 清零;credit 1/2/3 在设备 loopback 上量过、默认保持 1;契约 `MG_Remote/CONTRACT-P10.md`,G1 成立);下一阶段 **P11**(IPC 跑道)与 **P8**(monolith 跑道)。每个阶段的计划、验收结果、实测与报告在 `notes/<阶段>/`(点阶段名进入)。
|
||||
> **2026-09-29**:P0 到 P7、P12、P9、P10、**P11** 已完成——拆分路线走完。P11:同机大缓冲零拷贝(T0,默认开、用不了静默退回共享内存;MC 26.3 峰值内存 Espryt −41 %、Magma −18–26 %),同机其他 app 启动的 GL 程序(Termux 类)经 `app_process` helper 与令牌 broker 走共享内存,连接按 nonce 配对;契约 `MG_Remote/CONTRACT-P11.md`,G1 仅 Magma 空 uniform 修复 +224 字节 `.text`。下一阶段 **P8**(monolith 跑道:仿真路径下放与协议广度),之后 P13。每个阶段的计划、验收结果、实测与报告在 `notes/<阶段>/`(点阶段名进入)。
|
||||
|
||||
## 目标
|
||||
|
||||
@@ -9,7 +9,7 @@ client(跑应用的一方)与 server(跑驱动的一方)可以在**不
|
||||
## 两条路线
|
||||
|
||||
- **单进程路线**:先把接口建起来,让单进程版本也受益(后端拥有自己的状态、可以挪到渲染线程)。P0 → P0.5 → P1 → P2 → P3a → P4a → P3b/P4b → P7 → P8 → P13。
|
||||
- **拆分路线**:在接口之上逐步拆开前后端。P5 → P5b → P5c → P5d → P5e → P5f → P6 → P6.5 → Ph → P12 → P9 → **P10** → P11。
|
||||
- **拆分路线**:在接口之上逐步拆开前后端。P5 → P5b → P5c → P5d → P5e → P5f → P6 → P6.5 → Ph → P12 → P9 → P10 → **P11**(走完)。
|
||||
|
||||
## 阶段一览
|
||||
|
||||
@@ -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) | **同机大缓冲零拷贝共享** | 进行中(09-29):已合并 dev;采纳档位在握手时定;连接按 nonce 配对(修订 4);同机外部 client(Termux 类)经 helper 与令牌 broker 走共享内存(B1);下一步 T0 零拷贝(可开关) |
|
||||
| [**P11**](notes/p11/README.md) | **同机大缓冲零拷贝共享** | ✅ 09-29:T0 零拷贝导入(两后端,默认开,自测不过或 Stream 上静默退回 T2);同机外部 client 经 helper + 令牌 broker 走共享内存(B1);连接按 `PairBind` nonce 配对(修订 5);采纳档位在握手时定;契约 `MG_Remote/CONTRACT-P11.md`;余项进 [`DEBTS.md`](notes/DEBTS.md) |
|
||||
| [P13](notes/p13/README.md) | 删掉旧的"后端直接读前端"路径 | 待排 |
|
||||
|
||||
## 另见
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
| P11 转出(性能):设备上 MC 26.3,split T2 相对单进程采纳的 p99 Espryt +37–42%、Magma 约 2.5×,RSS 1.4–2×;其中一部分是线程落位——server apply 线程钉在 6–7 核,client GL 线程多半落到慢核,每帧 CPU 约 2.3×(`notes/p11/A-DEVICE.md`) | 路线图推完后的性能工作;RSS 由 B(T0)处理 |
|
||||
| P11 转出:client 与 server 共用日志前缀时,client 以 `"w"` 打开 `<base>.server.log` 写转发来的 server 日志,会截断 server 自己的文件(依赖 server 日志行的 P12 装置测试可能受影响) | 小修 |
|
||||
| P11 转出(B0 F1):HyperOS 熄屏时冻结 server app 的整个 uid(FGS 进程、supervisor、会话子进程同一 cgroup),在飞会话 120 s 后 `Fatal{BarrierTimeout}`;FCL 同机用法同样受影响(`notes/p11/B0-CROSS-APP.md`) | B1 的防冻结一项;FCL 侧另议 |
|
||||
| P11 转出(B2):T0 只在红米一台 Adreno 上实测;Mali 等只有 spike B 的 shell 域证据(server 自测会在不支持的设备上自动退回 T2)。「respecify 时立即释放导入」的变异在 Espryt 上不红(驱动大概自己持有引用,未核实),带 fence 的释放保留 | 有第二种设备时复测 |
|
||||
| P11 转出(B2):`DualBlock` 条目单跑时红(要 `MOBILEGL_IPC_ROLE_SPLIT_STATE=1`,CI 的 dual-block 步骤才会设),门禁车道不选它 | 按设计;需要时给条目加环境 |
|
||||
| P11 转出(B1):会话位被一个慢启动程序占着时,第二个 client 若 2 s 内发 Hello 得具名 `Refuse{Busy}`,更慢的只见发送失败(那条路径不读待发的拒绝);已写进契约 | 小修 |
|
||||
| P11 转出(B1):会话启动失败后 client 还多报一个误导性的 `Fatal{CapsBeforeFirstSnapshot}`(早于 B1,helper 用户每次被拒都会看到) | 小修 |
|
||||
| P11 转出(B1):外部 client 的 apply 线程策略只在红米一台(两大核)上量过;Magma openra 两个数据面都卡在 server(约 285 fps),共享内存无收益 | 需要第二种拓扑的设备时再量 |
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# P11 B2:T0 零拷贝导入(真机)
|
||||
|
||||
2026-09-29,Redmi `2f7cbe2e`(Adreno 830),默认环境、两个 app 的 HyperOS 电池设「无限制」、CPU 定频并回读、无解冻器。协议与行为见 `MobileGL/MG_Remote/CONTRACT-P11.md` B2 节;报告 `~/w7/notes/p11/b2-report.md`,证据 `~/w7/notes/p11/evidence/b2/`。
|
||||
|
||||
## 开关
|
||||
|
||||
`MOBILEGL_IPC_ADOPT_TIER`:**不设(默认,用户 2026-09-29)= 请求 T0**,本会话用不了(server 自测不通过、server 端 `MOBILEGL_IPC_ALLOW_ADOPT_T0=0`、Stream 数据面、没有 AHB)时静默退回 T2(只记 MGLOG_D、计数);`0` = 同样请求 T0,但退回时两端各一行具名日志;`1` = `Refuse{AdoptTierClosed}` 后 T2;`2` = 与之前完全相同(共享段 + client 推送,T2)。不 Fatal。默认开后在红米上不设开关复跑 MC 26.3 inproc:两后端都导入 8 个缓冲(462,946,304 字节)、ssim 通过、无 T0 相关的 W/E 行。控制协议修订 4 → 5(Hello 带 client 请求的档位,Welcome 回显)。
|
||||
|
||||
## 先验:AHB 的 fd 跨过每条路线(先于任何构建)
|
||||
|
||||
| 路线 | client → server | 结果 |
|
||||
|---|---|---|
|
||||
| shell → server app(B1 helper 的 `fd:`) | `shell` → `untrusted_app:c87` | 64 KiB、32 MiB、128 MiB 都通;server 的 GPU 读到 client 在从不解锁的锁下写入的字节;0 个 avc |
|
||||
| 另一个 app → server app | `c84` → `c87` | 通 |
|
||||
| 同 app(经 helper / 直连 / spawn 的子进程) | `c87` → `c87` | 通 |
|
||||
|
||||
## MC 26.3:开关 0 vs 2(3 次交错,中位)
|
||||
|
||||
内存口径 = 两进程 VmHWM(去重共享页)+ kgsl 驱动分配 + kgsl 导入(AHB 页只出现在导入里,RSS 看不到)。
|
||||
|
||||
| 后端 | 臂 | 开关 | p99 ms | GL / apply CPU ms/帧 | **峰值总内存 MB** | 稳态 MB |
|
||||
|---|---|---|---|---|---|---|
|
||||
| Espryt | inproc | 2 | 46.7 | 10.9 / 11.3 | 3010 | 2992 |
|
||||
| Espryt | inproc | 0 | 44.1 | 11.5 / 11.3 | **1758(−42 %)** | 1492 |
|
||||
| Espryt | spawn+shm | 2 | 44.5 | 10.5 / 11.2 | 3049 | 3029 |
|
||||
| Espryt | spawn+shm | 0 | 44.5 | 10.5 / 10.7 | **1789(−41 %)** | 1526 |
|
||||
| Magma | inproc | 2 | 75.6 | 15.9 / 20.1 | 2677 | 2669 |
|
||||
| Magma | inproc | 0 | 75.9 | 15.9 / 20.4 | **1971(−26 %)** | 1774 |
|
||||
| Magma | spawn+shm | 2 | 76.3 | 15.9 / 20.4 | 2731 | 2713 |
|
||||
| Magma | spawn+shm | 0 | 75.3 | 15.2 / 19.6 | **2244(−18 %)** | 1815 |
|
||||
|
||||
- ssim 开关 0 与 2 逐位相同:MC 26.3 Espryt 0.999684、Magma 0.999600;create-instancing 0.99998。每个开关 0 的会话 8 个大缓冲(441.5 MiB)全部导入。
|
||||
- 帧时与 CPU 不变;每帧 stage 字节几乎不变(1071 → 1052 KiB)——T0 省的是内存,不是上传量。
|
||||
- B1 的外部路线(另一个 app 经 helper)同样走 T0:Espryt 峰值 2830 → 1590 MB。
|
||||
|
||||
## T0 专属改动的 red-once(真机,Android 集成测试 + static-peek,inproc)
|
||||
|
||||
| 改动 | 变红的用例 | Espryt | Magma |
|
||||
|---|---|---|---|
|
||||
| 常驻写直接写进 AHB | `ADrawQueuedBeforeASubDataKeepsItsOwnBytes` | 红 | 红 |
|
||||
| respecify 时立即释放导入 | `ARespecifyWithADrawQueuedKeepsThatDrawsStore` | 绿(驱动大概自己持有引用,未核实;带 fence 的释放保留) | 红 |
|
||||
| 不发布 `kCapAdoptT0` | `TheArenaLandsInTheTierItsLaneDeclares` | 红 | 红 |
|
||||
| CPU 读跳过回读往返 | `ReadbackSeesTheLatestCpuWrite`、`GpuWriteIntoTheArenaIsReadBack` | 红 | 红 |
|
||||
@@ -20,3 +20,6 @@
|
||||
| ID-P11-14 | 2026-09-29 | **零拷贝必须可开关**(用户):开关即 `MOBILEGL_IPC_ADOPT_TIER`——`2`(默认)= 今天的共享内存 + client 推送(T2),`0` = T0 零拷贝导入。开了但本会话用不了(server 自测不通过、server 端禁用、Stream 数据面)→ 退回 T2 加一行具名日志,不 Fatal;A1 在共享段上对 0/1 的握手期 Fatal 随 B2 改成这个回退。server 端另设允许 / 禁止零拷贝的开关。默认值在 B2 真机门之后按数据再议。 | 零拷贝依赖 AHB 导入与 ROM 行为,必须能退回已验证的共享内存路径。 | `PLAN-P11.md` §2 B2;B2 实现 |
|
||||
| ID-P11-15 | 2026-09-29 | **合并 dev `c14283ee`**(M2:Espryt 零散写入按矩形上传、Magma 每 16384 次 draw 分段提交、Magma 描述符池几何增长与整槽回收),合并提交 `c3715998` 加 8 个跟进。要点:dev 的零散写入修复只在单进程成立——split 各臂的 client 仍发存储合并后的矩形表(跨过空隙),合并头上 30 例红(两后端、三臂);改为 client 发精确写入框、server 区域上限 256 → 4096、Espryt server 在纹理无 GPU 写时自行做原来的框 / 矩形取舍(`91454338`)。dev 在按句柄查纹理的 server 路径上补的「GPU 可能写过」标记是承重的(去掉帧缓冲附件那一处即 12 例红)。分段提交也覆盖 split server 的 draw / dispatch。描述符池:回收的围栏在 split server 上重核成立(只从 Present 等完整个槽或空闲排空到达,线上各 flush 点不到达);普查用例只在 Magma Split 跑(Spawn / Tcp 的池在 server 进程,按名跳过),要等 server 应用完再读;server 每 2048 个 set 回卷。link ratchet 171 → 172(dev 新的虚函数经纹理占位对象可达,重设基线)。G1:对旧基线 +108 / −81,具名 +25 / −0 与 dev 自己的增量相同,`.text` a56413 → a5b933,新基线已写。门(`de996d53`):unit 2676、split / spawn / tcp 408 / 325 / 337、Magma 238 / 215 / 191 / 629、gpu 2617×2、verify 2676 / 1330 / 1264、retrace 230 / 236(iterationrp 6 项)。 | 两边改的是同一条上传路径与同一套描述符管理,dev 的修复在 split 下还缺一半。 | `~/w7/notes/p11/m2-report.md` |
|
||||
| ID-P11-16 | 2026-09-29 | **B1 落地**(协议与行为见 `CONTRACT-P11.md` B1 节):`fd:<control>,<aux>` client 端点;两个 flavour 的 server app 都有导出的令牌 broker(令牌 ≥ 16 字节、核对运行中 server 自己的令牌,拒绝一律具名带退出码;server 只开 TCP 时走旁边的私有 abstract 监听);`app_process` helper(令牌走环境变量或文件、不走 argv,经隐藏 `IActivityManager` 发广播);server 界面「复制启动命令」「生成令牌」。**broker 在交出时就写好两条 `PairBind`**(ID-P11-12),helper 以 `MOBILEGL_IPC_FD_PAIRED=1` 告诉 client 跳过自己的;配对后的 unix 会话等 Hello 不设时限、以 EOF 为界(`kPairedUnixHelloWaitMs`),TCP 保留预认证时限——代价是一个永不发 Hello 的程序占着会话位直到它退出。**apply 线程策略按对端与数据面**:外部进程 + 共享段时 apply 线程在最低的那个大核、自旋 50 µs,唯一大核时不占它(退到别的大核或不绑);TCP、同 app spawn、inproc 不变(把 apply 放小核会把 TCP 从 51 拖到 27 fps)。server 把实际保留的核通过 broker 告诉 helper,helper 默认 `taskset` 避开它(`--keep-affinity` 关闭),核的规则只在 C++ 一处。用户须知:令牌 ≥ 16 字节、server 以离屏模式启动、HyperOS 电池对 server app 与 client 所在 app 都设「无限制」(否则熄屏或后台会被冻结)。真机(`df826f42` APK,默认环境、无解冻器):rd12 两后端 × 路线 (a)(b) ssim 全过、shm 全部胜 tcp(Espryt 119.3 / 53.2、118.7 / 39.8;Magma 36.4 / 20.3、32.5 / 20.4);程序晚 10 s 才初始化 EGL 仍能连上;插件 flavour 跑通。主机门(`8dfdd3ba`,之后只改了 Java 一行与契约):G1 0/0、ratchet 172、修订 4、卫生 12/12、unit 2692、各车道全绿;5 个 red-once。 | 用户点名的消费者是同机的原生程序;B0 / HSPIKE 已证明通道可行。 | `CONTRACT-P11.md` B1 节;`~/w7/notes/p11/b1-report.md` |
|
||||
| ID-P11-17 | 2026-09-29 | **B2 落地:T0 零拷贝导入**(协议与行为见 `CONTRACT-P11.md` B2 节,数据见 `B2-DEVICE.md`)。先验:AHB 的 fd 在 shell → server app、另一 app → server app、同 app(helper / 直连 / spawn 子进程)五条路线都跨得过,GPU 读到从不解锁的锁下写入的字节,0 个 avc。设计:领养搭数据环上已有的 `map_persistent` 记录,AHB 经 aux 套接字按记录序号配对,apply 线程处理该记录时最多等 2 s、超时对那一个缓冲具名拒绝、不挂死;server 起角色时做「持续锁定 + GPU 写 + 经持有的指针读回」自测,通过才发布 `kCapAdoptT0`;client 取 min(开关, caps, 数据面);Espryt `glBufferStorageExternalEXT`、Magma `VK_ANDROID_external_memory_android_hardware_buffer`,导入的缓冲不留 Espryt 暂存副本(读者逐一审过);释放由 server 自己的 fence / serial 门控;CPU 读前 server 落完常驻写并等 GPU。控制协议修订 4 → 5。MC 26.3 峰值总内存(含 kgsl 导入):Espryt −41–42 %(3.0 → 1.8 GB)、Magma −18–26 %;ssim、帧时、CPU 不变,每帧 stage 字节不变。T0 专属改动的 red-once 在真机上做(Android 集成测试 + static-peek,inproc)。 | 用户要的同机大缓冲零拷贝;A3 已证明 app 域可行。 | `CONTRACT-P11.md` B2 节;`B2-DEVICE.md`;`~/w7/notes/p11/b2-report.md` |
|
||||
| ID-P11-18 | 2026-09-29 | B2 过程中查出并修掉的三处:(1) **删除仍绑在索引绑定点上的 buffer**,前端清了绑定却没调 `NoteBindPointChanged`,server 留着旧句柄,槽位以新代号重用后 Espryt 在 `BackendSlotTable.Generation` 上 Fatal、Magma 静默丢掉那次 draw / dispatch(早于 B2,任何 split 会话都可能碰到)——四种索引目标加上交换 XFB 对象的路径都补上,`DeletedBoundBufferScenario` 两后端 × 单进程与三臂,去掉修复后 SSBO / uniform / 原子计数器红;(2) Magma 单进程在空的 uniform 绑定点上解引用空 buffer 而段错误(早于 B2),改为读零块,dev 同步修(`853c5f12`、测试 `7030d307`);这是本阶段 G1 唯一的变化:`.text` +224 字节、符号不变;(3) Espryt 的 split / spawn 集成用例没设 `MOBILEGL_ITEST_REQUIRE_GPU`,握手期 Fatal 被记成跳过、ctest 算通过——1106 条全部补上,未暴露新红。 | 前两个是真缺陷;第三个是门禁漏洞。 | `BufferState.cpp`、`UniformManager.cpp`、`MG_IntegrationTest/CMakeLists.txt` |
|
||||
| ID-P11-19 | 2026-09-29 | **零拷贝默认开**(用户,看过 B2 数据后):`MOBILEGL_IPC_ADOPT_TIER` 不设 = 请求 T0,用不了时静默退回 T2(MGLOG_D、计数);显式 `0` 保留具名日志行,`2` 与之前相同。不设时 client 发一个单独的请求值(`0x80`),server 才知道该安静;为记录这个值改了 `protocol.fbs`,按 pin 脚本的「修订号提交本身的修补」用 `--force` 重钉修订 5(修订 5 从未发布),未升到 6。 | 自测把关、用不了自动退回,开关仍可关。 | `CONTRACT-P11.md` B2 节;`design/09` |
|
||||
|
||||
@@ -1,6 +1,19 @@
|
||||
# P11 — persistent map 与 ≥16 MiB 采纳(进行中)
|
||||
# P11 — persistent map 与 ≥16 MiB 采纳(已收官,2026-09-29)
|
||||
|
||||
> **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 / HSPIKE(跨 app 通道)、PAIR(连接按 nonce 配对,修订 4)、B1(同机外部 client 经 helper 与令牌 broker 走共享内存)。下一步:B2(T0,可开关)。
|
||||
> **2026-09-29 收官**。计划与范围重划 [`PLAN-P11.md`](PLAN-P11.md);裁定 [`INTEGRATOR-DECISIONS-P11.md`](INTEGRATOR-DECISIONS-P11.md)(ID-P11-1..20);协议 `MobileGL/MG_Remote/CONTRACT-P11.md`;测量 [`A-DEVICE.md`](A-DEVICE.md)、[`B0-CROSS-APP.md`](B0-CROSS-APP.md)、[`HSPIKE.md`](HSPIKE.md)、[`B2-DEVICE.md`](B2-DEVICE.md)。
|
||||
>
|
||||
> | 包 | 结果 |
|
||||
> |---|---|
|
||||
> | A1 / A2 | 采纳档位在握手时由知道数据面的一侧定;Stream 上具名拒绝后 T2;断言 arena 落在车道声明的档、三臂登记 |
|
||||
> | A3 / A4 | T0 在 app 域两后端 GO;采纳基线在 Adreno 830 上重测(省 RSS、不改帧时),路线图的三个数撤下 |
|
||||
> | B0 / HSPIKE | 跨 app 连 server 的 unix 端点被 SELinux 拒;无 Context 的 `app_process` helper 经 Binder 拿到连接(依赖 ROM) |
|
||||
> | PAIR | socket client 的两条连接按 `PairBind` nonce 配对,修订 3 → 4 |
|
||||
> | B1 | 同机外部 client(Termux 类)经 helper + 令牌 broker + `fd:` 端点走共享内存;rd12 Espryt 约 119 vs TCP 40–53 fps;外部 client 的 apply 核策略 |
|
||||
> | B2 | T0 零拷贝导入(两后端,同 app 与外部路线),**默认开**、用不了静默退回 T2;MC 26.3 峰值内存 Espryt −41–42 %、Magma −18–26 %,ssim / 帧时 / CPU 不变;修订 4 → 5 |
|
||||
> | M / M2 | 两次合并 dev(重铸读回、局部上传、Magma 排序与交换间隔、分段提交、零散写入、描述符池),补齐 split 半边 |
|
||||
> | 顺带修掉 | 删除仍绑定的 buffer 后 server 留旧句柄(Espryt Fatal / Magma 丢 draw);Magma 空 uniform 绑定段错误;Espryt split 用例的「跳过算通过」漏洞 |
|
||||
>
|
||||
> 门(收官头):见 ID-P11-20。
|
||||
>
|
||||
> 下面是该阶段在路线图上的原始范围与出口门(2026-09-24 从 [`ROADMAP.md`](../../ROADMAP.md) 阶段表移入,原文照录)。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user