mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
[Docs, CI] (Disaggregated): P5f wave 2 - record green integration and remaining phase gates
This commit is contained in:
@@ -1355,7 +1355,7 @@ jobs:
|
||||
# "green" would mean the knob stopped arming, which is exactly the decay ID-122 assigns
|
||||
# to a control rather than to a lane's good mood. At P5f's exit the file is empty and the
|
||||
# green arm is the correct one; delete the red expectation in the same commit.
|
||||
- name: Integration-split under the dual-block rehearsal - expected red, census ratcheted (P5f f1)
|
||||
- name: Integration-split under the dual-block rehearsal - empty census, hard green (P5f wave 2)
|
||||
working-directory: build-split
|
||||
env:
|
||||
MOBILEGL_ITEST_REQUIRE_GPU: "1"
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
> 车道标签 `integration-dualblock-split`、棘轮 `Harness/dualblock-expected-fatals.txt`);
|
||||
> `fc` 控制面帧已落(报告 [`notes/p5f/fc-report.md`](notes/p5f/fc-report.md):§2.3 的函数指针邮箱
|
||||
> 退役为 `SurfaceControlFrame` 值帧,schema 缺口补齐,wire 入口具名拒绝就位)。
|
||||
> **波次 2 已集成**:fc / fe / fm 完成,双块 210 条零失败、两份 marker 棘轮为空;
|
||||
> 仍有 fs / fr / fv、13 个 BARRIER_PULLED 字段的分类收口与设备门。见
|
||||
> [`notes/p5f/wave2-report.md`](notes/p5f/wave2-report.md) 与最新 HANDOFF-P5F。
|
||||
> **P6 在 P5f 之前不开工**:P6 的前提"只是传输替换"今天不成立,§2 是不成立的清单。
|
||||
|
||||
---
|
||||
@@ -250,13 +253,14 @@ P5f 的每一条都靠同一个机制证伪,而不是靠审计:
|
||||
|
||||
---
|
||||
|
||||
## 5 包(草案,待 §2.4 普查后定)
|
||||
## 5 包(波次 2 已完成;ID-137 分工)
|
||||
|
||||
```
|
||||
f0 普查(只读):§2.4 的完整静态清单 + §2.6 的逐站点清单 + 每个 BARRIER_PULLED 字段的载体判定
|
||||
└─ f1 双块机制 + 旋钮 + 车道(§4),此时预期大面积红,红就是清单
|
||||
├─ fm Magma 的 9 个字段 + T5 + Magma 侧跨角色读写
|
||||
├─ fc 控制面帧(§2.3)
|
||||
├─ fe Espryt 字段读者 + XFB 快照 + 共用记录接线(已集成)
|
||||
├─ fm Magma 的 9 个字段 + T5 + Magma 侧跨角色读写(已集成)
|
||||
├─ fc 控制面帧(§2.3,已集成)
|
||||
├─ fs 静态量分区(§2.4)
|
||||
├─ fr registry 按句柄重键(§2.5)
|
||||
└─ fv 反向通道触碰 client 内存的部分(§2.6)
|
||||
|
||||
@@ -1,78 +1,94 @@
|
||||
# P5f 会话交接(HANDOFF)
|
||||
# P5f 会话交接(波次 2 已集成)
|
||||
|
||||
> 写于 2026-09-19,会话因网络故障(auth.kimi.com OAuth 连接超时)中断时整理。
|
||||
> 用途:新会话读这一份即可自举,继续推进 P5f。
|
||||
> 分支 `feat/disaggregated`,主 worktree `C:/Users/geekerwan/AndroidStudioProjects/FoldCraftLauncher/MobileGL-disagg`。
|
||||
> 2026-09-19 续跑更新。主 worktree:
|
||||
> `C:/Users/geekerwan/AndroidStudioProjects/FoldCraftLauncher/MobileGL-disagg`,分支 `feat/disaggregated`。
|
||||
> 计划:`docs/Disaggregated/P5F-WIRE-COMPLETENESS.md`。
|
||||
|
||||
## 0. 三十秒版
|
||||
|
||||
P5f(一切状态上 wire,计划 `docs/Disaggregated/P5F-WIRE-COMPLETENESS.md`)已开工:
|
||||
**f0 普查与 f1 双块机制已收官并合入 `feat/disaggregated`(头 `418c765c`);波次 2 的 fc 包已完成但未合并(分支 `p5f/fc` @ `d5ed139c`);fe / fm 两包的代理因 OAuth 网络超时从未启动,其 worktree 仍停在基线。波次 3(fs / fr / fv)尚未创建。**
|
||||
**fc / fe / fm 已完成并按序集成。不要再按旧交接的“fe/fm 从未开工”重开。**
|
||||
|
||||
下一步:恢复 / 重开 fe 与 fm 两个实现代理(§4 有完整任务说明),完成后集成 fc+fe+fm,再开波次 3。
|
||||
| 包 | 状态 / 分支头 |
|
||||
|---|---|
|
||||
| f0 | 已合入 `e75e00cb`,八份普查保留 |
|
||||
| f1 | 已合入 `cfcc12f7` + `418c765c` |
|
||||
| fc | 已集成 `p5f/fc @ b5c60d5a`,含控制帧复审修复 |
|
||||
| fe | 已集成 `p5f/fe @ 203f59cc` |
|
||||
| fm | 已集成 `p5f/fm @ 3cc397d3`;行为代码 `552ade5b` |
|
||||
| fs / fr / fv | 尚未开工,见 §3 |
|
||||
| P5f 收口 / 设备 / 异模型族终审 | 尚未完成,P6 继续阻塞 |
|
||||
|
||||
## 1. 已完成(在 `feat/disaggregated` 上)
|
||||
验收代码头 `78ec3b67`,其后只补报告/注释。完整证据见
|
||||
[波次 2 集成报告](wave2-report.md)、[fe 报告](fe-report.md)、[fm 报告](fm-report.md)。
|
||||
|
||||
| 项 | 头 | 内容 |
|
||||
|---|---|---|
|
||||
| f0 普查 | `e75e00cb` | 8 份只读普查报告,全在 `docs/Disaggregated/notes/p5f/`:`f0-statics.md`、`f0-reverse-channel.md`、`f0-magma.md`、`f0-egl.md`、`f0-registry.md`、`f0-env.md`(构建/门禁 cheatsheet)、`f0-fields.md`(15 字段逐字段载体判定)、`f0-dualblock-recon.md`(双块设计侦察) |
|
||||
| f1 双块机制 | `cfcc12f7` + 报告 `418c765c` | `PipeInputs` 按角色分区 + 旋钮 `MOBILEGL_IPC_ROLE_SPLIT_STATE`(默认关)+ 双块车道 + 红清单棘轮 `MobileGL/MG_IntegrationTest/Harness/dualblock-expected-fatals.txt` + 阴性对照(`dualblock_negative_control.sh`,旋钮 1 绿 / 0 红两态实测)+ CONTRACT-P5E §3.2 标 LANDED。**门**:unit 2262/2262、isplit 179/179、gpu 1359/1359、flavours 绿、**G1 零认定**;双块车道(旋钮开)181 条目 155 红全部具名 Fatal、6 对首阻塞(最大块 `GetFramebufferBindingSlot@ReadPixels` 132 条目) |
|
||||
- unit **2286 条零失败**(2276 PASS、10 skip)。
|
||||
- GPU **1375 条零失败**(1118 PASS、257 既有功能/驱动/专属车道 skip)。
|
||||
- 普通 / strict split **179 条零失败**(175 PASS、4 skip)。strict 三类 marker 为零。
|
||||
- 双块 split + magma **210 条:204 PASS、6 skip、0 failed**;Magma 部分 31 条、29 PASS。
|
||||
- strict 与 dualblock 两份预期集合均已清空,双向棘轮通过;f1 机关开绿/关红实测通过。
|
||||
- pull/push 构建通过;G1 `.text +0`、symbols 0/0/0/0;G2 名集合相同;G14 新增70、删除0。
|
||||
|
||||
f1 报告:`docs/Disaggregated/notes/p5f/f1-report.md`(含与 f0-dualblock-recon 的四点设计偏差,均有理由)。
|
||||
这些结论不等于 P5f 收官:字段表仍有13个 BARRIER_PULLED 字段,静态量和反向通道尚有任务。
|
||||
|
||||
## 2. 已完成但未合并
|
||||
## 1. 本轮关键变化
|
||||
|
||||
**fc 包(EGL 控制面帧化)**:分支 `p5f/fc`,头 `d5ed139c`,worktree `../MobileGL-p5f-fc`。
|
||||
fe:Espryt readback、copy、storage-block binding 改读服务端记录;Begin XFB 扩为携带
|
||||
program handle / lifetime id / 四组 buffer range 的快照。make-current 只清当前绑定,保留
|
||||
未结束 span,已有 context-values 记录恢复绑定身份。XFB scatter 的身份也随之转为 archive/handle。
|
||||
|
||||
- 单槽邮箱的"函数指针+栈上 void*"退役为按值 `SurfaceControlFrame`(`MG_Remote/Server/SurfaceControlFrame.h`,static_assert 钉死无指针);12 个 forwarder 本体进 `ApplySurfaceControlFrame` 分发;protocol.fbs append-only 补 3 枚举 + 2 字段 + `WindowKind::MetalLayer=6`(generated 头用 pinned flatc 重生成,零 diff);死 forwarder 不帧化(标 inproc-only);`Fatal{UnmigratedSurface,"AndroidNativeWindow@P12"}` 具名拒绝真窗口;ROADMAP G4 行号漂移已修。
|
||||
- 门全绿:unit 2273/2273、isplit 179/179、strict 179/179(Fatal=0,Admitted 恰 8 对)、flavours pull/push 绿、**G1 0/0/0/0 .text +0**、双块 census 与 f1 逐对相同(fc 名下无红)。R-16 red-once 已真跑(`AVoidForwarderCrossesAsOneDispatchedFrame`)。
|
||||
- 报告:`docs/Disaggregated/notes/p5f/fc-report.md`(在该分支上)。
|
||||
- **预期合并冲突点**:`MG_Test/Wire/CMakeLists.txt`、`ServerLoop.*`、`protocol.fbs` + generated、ROADMAP/P5F/P6-DRAFT 文档行。
|
||||
fm:原交接“draw/dispatch 全部不可达”的结论不成立。基线 gl_VertexID 无 buffer draw 真正
|
||||
通过了像素断言,因此本轮补上 server ProgramArchive / uniform / sampler / image 消费和
|
||||
无应用缓冲 draw/compute。FBO、copy、mipmap、纹理 view 与 staged bytes 全走服务端记录;
|
||||
独立 family caps 不再借 buffer consumer 位。带应用 buffer 的既有 P7 拒绝保留,不能假宣称已迁移。
|
||||
|
||||
## 3. 中断点
|
||||
fc:除原值帧化外,集成了 wire 序号、void 成功回复、MetalLayer 拒绝、无指针成员机械检查、
|
||||
并发/重入 probe metadata 的修复。分包报告均有真实 red-once。
|
||||
|
||||
波次 2 的 swarm 发出后:
|
||||
## 2. 已解决的集成接缝
|
||||
|
||||
1. 第一次(3 代理并行)整批在启动时遇 `auth.kimi.com` OAuth 连接超时,全失败。
|
||||
2. 第一次恢复:fc 成功完成(§2);fe / fm 再次 OAuth 超时失败。
|
||||
3. 第二次恢复 fe / fm:工具调用被用户打断,**结果未记录**——经核实两个 worktree 均无新提交、工作区干净,**fe / fm 确实从未开工**(不是半成品,无需清理)。
|
||||
- `PipeApply.h` 同时保留 XFB span 状态与 Magma mip 工作字段。
|
||||
- CopyImageEndpoint / storage-block program 使用双方相同的 handle 定义与 sink 接线。
|
||||
- `PipeApply.cpp` 同时保留 XFB reset 生存期与无 buffer ops 的纹理 staged 接收/重定义/销毁。
|
||||
- 棘轮为双方退役结果的交集:fc 后6对155红 → fe 后1对2红 → fm 后0对0红。
|
||||
- P8 client-array escalation 仍在自己的具名车道。strict 主车道的空表是实测结果,
|
||||
不代表 P8 已实现;两条 baseline-stale 行已有 f1 独立证据并已删除。
|
||||
|
||||
当前无任何后台任务在跑。
|
||||
## 3. 下一步:波次 3
|
||||
|
||||
## 4. 待办(按序)
|
||||
按 ID-137 包边界继续;先重核本轮已改变的站点,不照 f0 旧行号重复施工。
|
||||
|
||||
### 4.1 重开 fe / fm(原任务说明直接可用)
|
||||
- **fs,静态量/世代**:输入 `f0-statics.md`。`ScopedDefaultUnpackState::s_synced`、
|
||||
`g_syncedRenderStateParameters` 同 tuple 而 context 换代、`XfbImpl::g_xfbObjects` 的世代。
|
||||
XFB 值内的跨角色身份已随 fe 改道,仍需核静态容器。补核 f1 §8 的 `PipeInputs::IsLive`
|
||||
仍读 client LiveContext,决定 server liveness 的清除点。Espryt per-draw memo 已有双键自失效。
|
||||
- **fr,registry**:输入 `f0-registry.md`。原 resource_copy_region / storage-block 两项入口
|
||||
已被 fe/fm 的句柄接线改动,先核剩余 scope;13站中原本11站不可达的 P3b/P4b 债不扩范围。
|
||||
继续核 `GetBackendProgramId` 疑似死代码。
|
||||
- **fv,反向通道**:输入 `f0-reverse-channel.md`。XFB scatter 的 program/target 身份已有
|
||||
fe snapshot/archive/handle 路线,核余下边;主要仍是 RecordError 绕 callback table、
|
||||
`ResourceTracker.h` 找不到 GPU-written handle 时的 client fallback。字节面不重做。
|
||||
|
||||
两包各自独立 worktree + 分支已建好,直接把 §5 的任务说明喂给新代理(或 resume `agent-12` / `agent-13`,但它们从未获得上下文,重开等价)。关键约束:
|
||||
## 4. 收口门与仍保留的债
|
||||
|
||||
- **fe**(worktree `../MobileGL-p5f-fe`,分支 `p5f/fe`,WSL slug `p5f-fe`):15 个 BARRIER_PULLED 字段的 **Espryt 侧**读者退役。设计输入 `notes/p5f/f0-fields.md`:11 个字段"数据已在线上、读者没跟上"(改读者不动线上结构);真正要扩记录的只有 `GetTransformFeedbackProgram`、`GetBufferBindingSlot` 的 7 个无载体 target、`HasOpenTransformFeedbackSpan`、`GetBufferBindingPointCount`。每退役一对 `<field>@<verb>` 同步删 `dualblock-expected-fatals.txt` 对应行(双向棘轮)。RecordError 归 fv、Magma 侧归 fm,别越界。
|
||||
- **fm**(worktree `../MobileGL-p5f-fm`,分支 `p5f/fm`,WSL slug `p5f-fm`):9 个 "P7 (Magma)" 字段的 Magma 读点 + T5 残余 + f0-magma 的三类结构性耦合。**边界**:Magma draw/dispatch 在 transport 下汇入 `Fatal{buffer-legacy-arm}`(BufferObject.cpp:415-440)是 P7 功能债,不归 fm;不可达站点具名记录即可。fm 报告必须回答出口门 4(Magma 是否发布 `kCapRunAheadApply`、不发布的理由)。`ResourceTracker.h:732-739` 的直捅归 fv。
|
||||
- 两包共用 `FieldOwnership.def`(fe 动 Espryt 行、fm 动 Magma 行),集成时解冲突。
|
||||
1. 双块主车道已硬绿,继续保持两份空棘轮;新增字段 marker 必须失败。
|
||||
2. `FieldOwnership.def` 的13字段/17行 BARRIER_PULLED 分类与逐帧 rsp 零,仍需逐项收口。
|
||||
不可把 legacy 指针 getter 改标 record-supplied 来消表。
|
||||
3. Magma 不发布 `kCapRunAheadApply`,理由及不由 lockstep 掩盖缺陷的证据在 fm 报告 §4。
|
||||
4. PackedFloat mipmap 的原基线功能失败保留为 `integration-magma-p7-known-red`;CI 必须
|
||||
真正运行唯一用例并核对 `Magma:mipmap-native-format@P7`,不能跳过该检查。
|
||||
5. G1/G2/G14、逐包 red-once 照旧。文档 strict 引用仍有两处基线 basename 歧义。
|
||||
6. Redmi `2f7cbe2e` 设备门未执行。本次 adb 只见 `10AG930MXC002B3 unauthorized`。
|
||||
7. ID-66 的阶段收官异模型族审查尚未做。本轮分包复审不代替它;P6 不开工。
|
||||
|
||||
### 4.2 集成波次 2
|
||||
## 5. 环境与复现
|
||||
|
||||
fe / fm 完成后,按 fc → fe → fm 顺序合入 `feat/disaggregated`,每合一包重新生成并核对棘轮(`dualblock-expected-fatals.txt` 只减不增,减少的每一行必须能被对应包点名)。集成者跑全门(含 `integration-gpu`,ID-109 常设步)+ 解 seam(参照 P5e `44f91c74` 的先例)。
|
||||
|
||||
### 4.3 波次 3(未创建 worktree/分支)
|
||||
|
||||
- **fs**(静态量分区):输入 `f0-statics.md`。真缺世代钟的只有三小点:`ScopedDefaultUnpackState::s_synced`(Managers.cpp:6319,无任何重置点)、`g_syncedRenderStateParameters`(DirectGLES.cpp:4586,MakeCurrent 兜底但"tuple 相同而 ES context 换代"一格存疑)、`XfbImpl::g_xfbObjects`(DirectGLES.cpp:1548,值里嵌 client SharedPtr——与 fv 有交集)。Espryt 的 per-draw memo 大家族已自带双键自失效,不用动。
|
||||
- **fr**(registry 重键):输入 `f0-registry.md`。跨进程必需只有 2 处纯接线:DirectGLES.cpp `:2542`(resource_copy_region)与 `:12606`(set_storage_block_binding),记录已带句柄。13 处里 11 处在 transport 下不可达(P3b/P4b 债,不动)。顺带核实 `:8213` `GetBackendProgramId` 疑似死代码。
|
||||
- **fv**(反向通道):输入 `f0-reverse-channel.md`。实收 3 条:XFB scatter 的对象身份(`scatterProgram` SharedPtr、`targets` 裸地址当 registry 键)、`OnGlError` 绕过回调表(`PipeInputs::RecordError` 直调 `ServerSession::PostGlError`,PipeFill.cpp:2175)、Magma `MGPipeAnnounceBufferGpuWritten` handle 缺失时直捅 client 对象(ResourceTracker.h:732-739)。字节面 P5c 后已干净,别重做。
|
||||
|
||||
### 4.4 收口(出口门,计划 §6)
|
||||
|
||||
1. 双块车道 integration-split 全绿;2. strict 下 `strict-expected-markers.txt` 为空(**待裁决**:两个 ID-128 escalation 对是 P8 题材,与"为空"冲突,需集成裁定改写门口径);3. `FieldOwnership.def` 零 BARRIER_PULLED、`rsp` 逐帧读零;4. Magma 判据(fm 报告回答);5. G1/G2/G14 照旧;6. 逐包 red-once;7. Redmi 设备门——**本机无设备,需 `2f7cbe2e` 窗口,可能要像 P5c 一样记为记录项**。
|
||||
|
||||
## 5. 环境与操作要点(详见 `notes/p5f/f0-env.md`)
|
||||
|
||||
- 门禁在 WSL 跑:`wsl.exe -e bash -lc '...'`(用户 swung)。建树 `~/w7/notes/tools/p5e_new.sh <sha>`(**注意 fc 报告 §6:按 SHA fetch 失败时要按分支名 fetch**),门模板 `~/w7/notes/tools/p5e_gate.sh`。代码从 Windows 到 WSL 靠 `git fetch /mnt/c/.../FoldCraftLauncher/.git/modules/MobileGL`,**须先 commit**。
|
||||
- 车道速查:`integration-split`(旋钮关必须 179/179 零回归);双块车道 = `MOBILEGL_IPC_ROLE_SPLIT_STATE=1 MOBILEGL_IPC_STRICT_ERRORS=1` + `-L 'integration-split|integration-magma-split'`;strict 棘轮刷新流程在 `strict-expected-markers.txt` 头部注释。
|
||||
- G1 硬门:pull flavour 符号/.text 恒等,跨进程代码在 pull 构建折常量(D-P 模式)。
|
||||
- 提交风格:`[MG_X, ...] (Disaggregated): P5f <pkg> - ...`。
|
||||
- `3rdparty/DiligentCore` 子模块的 git 报错是既有噪音,别修。
|
||||
|
||||
## 6. 本会话做出的集成裁定(后续会话应遵守)
|
||||
|
||||
- **ID-137**:包边界——fe = 15 字段 Espryt 侧 + 记录载体扩展;fm = 9 字段 Magma 侧 + T5 残余 + Magma 结构性耦合;fc = 控制面(已完成);fs = 静态量;fr = registry 两处接线;fv = 反向通道 + RecordError + `ResourceTracker.h:732-739`。
|
||||
- **待裁定(留白)**:escalation 两对(client VA,P8)与出口门 2"markers 为空"的冲突;f1 发现的 strict 棘轮 2 行 stale(基线既有漂移,f1 报告 §8.1 已归因,未修)。
|
||||
- 过程纪律沿用 ID-66:每包自带 red-once;阶段收官由另一模型族审一次。
|
||||
- 现有 Windows 包树 `../MobileGL-p5f-{fc,fe,fm}` 均保留;WSL 为 `~/w7/p5f-{fc,fe,fm}`。
|
||||
集成验证树 `~/w7/p5f-int`,分支 `codex/p5f-wave2`。不要重建或 reset 参考树 `~/w7/pipe` / `~/w7/base`。
|
||||
- 门脚本 `~/w7/notes/tools/p5f_gate.sh int <step>`;最终日志 `~/w7/p5f-logs/int-final-*`。
|
||||
脚本某些步骤末尾 grep 的退出码不代表 ctest/build 状态,要核真实日志或 JUnit。
|
||||
- strict / dualblock / GPU 共用私有日志,必须串行。双块旋钮为
|
||||
`MOBILEGL_IPC_ROLE_SPLIT_STATE=1 MOBILEGL_IPC_STRICT_ERRORS=1`。
|
||||
- Windows → WSL 使用 gitdir 的完整 `refs/heads/p5f/...` fetch,并核完整 SHA;先提交再同步。
|
||||
build-pull 未跟踪目录是构建产物,勿混入提交。既有 DiligentCore 子模块 gitdir 噪音不修。
|
||||
- 主 Windows 树原有 `build.gradle`、`android-plugin/app/build.gradle.kts` 两项未提交设备构建
|
||||
配置与 `.trace-work/`、`Testing/` 保留;不是本轮产物,不要清理或打包提交。
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
# P5f 波次 2 集成报告
|
||||
|
||||
> 包:fc `b5c60d5a`、fe `203f59cc`、fm `3cc397d3`(fm 行为代码 `552ade5b`)。
|
||||
> 按 fc → fe → fm 合入,验收代码头 `78ec3b67`;其后只补报告、注释和门名称。
|
||||
> WSL 验证树 `/home/swung/w7/p5f-int`,日志 `/home/swung/w7/p5f-logs/`。
|
||||
|
||||
## 1. 结果
|
||||
|
||||
Espryt 与 Magma 的合并双块车道 **210 条:204 PASS、6 既有 skip、0 failed**。
|
||||
`strict-expected-markers.txt` 与 `dualblock-expected-fatals.txt` 均为空集合,双向棘轮通过;
|
||||
普通 Admitted、ESCALATED 与字段 Fatal 全为零。P5f 尚未收官:静态量、registry/反向通道复核、
|
||||
字段表分类及设备门仍在后续范围,不能从本车道全绿推导这些工作已完成。
|
||||
|
||||
fe 改读服务端 framebuffer/texture/program 记录,扩 Begin XFB 快照,并修复快照被 make-current
|
||||
重置丢失。fm 接通服务端纹理/FBO、无应用缓冲的 draw/compute、程序 Archive 和 uniform/image
|
||||
描述符;不再把“所有 draw 都先到 buffer-legacy-arm”当事实,基线 gl_VertexID 像素用例已经证明
|
||||
它不成立。支持范围由实际记录消费者决定,已有 P7 buffer 路径仍在触及客户端对象之前具名拒绝。
|
||||
|
||||
fc 的控制帧复审修复一同进入集成:wire 回复序号、void 成功回复、MetalLayer 拒绝、无指针
|
||||
成员检查与并发/重入 probe 配对。分包说明见 [fc-report](fc-report.md)、[fe-report](fe-report.md)、
|
||||
[fm-report](fm-report.md)。
|
||||
|
||||
## 2. 集成接缝与棘轮
|
||||
|
||||
- `PipeApply.h` 保留 fe 的 XFB span 状态与 fm 的 mip 工作字段;双方的 copy-image handle、
|
||||
storage-block program handle 使用同一份定义和 sink 接线。
|
||||
- `PipeApply.cpp` 同时保留 XFB make-current 生存期修复与无 buffer backend ops 时的纹理 staged
|
||||
接收/重定义/销毁。不会为 Magma 假注册 buffer 支持,也不会与 Espryt hook 重复接收字节。
|
||||
- 独立 fm 为可独立验证而携带的 Espryt copy-image/readback 接缝,与 fe 合并后仅保留一份。
|
||||
- 合 fc 后实测仍是原 **6 对、155 条具名红**(`int-after-fc-dualblock-*`)。
|
||||
合 fe 后为 **1 对、2 条 Magma Clear 红**(`int-after-fe-dualblock-*`)。
|
||||
合 fm 后为 **0 对、0 红**;没有新增预期对。
|
||||
- fe 负责原五对 Espryt 首阻塞;fm 负责 `GetFramebufferBindingSlot@Clear`。
|
||||
`GetTextureObject@CopyImageSubData` 是双方共享端点接缝,集成只记一次删除。
|
||||
strict 的两条原有 stale 行已有 f1 基线证据,其余八对随 fe 的读者迁移消失。
|
||||
|
||||
复审还修复并验证了:无缓冲 shader 支持、独立 family caps、sampler/image 记录解析、纹理 view
|
||||
的 native STORAGE 用途升级及旧内容保留、非分层 image 忽略 Layer、sRGB 开关、1D 附件视图、
|
||||
同 image 传输 layout 与临时 render-pass 资源的 GPU 生存期。
|
||||
|
||||
## 3. 最终门
|
||||
|
||||
表中 PASS 与 skip 分开计数;skip 不作为像素正确性的证据。
|
||||
|
||||
| 门 | 总条目 | PASS | skip | failed / 结论 |
|
||||
|---|---:|---:|---:|---|
|
||||
| unit | 2286 | 2276 | 10 | 0 |
|
||||
| integration-gpu | 1375 | 1118 | 257 | 0;含原有功能/驱动/专属车道跳过 |
|
||||
| integration-split,旋钮关 | 179 | 175 | 4 | 0 |
|
||||
| strict,旋钮关 | 179 | 175 | 4 | 0;零三类 marker,空表棘轮通过 |
|
||||
| 双块 split + magma | 210 | 204 | 6 | 0;空表棘轮通过 |
|
||||
| Magma 主车道(包含在上一行) | 31 | 29 | 2 | 0;两项为既有 ClipDistance 驱动能力跳过 |
|
||||
| f1 机制阴性对照 | 1 | — | 0 | knob=1 真绿;knob=0 因 distinct-block 自身断言真红 |
|
||||
| P7 PackedFloat 格式探针 | 1 | — | 0 | 按预期失败,JUnit 与精确具名 Fatal 核对通过 |
|
||||
|
||||
pull / push 最终增量构建都 rc=0,生效宏分别 absent / `MOBILEGL_PIPE_PUSH=1`。
|
||||
G1 带 `--fail-on-text-delta --fail-on-symbol-set-change` 硬门 rc=0:
|
||||
`.text` **10806051 → 10806051**,defined symbols **27815 → 27815**,
|
||||
**0 added / removed / resized / renamed**;data/bss/rodata 也零差。
|
||||
G2:pull / push 各 **3011** 个 CTest 名,集合差为 0。
|
||||
G14:f1 **3646 → 3716**,**新增 70、删除 0**,不存在重复注册名。
|
||||
|
||||
生成器 check 与 self-test 通过(12 / 13 / 27 个阴性控制),include closure 4 probes、
|
||||
0 skipped、0 problems。文档引用 strict 检查仍有基线两处 basename 歧义:
|
||||
`CONTRACT-P5.md` 的 `Init.cpp:44` 与 `Core.cpp:39`;不是本次新增,未把它报成全绿。
|
||||
|
||||
核心证据:`int-final-{unit,gpu,isplit}.log/xml`、`int-final-strict-gate.log`、
|
||||
`int-final-dualblock-gate.log`、`int-final-negctl-gate.log`、`int-final-known-red.log/xml`、
|
||||
`int-final-{pull,push}-build.log`、`int-final-g1-hard.log`、`int-final-name-gates.log`、
|
||||
`int-final-gens-gate.log`。strict、双块、GPU 串行执行,marker 判定在各自运行后立即保存,
|
||||
没有用被后续车道覆盖的私有日志补证。
|
||||
|
||||
## 4. Red-once
|
||||
|
||||
- fc:控制帧投递回退真红;后续序号、成功回复、MetalLayer、probe 配对与指针成员控制均
|
||||
有实际红/绿证据,见 fc 报告。
|
||||
- fe:`SplitCaptureSnapshotSurvivesMakeCurrentUntilObjectRelease` 先红后绿。
|
||||
- fm:ProgramSource 退回 archive 旧 binding 值真红,record overlay 版本绿;另在集成树
|
||||
`a6144426`(尚缺 named-mip 修复)运行 staging 生产测试,level-1 extent 为 0 而非 2×2×1
|
||||
真红;合入修复后同用例 1/1 绿。证据为 `int-fm-staging-{red-once,green}.log`。
|
||||
|
||||
## 5. 明确保留的边界
|
||||
|
||||
- `FieldOwnership.def` 仍有 **13 个 BARRIER_PULLED 字段(17 行,含 forward 重复行)**。
|
||||
可达消费者已改道;legacy accessor 分类、P8 client arrays 和 fv 的 RecordError 要在收口
|
||||
逐项裁定,不能为把表清空而伪称旧指针 getter 是 record-supplied。逐帧 rsp 零门尚未单独验收。
|
||||
- Magma 不发布 `kCapRunAheadApply`。普通无缓冲 draw、采样、compute imageStore 均在严格双块
|
||||
下有真实像素证据;应用 buffer 消费、部分 native 格式/窗口能力仍是 P7/P12,具名拒绝。
|
||||
lockstep 不作为跨角色读写的豁免,具体出口门 4 的回答见 fm 报告。
|
||||
- R11F_G11F_B10F mipmap 的真实旧基线 inproc 像素测试也失败;保留单独已执行的
|
||||
`integration-magma-p7-known-red`,强制 `Magma:mipmap-native-format@P7`,没有靠移标签藏红。
|
||||
- fs / fr / fv 尚未开工。XFB snapshot/identity 与部分 registry 入口已被 fe/fm 改动,下一轮
|
||||
先重核 f0 清单,不重复处理已退役的站点。`PipeInputs::IsLive` 与 `RecordError` 的边界仍在。
|
||||
- 设备门未执行:本次 `adb devices -l` 只见 `10AG930MXC002B3 unauthorized`,未见指定的
|
||||
Redmi `2f7cbe2e`。host lavapipe 结果不替代设备门。
|
||||
- 本轮分包并行复审不替代 ID-66 要求的 P5f 阶段收官异模型族审查;P6 仍不开工。
|
||||
Reference in New Issue
Block a user