docs: investigate STEP-112 particle full render and symbol cache
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
This commit is contained in:
87
docs/报告/STEP-112_V23粒子FullRender与Symbol缓存调查_Codex完成报告_v1.md
Normal file
87
docs/报告/STEP-112_V23粒子FullRender与Symbol缓存调查_Codex完成报告_v1.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# 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`,与起点一致。
|
||||
- 无新commit,commit message不适用;push未执行,远端HEAD未回读。原任务书中的自动提交要求已由用户本轮禁止指令覆盖。
|
||||
|
||||
这些仅是源码/文档取证与范围完整性结果,不是编译、设备、性能或安全新Gate的PASS证据。
|
||||
Reference in New Issue
Block a user