2.7 KiB
30-02 GPU Ping-Pong 与 Context Recreation 验证 Codex 完成报告 v4
日期:2026-08-30
执行结论:WAITING_MANUAL_VALIDATION
1. 任务基线
- 分支:
particle/main。 - 本轮开始 HEAD:
625836fcaf1474c51210f51b95dc9adeafdead9d。 - 30-01:正式
PASS。 - 30-02:仍为
WAITING_MANUAL_VALIDATION。 - 开始时存在用户提供、未跟踪的本定向修复指令书;它保留在工作区,未修改或提交。
2. 用户实机输入
用户确认 C++ STATIC freeze 已通过手势回归,DISABLE / ENABLE 正常;同时发现旋转后 STATIC 恢复为 ACTIVE。该问题发生在 Android Activity recreation 的 Test App control mode,不是 GPU ping-pong 或 MapLibre redraw 问题。
3. 根因与修复
根因是 Activity 未向 Bundle 写入 active/enabled,且 recreation 后 onCreate() 无条件把 validation style 设为 ACTIVE + ENABLED,并重置相机。
修复仅在 ParticleCoreLayerValidationActivity.kt:
- 以稳定 Bundle key 保存/恢复 active 与 enabled;
- 只在首次 Activity 创建时初始化 camera;
- callback 使用恢复成员值调用唯一
loadValidationStyle(); - 增加一次恢复日志;
- 保留既有 MapView lifecycle/state 保存与四个按钮状态机。
没有修改 Manifest、C++、gfx、RenderLayer、shader、GPU resource lifecycle、Gradle、依赖或 Test App UI。没有引入任何绕过 Activity recreation 的机制。
4. 检查与未执行项
git diff --check:PASS。- Bundle key、初始默认值、统一 style 入口、旧硬编码删除和禁止项静态检索:PASS。
- Kotlin formatter 工具在环境中不可用;未声称 Kotlin lint PASS。
- Android/Gradle/ADB/安装/运行以及任何编译:未执行,遵守用户限制。
5. 重新验证与范围
技术报告 v4 给出 R1 STATIC、R2 ACTIVE、R3 DISABLED rotation 和 R4 STATIC gesture 回归。必须通过 Android OpenGL 实机日志确认恢复状态;Rotation control-mode 恢复不等价于 T4 resize 或 T6/T7 context recreation PASS。
当前不允许进入 30-03。
6. Git 收尾
- 代码 commit:
503f1c66958798ef7294165c3ddeaffbd4908ee9。 - 代码 message:
fix: preserve particle validation mode on rotation。 - 代码 push:成功,远端分支
origin/particle/main。 - 文档实质 commit:
7ff37de89840f3c2434b939cfe018662d18bfcf3。 - 文档 message:
docs: record particle rotation state retest。 - 本报告的元数据收尾提交及最终远端 HEAD 按自引用规则在最终回复中记录。
- 除用户提供的未跟踪指令书外,无本任务无关本地修改。
7. 当前状态
本轮仅完成 Rotation state restoration 代码准备。R1–R4 尚待用户手工验证,故最终状态保持 WAITING_MANUAL_VALIDATION。