[Docs] (P8): CONTRACT-P8 (the rules P8 landed, each with its code anchor and its test), rulings ID-P8-14..18 (MD + MF and the create-indirect fixture's alignment, SE, SV, the dev merge, the wave 2 integration gate) and the debts wave 2 hands on

This commit is contained in:
2026-09-30 07:55:50 -04:00
parent 494305381e
commit b4bee9dd38
3 changed files with 67 additions and 3 deletions
@@ -17,3 +17,8 @@
| 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`](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 缺陷共 12 条(报了 13 条,C、D 各报一次 Magma `glMultiDrawArraysIndirectCount`),取舍见 ID-P8-13;开放问题 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 上的三条真实负载缺陷,其余 9 条 monolith 缺陷留给 P13(`DEBTS.md`)。 | ID-P8-3 原意是「B2 的 monolith 半边上 dev」,第一波报出 12 条(13 条报告去重),全在 monolith 专属臂里、P13 换臂即消失;按 P8-0 真实内容命中收窄,只修 Create 在 Adreno 上会碰到的三条(dev 是现行产品)。这是对 ID-P8-3 的收窄,已告知用户。 | `PLAN-P8.md` 第二波 |
| ID-P8-14 | 2026-09-30 | **MD + MF:Create 在 Adreno 830 上的真实缺陷**。(1) Espryt 部分范围失效映射越过排队的环形拷贝,Adreno 丢拷贝 → create-instancing 整块地形空(0.870);dev 修(`f973008c`,已推 origin dev),feat 的 push 阶梯镜像同一守卫(MF),G5 两条阶梯正文按本裁定重钉;红米两构建 monolith 0.870 → 0.99998 ×3,关守卫回 0.870。spawn 未受影响是时序运气(同样隐患,前面一串整 buffer 映射先把拷贝提交了),现在靠设计。(2) **create-indirect 在红米上坏(ID-P7-4)不是 MobileGL 缺陷**:fixture 在桌面上抓(SSBO 偏移对齐 16),Adreno 要求 64,按 GL 规则被拒的 `glBindBufferRange` 让 Flywheel 的拷贝着色器写乱 indirect 命令;接受 16 字节偏移的诊断构建让 Magma 到 0.99999。该 fixture 的设备车道记为不适用。(3) 每次 indirect draw 整 buffer 同步回读只在 feat 的 monolith 臂(`62bfe461`),dev 无;Magma「计算写 → indirect 读无依赖」被证伪(加屏障不变)。 | 设备 red-once 各一;主机无法显出丢拷贝(llvmpipe 不丢)。 | `Managers.cpp`、`Managers.h`、`p3a_untouched_regions.sh`、`p4a_untouched_regions.sh`;[`MF.md`](MF.md);树外 `md-report.md` |
| ID-P8-15 | 2026-09-30 | **SE 落地**:spawn / tcp 的默认帧缓冲把 surface 发布给 client(原先前端占位为空就提前返回,client 留着 D32F_S8 猜测,blit 丢深度模板);A 的 pending-fix 豁免删除;CPU 生成 mip 在基级被驱动写过且读回被拒时具名拒绝;D 的 case 3 在 Espryt split 臂放开;`unmigrated_emulation_sites.py` 进 CI 与门,死名 `copy-image-shadow-mirror` 删除;包说明 87 处行号按内容重对。 | red-once 9 条。副作用:P12 server 自有窗口的尺寸事件在 spawn / tcp 下第一次生效(设计如此),由出口设备检查验证。 | [`SE.md`](SE.md) |
| ID-P8-16 | 2026-09-30 | **SV 落地**:Magma 3D 原生 mip blit 用 1 层(校验层 VUID-00240 / 01707 / 01708 消失);深度模板 mip 拒绝有了 tally 行 `MipmapDepthStencilAspect`;1D 深度 mip 具名拒绝;wire 臂 `glDispatchComputeIndirect` 原生(无 CPU 路径,沿用 D 的屏障规则)。 | red-once 9 条;`.Mip3DValidation.` 需要校验层,只放在装了层的车道。 | [`SV.md`](SV.md) |
| ID-P8-17 | 2026-09-30 | **合并 dev `f973008c`**(`37174242`):dev 的 Magma 空 uniform 修复与 P11 的 `7784d6bb` 是同一处,合成一条代码路径;dev 的 `UnboundUniformBlockScenario` 登上 split 各臂。G1 符号 0 / 0,pull `.text` `0xa5ba13` → `0xa5ba43`(dev 修复)。 | dev 是现行产品;ID-P8-3。 | `UniformManager.cpp`、`P8Coverage.cmake` |
| ID-P8-18 | 2026-09-30 | **第二波集成头 `49430538` 整套门**:G1 符号 0 / 0、`.text` `0xa5ba43`;census 78;ratchet 172;parity 0;修订 5;wire-declines 61 / 66 站点;卫生 14/14(含 G5 两个、`split_coverage`、`unmigrated_sites`);unit 2724;split / spawn / tcp 747 / 661 / 673;Magma 277 / 253 / 220 / 678;gpu monolith / inproc 3744 / 3744;retrace 230/236(已知 6);verify 5514 中 1 例 `LogForwardChannel.APeerThatStopsReadingCostsWarnLinesNotTheCallersTime` 负载下超时,单跑 5/5 过(入债)。SV 的集成门途中 WSL 自动升级重启,重启后首轮 gpu monolith 的 664 个 tcp 失败是残留的 fixture 状态文件,重跑 3744 全过。 | 串行合入 dev、SE、SV、MF 四次,每次整套门。 | 树外 `~/w7/logs/p8/int-*-summary.log` |