Files
MobileGL/docs/Disaggregated/notes/p8
swung0x48 43b5cfa94e [Docs] (Disaggregated): the four index documents keep only summaries, and every phase's detail lives in its own notes/<phase>/README.md
- ROADMAP, MEASUREMENTS and ARCHITECTURE are rewritten as summaries (333 KB of index text -> 84 KB).
  ROADMAP's phase table is one line per phase plus a link; MEASUREMENTS keeps headline numbers under
  its old §1-§13 numbering (plus §14-§16 for P6.5, P7 and P12); ARCHITECTURE keeps every decided rule
  under the same §1-§17 / appendix numbering, so the `ARCHITECTURE.md §N` references in code still
  land, and §17 becomes an index of the phase landing shapes.
- CURRENT_STAGE_PROGRESS now describes the current stage (the P12 on-screen-server subset) and absorbs
  CURRENT_STAGE_STATUS, which is removed. The P7 status tables, the P6 closing snapshot and the P6.5
  first-wave snapshot move to notes/p7, notes/p6 and notes/p65.
- Each phase gets notes/<phase>/README.md: a short summary, then the verbatim material that left
  the index documents (its ROADMAP row, its MEASUREMENTS section with subsection numbers kept, its
  ARCHITECTURE §17 part, milestones) and a file index. P8-P11 and P13 get their planned scope;
  the full open-question list moves to notes/OPEN-QUESTIONS.md.
- The phase reports that sat at the top level move into their phase folders with unchanged names:
  P5D-INPROC-PERFORMANCE, P5E-RUNAHEAD, P5F-WIRE-COMPLETENESS, P6-SPAWN-PLAN, P6-CONTRACT-DRAFT,
  P6-ENDSTATE-REVIEW. Their relative links, CONTRACT-P6.md's links to them and one tool docstring
  are updated; notes/README.md maps every old path and section number to its new place.
- 71 files under notes/recovered/ that were byte-identical copies of phase-folder files are removed.
- Corrections made while condensing: the server process reads Transport as Spawn (CONTRACT-P6 §3.1
  amended the old "child forces monolith" rule); both backends now publish kCapRunAheadApply;
  MOBILEGL_IPC_RESPAWN is a named refusal and MOBILEGL_IPC_IDLE_EXIT_S is not parsed; the Redmi
  pin row is in tools/device_bench/pin_device.sh.

check_doc_citations over docs/Disaggregated/*.md: 0 problems. No relative link is newly broken.
2026-09-24 22:21:09 +00:00
..

P8 — emulation 下放 + 索引宿主镜像 + 协议广度(待排)

尚未开工。本页保存该阶段在路线图上的完整范围与出口门(2026-09-24 从 ROADMAP.md 阶段表移入,原文照录);阶段开工后,计划、裁定与报告都放在本目录。

摘要

  • 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 逐用例发布