mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
P8 — emulation 下放 + 索引宿主镜像 + 协议广度 → server 侧仿真缺口与 split 覆盖(进行中,2026-09-29 起)
2026-09-29 重定界(用户批准):只读核查发现原范围 10 项里 6 项已由前序阶段完成,剩下的缺口都在 server 侧,不是"搬到 client"。计划
PLAN-P8.md;裁定INTEGRATOR-DECISIONS-P8.md。下面原范围照录并划掉,不删。
重定界后的包
| 包 | 内容 |
|---|---|
| P8-0 | 普查:设备与主机 trace 语料上各拒绝点 / 仿真谓词的命中数;split 日志与逐 op 等待 |
| A | 覆盖对齐:monolith 用例登记到 split / spawn / tcp,豁免表 + 归一化名单门 |
| B | Espryt 生成 mip:存储检查读计划窗口(B1);RGB16F / RGB32F 在 server 完成(B2) |
| C | Espryt server 暂存影子与 GPU 写对账 |
| D | Magma wire 臂原生 indirect(不再 CPU 展开 + 等 GPU 空闲) |
| E | CopyImage 在 server store 上处理 |
| F | 死闩清理与重分类(无行为变化) |
| G | 大 blob 分片:按 P8-0 的测量决定做不做 |
摘要(原文,已划掉)
monolith 跑道,P7 之后。把读前端字节的纯 CPU 变换下放到 client(MG_Impl/Pipe/HostResolve.cpp:最大索引扫描、*IndirectCount解析);Server/IndexHostMirror待重裁(a6 实测宿主索引 span 无 producer);multi-draw client indices、CopyImage 镜像、generate_mipmapCPU 回退、texture-remint-pull仿真下放;大 blob carrier 只剩 program archive 与draw_vborange 尾(与 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_vborange 尾(a6 §6;与 P6.5 sl 共用同一分片);kCapDriverOrderedXfbCapture(0 处);无 present fence tick 只记在 P10验收门 / 证据:'^DirectGLES\.Split\.'与'^DirectGLES\.'逐名相同;trace split 双后端 SSIM ≥ 0.99 含两个coherent_as_flushfixture;ClientArrayAfterComputeWriteScenario;create-indirect上roundtrips-per-frame读零;index-mirror-bytes逐用例发布