[Docs] (P13 W5): S1 and S2 in the progress table.

This commit is contained in:
2026-10-06 11:12:17 -04:00
parent b965a18e15
commit a891d0f514
+2
View File
@@ -18,6 +18,8 @@
| W4d | 部分(本地) | | monolith 记录臂的 8 个值类字段改由 `set_context_values` 记录供给(不再 residual 填充)。转发访问器替身、`kFatal` 前端指针字段删除、`PipeInputs.h` 去 `MG_State` 头并入 W6/W7(它们是删前端臂与模块边界的一部分) |
| GL_ARB_shader_objects(用户插单) | 本地完成 | | 原先 11 个入口是桩(`glCreate*ObjectARB` 恒返回 1)、其余 28 个在 `eglGetProcAddress` 里根本查不到,扩展却对外宣告(KWin 要这串)。现在:句柄就是核心共享的 shader/program 名字空间里的名字(`glCreateShaderObjectARB` = `glCreateShader`),核心与 ARB 调用互用;`DeleteObjectARB` / `GetHandleARB` / `GetObjectParameter{i,f}vARB`(`OBJECT_TYPE` / `OBJECT_SUBTYPE` 与按类型的核心 pname,错误码按扩展规范)/ `GetInfoLogARB` 在 `GL_ShaderObjectsARB.cpp`,其余转发核心。同样宣告的 GL_ARB_vertex_shader 的 46 个入口(29 个桩、17 个缺失)一并转发核心。顺带修了核心缺陷:`glDetachShader` 后 `GL_ATTACHED_SHADERS` / `glGetAttachedShaders` 仍算该 shader、二次 detach 不报错、下次 link 前重新 attach 被拒(GL 4.6 §7.3)。`glGen*` 各名字空间互相独立、保留名在首次绑定前不是对象(sampler 例外)、删除后不再是对象——新场景逐类断言,全部本来就合规。wire 侧 ARB 入口全走核心入口,记录臂按 `{slot, gen}` 一视同仁。场景 `ArbShaderObjectsScenario`(两后端 × monolith / split / spawn / tcp) |
| W5 S0 | 本地完成 | | 设计见 `notes/p13/` 下的 `W5-DESIGN.md`(临时 CMake 变量 `MOBILEGL_BUILD_RECORD_ARM`,S7 一次翻转,S8 unifdef 掉)。开放三点已定:记录失败钩子在 `FatalFunnel.cpp` 静态注册;`RecordArmTable` 承接三个持久映射 / wire 延迟旋钮(`IpcTable` 仍只在 DISAGG);S7 加 mprotect 臂开关(FCL 是 JVM 进程,SIGSEGV 链接是真风险)。清单 `W5-INVENTORY.csv`(`tools/w5_classify.py`):A 385 块 / 10586 行、B 29/434、C 92/10878、D 89/4683、E 77/933、F 292/3184、N(取反 / 复合)30/1545。主机 x86_64 Release 基线:push 库 `.text` 11540563、0 个 `MG_Remote::` 符号;split 库 `.text` 12766899、1651 个 |
| W5 S1 | 本地完成 | `534f14e3` `3b441531`(已推) | 致命词表(`FatalFamilies.def`、`MGFatalFamily`、名字、计数)移到 `MG_Pipe/PipeFatalFamily.h`,`MG_Remote/FatalFamily.h` 只留线上投影并转出旧名。记录臂的失败 / 闩缝:`MGPipeRecordFail` / `MGPipeRecordLatch` / `MGPipeRecordLatched`(`PipeSessionFail.h`,默认:日志 + stderr + abort),链接了 MG_Remote 时由 `FatalFunnel.cpp` 静态注册 `SessionFail` / `SessionLatch` / `SessionLatched`。fatal census 认新调用(规则 2)并认默认分支的 abort 为漏斗;单元 `RecordFailSeamTest` 两棵树都跑 |
| W5 S2 | 本地完成 | | `MOBILEGL_BUILD_RECORD_ARM`(普通 CMake 变量,恒定义 0/1,S7 前等于 DISAGG);`tools/w5_rewrite.py` 把 MG_State(缓冲 / 程序 / 帧缓冲状态)、MG_Impl(GLImpl、Pipe)、MG_Pipe、MG_Util/SelfTest、MG_Backend 下 A / F 类与 `!DISAGG`、`VERIFY && !DISAGG` 守卫改名,共 536 组、按目录 7 个提交;EGL 层、GL 上下文的设备丢失状态、日志角色文件、统计 dump 路径留给 S3 手工。不变量已核:split 与 push 两库 `.text` 字节相同(sha 前缀 `a0d08e0e` / `df9d3b7a`,与 S1 一致)。`wire_declines_audit` 把新守卫当作构建选择开关(含两条自测) |
### G1 退役读数(ID-P13-4,2026-10-06)