mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-15 22:13:24 +09:00
8.1 KiB
8.1 KiB
P8 集成者裁定日志(server 侧仿真缺口与 split 覆盖)
形式沿用
../p11/INTEGRATOR-DECISIONS-P11.md:一条裁定一个 ID,只记「定了什么、为什么、影响哪些文件」。计划见PLAN-P8.md。
| ID | 日期 | 裁定 | 理由 | 影响 |
|---|---|---|---|---|
| ID-P8-1 | 2026-09-29 | 重定界(用户批准):原范围在 README.md 与路线图行里划掉保留;方向改为补 server 侧缺口与 split 覆盖;原 10 项里 6 项与 2 个门、开放问题 9 关闭(PLAN-P8.md「已关闭」表)。 |
只读核查逐项对代码:split 可达的仿真拒绝只剩 Espryt 生成 mip 两名;client 侧工作已由 P5b–P9 完成。 | ROADMAP.md、notes/p8/ |
| ID-P8-2 | 2026-09-29 | 门改写:覆盖门 = 归一化后 split ⊆ monolith ∪ 豁免表;create-indirect 往返门 = 多帧设备 trace 加载帧非 ResourceCreate 等待 = 0。 |
原两门按字面不可达 / 是空的(trace 只 1 帧)。 | A 包、P8-0 |
| ID-P8-3 | 2026-09-29 | G1 不变;各包 split 半边放在 MOBILEGL_BUILD_DISAGGREGATED 下。monolith 半边(例如 B2 的 CPU 滤波读陈旧影子)若 red-once 证实,在 dev 上单独修再合并(用户同意)。 |
沿用 P9 / P11 做法。 | B、C、E |
| ID-P8-4 | 2026-09-29 | 第一波七包并行(P8-0、A、B、C、D、E、F,树 ~/w7/p8-<包>,分支 p8/<包>,集成树 ~/w7/p9-main 分支 p8/main);G 等 P8-0 的测量;C、D 为 P13 前置。设备只由 P8-0 使用(红米,约半天,用户同意)。 |
各包改动区域不重叠(DirectGLES.cpp 按行段分开)。 |
全部 |
| ID-P8-5 | 2026-09-30 | P8-0 普查(主机 80 + 78 次重放、红米 trace 语料 77 × 两臂、FCL 原版 26.3 实机;插桩不提交):真实内容里只有 D 命中——原版 MC 26.3 × Magma × inproc 把 44,768 次 indirect 调用 / 13,028,030 个 draw(约 870 / 帧)在 CPU 展开;B1 / B2 / C / E 的前提在真实内容 0 命中,靠构造的 red-once 成立。G 不做:最大 program archive 354,846 B = arena/4 的 4.2 %,最大 draw_vbo 记录 1,936 B。create-indirect 门(ID-P8-2)在多帧 trace 上成立:rd12(250 帧)与 improved-transparency-26.3(1210 帧)加载帧非 ResourceCreate 等待 = 0。设备语料 spawn 70/77、monolith 68/77 达 0.99,差的都在基线(未插桩对照)上复现。 |
FCL 上只有原版 26.3(无 Iris / Complementary / Create,未下载),B2 实机对照做不了,改用两条 Complementary trace(生成 mip 只见 R11F 与 RGBA8)。 | S.md;树外 ~/w7/notes/p8/s-report.md |
| ID-P8-6 | 2026-09-30 | F 落地(2b4ae539):我们的 client 发不出的形状改判 ProtocolCorruption——multi-draw CLIENT_INDICES / INSTANCED 闩、Magma client-vertex-array;Magma 生成 mip 着色器形状在 wire 臂由 Fatal 改具名拒绝 MipmapShaderFormatOrShape(与 monolith 一致,判定在长链之前);kCapViewportArray / kCapNeedsHost{Index,Ubo}Bytes 与索引镜像哨兵标保留位、不改号。 |
只有外来 peer 能到;mip 形状是后端覆盖缺口不是坏记录。@P 标签本不计入 census(BRIEF-F 前提不成立)。 |
F.md |
| ID-P8-7 | 2026-09-30 | A 落地(8133cd52 + 24b8aef6):246 个只在 monolith 登记的用例登上 split / spawn / tcp(P8Coverage.cmake);五条 server 读的旋钮车道各起一个 tcp supervisor;撤 ClientSideIndices / GuiBatch 排除;split_coverage.py + 豁免表(mechanism / single-backend / no-records / pending-fix)进 CI 与 gate.sh,断言归一化后 monolith ⊆ split ∪ 豁免(ID-P8-2)。按名普查 304 例:235 三臂全过、55 同因跳过、13 no-records、1 真红(Espryt spawn / tcp 默认帧缓冲深度读 0,pending-fix,第二波)。 |
旋钮只放 client 环境时 tcp 副本静默跑默认臂(旧 ForcedDs tcp 条目同病,已修)。规则:server 读的旋钮车道要么独立 tcp supervisor,要么只上 split + spawn,要么证明对其他用例惰性(E 的 13×7 extent 限域)。 |
A.md |
| ID-P8-8 | 2026-09-30 | B 落地(2f530ad8):Espryt server 按记录的生成窗口 [BASE+1, min(MAX+1, 存储层数, 链长)) 生成 mip(B1,与 Magma 同口径);RGB16F / RGB32F 先试驱动原生,驱动拒绝时 server 从驱动读回基级做 2×2 box(不读 client 影子;读回被拒且暂存覆盖整级才用暂存);split 名 generate-mipmap-storage / generate-mipmap-cpu-filter 退役。 |
基线 B1 六例 × 三臂、B2 四例 Fatal;只修检查不修链时 BASE=1 会被 level 0 覆盖。强制 CPU 臂旋钮 MGITEST_ESPRYT_FORCE_CPU_MIPMAP 只上 split + spawn(合 ID-P8-7 规则)。 |
B.md |
| ID-P8-9 | 2026-09-30 | C 落地(94410715):split server 给 shader 写过的 buffer 孪生体打标(SSBO / 原子计数、可写 buffer image、XFB),restart 重写、multi-draw rebase、*IndirectCount、CPU 取用的 indirect 字段、XFB scatter、fp64 收窄一律经 SplitHostBytesForCpuRead 懒刷新后读;T0 臂先落排队常驻写再 glFinish(P11-B2 那条债的 split 半,主机无 T0、未能证红)。 |
前提成立:基线 Espryt split / spawn / tcp 21/21 红。monolith 13 条缺陷用例运行时按名跳过(SkipBrokenMonolith,原因写在代码里),第二波 dev 修复落地后解除。 |
C.md |
| ID-P8-10 | 2026-09-30 | D 落地(92eab9f3):Magma wire 臂把 glDraw*Indirect / glMultiDraw*Indirect[Count] 直接录成 vkCmdDraw*Indirect[Count];CPU 展开只留给设备发不出的 COUNT 形态(与 monolith 同条件);shader 写过的 store 在首个 indirect 读前录一次屏障;范围 / 对齐 / 缺 store 四条具名拒绝。 |
create-indirect split 上 321/322 次 indirect 读每次一整 GPU 等待(每次回放约 8 s)→ 0。去屏障的像素用例在 lavapipe 上不红(顺序执行),如实记录。 | D.md |
| ID-P8-11 | 2026-09-30 | E 落地(39cd8fb7):审计前提不成立——split 的 glGetTexImage 只读 GPU、不碰影子;真实缺口是驱动拒绝 attach(Adreno RGB16 / 16 位 SNORM)时会话以 Fatal{ReplyError,"ReadPixels"} 结束。改为由 server 暂存 store 作答(整级、extent 相符、未被驱动写过),store 跟随同格式 glCopyImageSubData(FollowCopy),跟不了的打粘性 driver-written 标;否则具名拒绝。死闩 CopyImageSubData+RENDERBUFFER 删除,census 79 → 78。 |
red-once 11 条。E 的 monolith 半(拷贝后读拷贝前的 CPU 影子)归第二波 dev。 | E.md |
| ID-P8-12 | 2026-09-30 | 第一波集成头 39cd8fb7 整套门:G1 符号增 0 减 0、.text 0xa5ba13(pull 不变);fatal census 78;link ratchet 172;parity 0;修订 5;wire-declines 58 / 59 站点;卫生 12/12 + split_coverage(两后端 monolith 701,Espryt 门控 612 + 豁免 89,missing 0);unit 2721;split / spawn / tcp 735 / 649 / 661;Magma 271 / 248 / 216 / 668;gpu monolith / inproc 3684 / 3684;verify 5471;retrace 230/236(已知 6 例 iterationrp)。集成者裁定:契约旧措辞加 P8 修订注(CONTRACT-P5B.md、CONTRACT-P5E.md、CONTRACT-P7.md);monolith 缺陷共 14 条,全部进第二波 dev 包(ID-P8-3);开放问题 9、11 关闭,15 答「是缺口」。 |
串行集成六次,每次整套门;两处追加冲突(CMakeLists.txt、WireDeclines.def)都两块保留,一次合并修复(A 的豁免行)。 |
树外 ~/w7/notes/p8/int-*.md |
| ID-P8-13 | 2026-09-30 | 第二波:split 两包(SE Espryt + 文档、SV Magma)串行合入 p8/main;dev 一包(MD)只修 create-* 在 Adreno 上的三条真实负载缺陷,其余 11 条 monolith 缺陷留给 P13(DEBTS.md)。 |
ID-P8-3 原意是「B2 的 monolith 半边上 dev」,第一波报出 14 条,全在 monolith 专属臂里、P13 换臂即消失;按 P8-0 真实内容命中收窄,只修 Create 在 Adreno 上会碰到的三条(dev 是现行产品)。这是对 ID-P8-3 的收窄,已告知用户。 | PLAN-P8.md 第二波 |