Files
MapLibreParticleLab/docs/报告/30_02_GPU_PingPong与ContextRecreation验证_Codex完成报告_v4.md
OpenAI Codex fb78f82777
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: finalize rotation retest metadata
2026-08-30 08:41:49 +08:00

2.7 KiB
Raw Permalink Blame History

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。