mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
[Docs] (P13): handoff note for the state after W3c
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# P13 交接(2026-10-06)
|
||||
|
||||
> 计划 [`PLAN-P13.md`](PLAN-P13.md),裁定 [`INTEGRATOR-DECISIONS-P13.md`](INTEGRATOR-DECISIONS-P13.md),进度表 [`README.md`](README.md),CI 清理记录 [`docs/ci/ci-cleanup-log.md`](../../../ci/ci-cleanup-log.md)。
|
||||
|
||||
## 1. 状态
|
||||
|
||||
| 波 | 状态 | 提交(`p13` 分支) | CI |
|
||||
|---|---|---|---|
|
||||
| CI 基线修复 | 已推 | `cde6512b` IN_LIST / TCP 端口;`0cbb1a84` spawn Welcome 冷启动预算;`c9085533` apitrace 子模块(分支 `mobilegl/android-trace-replay` 的 `45843686`:着色器 / 程序名按类型映射,修 1.17) | 基线 Test `37414803850`、APK `37405703442`,逐条归类见 ci-cleanup-log |
|
||||
| W1 | 已推 `5ff33cbb` | runtime_mode_proof monolith = 无 MG_Remote;push 无 MG_Remote 控制库 + 零 MG_Remote 检查;retrace-split 不再因控制库失败整体跳过;skip 普查 | Test `37425662897`:除 verify-split 的 FencePoll 测试竞态(已修 `0a47038a`)与普查无基线外全绿 |
|
||||
| W2 + W3a | 已推 `55de98a0` | 普查基线 `c6cb5dea`;`68b56165` `9f05e665` `3e11c848` W2;`55de98a0` W3a | Test `37433779649` / APK `37433779654`(交接时排队中,被旧 run 卡住,已 force-cancel 旧 run) |
|
||||
| W3b | 本地 | `9e14c16d`…`a4d10dd9`、`daf2b44c`、`4d2a2443`、`1d380a6e`、`3e36bd6c`、`938f4b11`、`883b8614` | 本地:unit 2908 绿;integration-gpu monolith 3640/3640;inproc 与 split/spawn/tcp 在跑 |
|
||||
| W3c | 本地 | `e2c90986` | 本地 unit 绿 |
|
||||
| W4a(一项) | 本地 | `3e2aff1d` 14a:indirect 无 client 数组不再回读命令缓冲;新 `ResourceReadbacks` 计数与场景用例 | 未编译验证 |
|
||||
|
||||
推送规则:W3b/W3c 等 W2/W3a 的 run 绿或红已归类后再推;推前 `git fetch` 看 feat 有无他人提交。
|
||||
|
||||
## 2. 关键事实(实现中发现,计划里没有或有误)
|
||||
|
||||
- **bit 4 不能退役**:它同时门控 P5c rv 的 `set_context_values`。W3c 只删 ResidualValueBlock,bit 4 仍固定开。
|
||||
- **不需要控制面修订号 +1**:删结构后 `kMGPipeWireCatalogueDigest` 变化,wireFingerprint 随之变化,新旧端按名拒绝。
|
||||
- **CMake 旧缓存**:`MOBILEGL_PIPE_PUSH=OFF` / `MOBILEGL_PIPE_LEGACY_MEMOS=ON` 在旧构建树(含 FCL 的 Gradle `.cxx`)里是默认值,所以是 WARNING + 忽略,不是 FATAL。
|
||||
- **位图固定开(ID-P13-3)在 W3b 落地**:`ConfigLoader` 对清 bit 0-13 的掩码 `Fatal{PipeSubsystemsFixedOn}` + abort;Off / Refused 车道改为 `DirectGLES.SubsystemMaskRefusal.<Lane>` 具名拒绝对照(`Harness/RefusedMaskControl.cmake`,读日志确认原因)。各解析函数里 `legacyMemosEnabled` 改为常量 `true`,只为单元测试的掩码扫描不 abort;这些分支 W6 删。
|
||||
- **monolith 仍走借用槽位的单元列表**(`UnitTexturesByHandle()` 在 monolith 为 false)——这是 W4c 要换的。`UnitMemoRefusesToDriveATwinFromAnotherTexture` 恢复并钉 P2 掩码(单元车道没有 P4a consumer,0x3fff 下建不出记录);红检已做(见 ci-cleanup-log)。
|
||||
- **单元车道无法创建纹理记录**(`NoP4aConsumer`),任何需要纹理记录的白盒单元用例都要放到集成层。
|
||||
- **本地 CMake 必须 3.31.10**:CMake 4.x 下 gtest 的 ENVIRONMENT 列表转义不同,集成用例把 `MOBILEGL_BACKEND_TYPE=DirectGLES;__EGL_VENDOR...` 当成一个变量,全部假红。
|
||||
|
||||
## 3. 本地环境(WSL archlinux)
|
||||
|
||||
- `~/mgl-p13-src`:从主仓库克隆的 LF 工作副本(`origin` = Windows 主仓库,分支 `p13`),子模块从主仓库本地拉。`~/mgl-p13-tools/sync.sh` 同步到 `p13` 已提交状态并从主仓库工作区按 sha256 物化 LFS fixture(有 29 个缺)。apitrace 子模块的第三方子模块已 `--depth 1` 拉过;glslang External 用 `update_glslang_sources.py` 拉过。
|
||||
- 构建:`~/mgl-p13-tools/build_split.sh`(`~/mgl-p13-split` + `~/mgl-p13-retrace`),`build_push.sh`(`~/mgl-p13-push`,FCL 形态),`itest.sh <build> <tag>`(CI 同款 integration-gpu)。PATH 前置 `~/mgl-p13-tools/venv/bin`(CMake 3.31.10)。
|
||||
- 经验:WSL 命令一律写成脚本文件再 `MSYS_NO_PATHCONV=1 wsl -d archlinux -- bash <file>`,`bash -lc '...'` 的引号与 `$` 会被吃;Git Bash 的 heredoc 会吃掉反斜杠,Python 编辑脚本用 Write 工具写文件再运行。
|
||||
- 工具:scratchpad 下 `pyunifdef.py`(W3b 用的部分求值器)、`retire_names.py`(从普查基线退役具名用例)。
|
||||
- `~/mgl-p13-apitrace`:apitrace CLI(`apitrace dump`)。
|
||||
|
||||
## 4. 下一步
|
||||
|
||||
1. W2/W3a 的 CI:看完归类;然后推 W3b/W3c(普查基线已同提交退役名字)。
|
||||
2. W4a 起:按计划 §1.2 的 F 类分支换臂。建议先引入一个 `MG_Backend::DataArmIsRecord()`(DISAGG 构建恒 true),逐子系统替换 `Transport != Monolith`,每个子系统跑一次 monolith 全量 integration-gpu(两后端)+ split 车道;§1.4 的别名 store 刷新先做(缺陷 a/b/c 依赖它)。
|
||||
3. 14a 已在本地(`3e2aff1d`),先编译验证。
|
||||
Reference in New Issue
Block a user