mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 10:03:23 +09:00
39 lines
4.2 KiB
Markdown
39 lines
4.2 KiB
Markdown
# P8 — ~~emulation 下放 + 索引宿主镜像 + 协议广度~~ → server 侧仿真缺口与 split 覆盖(已收官,2026-09-30)
|
||
|
||
> **2026-09-29 重定界**(用户批准):只读核查发现原范围 10 项里 6 项已由前序阶段完成,剩下的缺口都在 server 侧,不是"搬到 client"。计划 [`PLAN-P8.md`](PLAN-P8.md);裁定 [`INTEGRATOR-DECISIONS-P8.md`](INTEGRATOR-DECISIONS-P8.md)。下面原范围照录并划掉,不删。
|
||
|
||
## 重定界后的包
|
||
|
||
| 包 | 内容 | 结果 |
|
||
|---|---|---|
|
||
| P8-0 | 普查:设备与主机的 trace 语料上各拒绝点 / 仿真谓词的命中数 | ✅ 真实内容只 D 命中;G 不做;create-indirect 门在多帧 trace 上成立([`S.md`](S.md),ID-P8-5) |
|
||
| A | 覆盖对齐 | ✅ 246 例登上三臂,`split_coverage.py` 进门([`A.md`](A.md),ID-P8-7) |
|
||
| B | Espryt 生成 mip | ✅ 生成窗口 + RGB16F / RGB32F 在 server 完成,两个 split 名退役([`B.md`](B.md),ID-P8-8) |
|
||
| C | Espryt server 暂存影子与 GPU 写 | ✅ 基线 21/21 红 → 绿([`C.md`](C.md),ID-P8-9) |
|
||
| D | Magma wire 臂原生 indirect | ✅ create-indirect 每次整 GPU 等待 321 → 0([`D.md`](D.md),ID-P8-10) |
|
||
| E | CopyImage / 驱动拒读 | ✅ 前提改正:真实缺口是驱动拒读时会话 Fatal,改由 server store 作答([`E.md`](E.md),ID-P8-11) |
|
||
| F | 死闩清理与重分类 | ✅([`F.md`](F.md),ID-P8-6) |
|
||
| G | 大 blob 分片 | 不做(ID-P8-5) |
|
||
|
||
第一波集成头 `39cd8fb7` 整套门全绿(ID-P8-12)。
|
||
|
||
| 第二波 | 内容 | 结果 |
|
||
|---|---|---|
|
||
| SE | Espryt split 余项 + 文档行号 | ✅ spawn / tcp 默认帧缓冲发布 surface;CPU mip 拒读时具名拒绝;名单对调用点的门([`SE.md`](SE.md),ID-P8-15) |
|
||
| SV | Magma split 余项 | ✅ 3D mip blit 1 层、深度 mip 拒绝入账、1D 深度拒绝、`glDispatchComputeIndirect` 原生([`SV.md`](SV.md),ID-P8-16) |
|
||
| MD + MF | Create 在 Adreno 830 上 | ✅ dev `f973008c` + push 阶梯镜像:create-instancing × Espryt × monolith 0.870 → 0.99998;create-indirect 坏在 fixture(对齐 16 vs 64),不是 MobileGL([`MF.md`](MF.md),ID-P8-14) |
|
||
|
||
契约 `MobileGL/MG_Remote/CONTRACT-P8.md`;收官 ID-P8-19(出口设备检查无一格变差,P12 跨机门复跑一致)。
|
||
|
||
## 摘要(原文,已划掉)
|
||
|
||
- ~~monolith 跑道,P7 之后。把读前端字节的纯 CPU 变换下放到 client(`MG_Impl/Pipe/HostResolve.cpp`:最大索引扫描、`*IndirectCount` 解析);`Server/IndexHostMirror` **待重裁**(a6 实测宿主索引 span 无 producer);multi-draw client indices、CopyImage 镜像、`generate_mipmap` CPU 回退、`texture-remint-pull` 仿真下放;大 blob carrier 只剩 program archive 与 `draw_vbo` range 尾(与 P6.5 sl 共用分片)。~~
|
||
- ~~门:`DirectGLES.Split.*` 与 `DirectGLES.*` 逐名相同;trace split 双后端 SSIM ≥ 0.99;`create-indirect` 上 roundtrips-per-frame 读零。~~
|
||
|
||
## 阶段表行(原 `ROADMAP.md`,已划掉)
|
||
|
||
- ~~**阶段**:**P8** emulation 下放 + 索引宿主镜像 + 协议广度~~
|
||
- ~~**状态**:待排~~
|
||
- ~~**落地什么 / 范围**:`MG_Impl/Pipe/HostResolve.cpp`(client 数组范围已由 `beba0256` 落地为 owned buffer;最大索引扫描、`*IndirectCount` 解析,逐站点 reconcile);`Server/IndexHostMirror` **待重裁**(树里 0 处;a6 §6 实测宿主索引 span 无 producer、client 索引已是 owned buffer——按 `kCapNeedsHostIndexBytes` 的真实消费者重新裁定,不照抄 `ARCHITECTURE.md` §10.3);multi-draw client indices(`MultiDrawElements+CLIENT_INDICES` 仍具名拒绝);CopyImage 镜像搬到 client;viewport-array 回放验证;`generate_mipmap` 计划 + CPU 回退纹素;`texture-remint-pull` 仿真下放(15 处具名拒绝);大 blob carrier 只剩 **program archive 与 `draw_vbo` range 尾**(a6 §6;与 P6.5 sl 共用同一分片);`kCapDriverOrderedXfbCapture`(0 处);无 present fence tick 只记在 P10~~
|
||
- ~~**验收门 / 证据**:`'^DirectGLES\.Split\.'` 与 `'^DirectGLES\.'` 逐名相同;trace split 双后端 SSIM ≥ 0.99 含两个 `coherent_as_flush` fixture;`ClientArrayAfterComputeWriteScenario`;`create-indirect` 上 `roundtrips-per-frame` 读零;`index-mirror-bytes` 逐用例发布~~
|