Files
MapLibreParticleLab/docs/报告/STEP-112_V23粒子FullRender与Symbol缓存调查_Codex完成报告_v1.md
tei c6d13e1059
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: record STEP-112 RDC Git verification
2026-10-11 01:14:10 +09:00

94 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# STEP-112 V23 粒子 Full Render 与 Symbol 缓存调查 Codex 完成报告 v1
日期:2026-10-11(JST)。
## 1. 执行结论
**A—E只读源码调查和四文件交付已完成;综合判定 PARTIAL。** 正常Continuous Full的Symbol R首次缓存准入不可达已有决定性源码证明;生产逐帧原因、原RCRR完整布局、可安全替代的准入证据和真实性能仍不完整,不标全任务/实现/性能PASS。
关键证据:`render_orchestrator.cpp:792-807` 的重算/不重算分支,`placement.cpp:160-175` 的recent/stale语义,与 `render_segment.hpp:85-90` 的三条件组合。重算则changed=true,不重算则Controller stale使transition=true,Symbol R均不能首次Build。`symbolFadeChange==0`不是终态条件;transitions关闭时正常Full返回fade=1。全局prepared scene和PREFIX普通Symbol/Line C仍独立阻塞Fast。
主报告第4—10章包含完整调用图、24项矩阵、缓存状态机、两种配置与真值表、S1—S5、A—D成本风险提案、最小采样方案;第11章区分源码证明、现场输入、条件推断和设备待验。
## 2. 实际模型、机器与Git基线
- 机器:Mac.lan,Darwin 24.6.0,x86_64;未连接或操作Android/iOS设备。
- 仓库:`/Users/tei/dev/MapLibreParticleLab`;branch起终均 `particle/main`。
- start HEAD:`41b416c261fa72bd21171328045036a124694f47`;end HEAD同此,未commit。
- **模型 `gpt-6-astra`,reasoning effort `high`**。环境会话ID `01a12686-49ee-70b1-953e-f95f8a4bd9ca`;实际读取本地 `~/.codex/sessions/2026/10/11/rollout-2026-10-11T00-54-57-01a12686-49ee-70b1-953e-f95f8a4bd9ca.jsonl` 的 `turn_context.model/effort` 确认;没有自行切换或升级,没有启动第二实例/子代理。
- 起点tracked clean;只有两份未跟踪STEP-110/111任务书。`git submodule status` 全为空格前缀,无未初始化/偏移标记;未操作子模块。
- 终态预期且经收尾检查核对:新增本Step三文档、开发记录修改,加上原有两份未跟踪任务书,无其它变化。
- V23构建源码 `87f3d1c59a52581fb8339f0ea7d106b9f4b94fef`;相关路径与HEAD只差STEP-109的两Layer snapshot快比较,核心Gate行为一致。V23正式制品不含这项开发快路,本轮未发行。
- Integration main `80667d6c` 是用户提供的RDC核验事实;本轮未fetch/pull/远端回读,只读相关contract/coordination。
## 3. 任务逐项:已完成 / 未完成 / 无法验证
| 项目 | 结果 | 证据与限制 |
|---|---|---|
| 前置阅读、实际模型、工作区核对 | 已完成 | 根AGENTS、PARTICLE_BASELINE、8份规范、现行总则README+4份、STEP-112、STEP-102/106/109/110/111任务/记录/报告 |
| A 调度/Idle/cadence/CPU-GPU区别 | 已完成 | 主报告4;SDK Handler/NSTimer唤醒、Core cadence、Observer和prepared-tree链;实测30FPS来源仍未知 |
| B 全部Fast Gate | 已完成 | 主报告5;24项按首错顺序,完整non-camera signature及prepared scene二重锁 |
| C R2缓存状态机 | 已完成 | 主报告6;首次未建、反复无条件invalidate、revision/key变化、资源/Build失败分开 |
| D Placement开关/Fade真义 | 已完成 | 主报告3、7;无窗口的分支证明,300/30ms/zoom和8组合表,GL/Metal shader依据 |
| E S1—S5及布局 | 已完成(缺证据明确标未知) | 主报告8;原RC/PREFIX和理想保序布局;原RCRR完整边界未获得,不伪造 |
| A—D工程提案与最小验证 | 已完成 | 主报告9—10;首次Build/scene/C分别评估,候选文件/成本/风险/1—5复杂度、双后端、Interface Blocker |
| 任务书四项落盘 | 已完成 | Codex本轮直接写入,早期框架与后续章节分阶段保存;不是由RDC补写 |
| FZG1每帧options、请求来源、所有Gate、CPU分摊 | 无法验证 | 只有任务/历史现场计数与末态;本轮禁止插桩和设备操作 |
| Symbol结果等价/安全新Gate充分性 | 无法验证 | 当前无与成功Build版本绑定的最终GPU输入证书;提案需shadow和运行对照 |
| Native修复、首建成功、Fast hit提升、CPU改善 | 未完成(本轮不授权) | 未改实现,不能将只读控制流证明当修复PASS |
| 编译/测试/设备/制品 | 未执行(本轮禁止) | 无新build log、APK/AAR/XCFramework、运行结果或SHA |
| commit/push/远端HEAD | 未执行(用户交RDC) | 无新commit/hash/message/push结果,不冒称Git收尾完成 |
## 4. 实际写入文件
新增:
1. `docs/20_调查/STEP-112_V23粒子FullRender循环与Symbol缓存准入全面源码调查_v1.md`
2. `docs/50_Step记录/STEP-112_V23粒子FullRender与Symbol缓存调查_v1.md`
3. 本报告 `docs/报告/STEP-112_V23粒子FullRender与Symbol缓存调查_Codex完成报告_v1.md`
修改:`粒子开发记录.md`,仅在末尾追加STEP-112短条,不重写历史。
无Native/C++/Kotlin/Java/Swift/ObjC/JS/TS/Shader/测试/Style/脚本改动;无NavSea/Integration跨项目写入;无分支/worktree变更或dirty清理。
## 5. 检查与禁止操作
已执行:`pwd`、`uname -a`、branch/HEAD/status/submodule只读核对;`rg`、带行号源码读取;V23相关路径`git diff`;文档内容和变更范围检查。收尾的文档空白、原文件哈希、开发记录前缀检查结果见第8节。
**全部NOT RUN**:CMake/Ninja/Bazel、编译/链接、codegen、C++测试、Jest、Gradle、APK/AAR/XCFramework打包、ADB/安装/设备/logcat/截图、新性能测量、发布、commit、push。没有已观察到的编译或测试失败;因为没有执行,不能推断会通过。
少数初始按类名探测的路径不存在,随后按实际文件定位,例如RenderRasterParticleLayer实际实现位于 `render_particle_validation_layer.cpp`,RenderTreeImpl位于 `render_orchestrator.cpp`;未用缺失路径作为证据,也没有为此创建源码文件。
## 6. 与任务书差异和阻塞
- 用户当前明确指定gpt-6-astra/high,覆盖任务书旧建议,已实际核实。
- 本轮Codex执行指令明确不由Codex提交/推送,遵循AGENTS的Codex→RDC职责分工;STEP-112任务书第十一节要求RDC独立完成scoped Git提交、推送及远端验收。用户并未禁止本任务的Git收尾。
- 用户已给Integration同步事实,本轮只读相关contract/coordination,不重新做全仓同步。
- 完整原RCRR plan、现场options/逐帧日志和CPU阶段分摊缺失;限制在主报告单独标记,不将条件推断升格为FZG1实测。
- 公共“外部明确Full且不按相同数据去重/延迟”目前没有相应force-Full/序号字段。Interface Blocker仅约束未来D提案,需Integration决议,未新增API或改责任边界。
## 7. 独立验收与下一步
RDC依据STEP-112任务书第十一节,独立复核主报告第3章的两分支证明和第5章24项来源,核对四份交付文件、两份未跟踪任务书及HEAD,然后做scoped Git提交/推送及远端HEAD核验;以独立Git收尾补记为最终证据。
下一代码阶段先授权A低开销同帧gate/Placement/R状态诊断,再审查B的Full后安全Build证书;需要per-R结果时用C shadow比较。保护跨Source/跨段Collision、text/icon Fade、camera、资源、层序与GL/Metal一致性。独立验收必须取得源码/制品版本、plan/Style表、逐帧gate及计数、trace成本、CPU阶段耗时和视觉证据。未经新任务授权,不实施Native修复,不降低FPS、不删除Symbol、不放宽fail-closed。
## 8. 实际收尾检查结果
- `git diff --check -- 粒子开发记录.md`:无空白错误;diff统计仅 **8行追加、0行删除**。
- 三份新增文档分别执行 `git diff --no-index --check /dev/null <明确路径>`:均无诊断输出;退出码1表示与空文件存在差异,不作为构建或测试结果。正文代码围栏成对,Fast矩阵已人工核对包含顺序1—24,S1—S5齐全。
- 开发记录与 `git show HEAD:粒子开发记录.md` 的原始 **159061字节前缀完全相同**,原SHA-256=`9a1690188a9c283024c74fa275ec68d7442459c73008126087e0d9ec9704910a`;本轮追加1381字节。
- STEP-110未跟踪任务书SHA-256仍为 `33037df71b4b30aa7956d59f4b99f77af3085405b24111bc0fe11ec857a93db0`。
- STEP-111未跟踪任务书SHA-256仍为 `f3a5806f25384bf46055db2edfea0d21bfbc4124184bc813b46e38b8079c1ec4`。
- 最终 `git status --short` 只显示:开发记录M、本Step三文档??、原有两份任务书??。`git diff --cached --name-only` 无输出,未暂存任何文件。
- `git branch --show-current`=`particle/main`;`git rev-parse HEAD`=`41b416c261fa72bd21171328045036a124694f47`,与起点一致。
- Codex调查阶段没有执行commit/push,commit message不适用且当时未回读远端。这不是用户禁止Git收尾;其后RDC按STEP-112任务书要求独立执行的实际结果见第9节。
这些仅是源码/文档取证与范围完整性结果,不是编译、设备、性能或安全新Gate的PASS证据。
## 9. RDC 独立 Git 验收补记(非Codex操作,2026-10-11)
- RDC独立核对Mac `particle/main` 起点HEAD=`41b416c261fa72bd21171328045036a124694f47`;起始远端SHA相同,Integration仍在main=`80667d6c343411d03a760425438e3d292f452118`。仅stage本任务三份报告及开发记录追加;`git diff --cached --check`通过,四文件且只有四文件。两份原未跟踪STEP-110/111任务书仍保留。
- 文档成果首次commit=`abc137ca9637abc18be8c64cd98f2c7f1ed68704`,message=`docs: investigate STEP-112 particle full render and symbol cache`,四文件共570行新增。普通`git push origin particle/main`退出码0,远端返回`41b416c261..abc137ca96`;`git ls-remote origin refs/heads/particle/main`回读`abc137ca9637abc18be8c64cd98f2c7f1ed68704`,与当时本地HEAD完全一致,首次Git收尾PASS。
- 本节由RDC在Codex任务完成后追加,不应归为Codex调查成果;补记形成后续文档提交,最终HEAD及远端核验另以该后续提交的实际命令返回为准。Native实现、编译、设备及性能依然未执行,综合研究判定保持PARTIAL。