Files
MapLibreParticleLab/docs/50_Step记录/STEP-113_FZG1_PBF_Layer与FastGate诊断_v1.md
tei 92efa36f4c
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
feat: add STEP-113 Android PBF fast gate diagnostics
2026-10-11 09:11:27 +09:00

9.0 KiB
Raw Blame History

STEP-113 FZG1 PBF Layer 与 Fast Gate 诊断 v1

日期:2026-10-11(JST)。状态:进行中;源码交付PARTIAL,等待RDC独立编译/设备验收,113层完整等价缺证据。

目标、基线与边界

优先B:每次真实Fast尝试可靠保存24 Gate、首错及失败全集;再交付真PBF专项场景、低频UI和机器可读导出。

  • Mac particle/main@c6d13e1059d464d312ac33acac87967300fa5dc4,仓库 /Users/tei/dev/MapLibreParticleLab。
  • 已实际核实模型 gpt-6.1-sol/high;NavSea只读 ad9aa043,Integration本地 80667d6c。
  • 当前源码版本 13.6.1-particle.23 未改;本次修改未发行。
  • 只修改Shared Core诊断、Android Test App、相关C++测试源码、本Step/报告及开发记录追加。禁止改变Gate/Placement/Fade/Cache安全判定、公开RN方法、NavSea/Integration、构建基线、正式发行或Git提交推送。
  • 既有STEP-110/111/113未跟踪任务书原样保留,无branch/worktree变更。

必做项与当前结果

  • 同一次已计算input保存24项状态掩码与生产首错,一致性计数明确,不重复副作用函数。
  • 120帧有界环形数据、生命周期及窗口聚合,所有Gate记录;pre/post明确分离。
  • per-R实际pre cache validity/revision和两phase的cache build/reuse/invalidation/fallback/原因/执行状态;每phase最多16R,超限显式。
  • 使用现有Native JSON出口追加可选fastGateTrace;共享锁快照,UI不访问Renderer mutable state。
  • 明确reset位置;普通Full miss不清历史。新增4个C++回归用例,尚未运行。
  • 正式URL专项PBF63/STATIC_RC/PARTICLE_OFF/PARTIAL_RCRR/SOURCE_CHANGE场景源码;保留原场景和STEP-102动态fixture。
  • 运行时原63层完整定义/顺序保存检查,真实Sprite/Glyph/Tile URI检查、Style fingerprint/版本/Layer表/plan接受及最终解析原因导出。
  • 固定camera/forecast请求、30fps目标;禁用手势;静态轮询不改Symbol/Source/forecast。
  • UI每3秒单次query、30秒摘要、手动最近snapshot导出;Logcat标签STEP113Gate,Base64分块防截断。
  • 中文完成报告、精确RDC命令、开发记录末尾追加与静态范围检查。
  • 113层全量生产Layer/Source/显隐/业务数据与现场四段数字边界:缺同版本完整快照,未复制。
  • Native/Kotlin编译、定向测试、APK、FZG1-2资源/层/逐帧/性能/开销验收:本轮Codex未执行。

证据等级与剩余风险

SOURCE-PROVEN:NavSea URL配置、当前源码RC选择器、shared天气片段ID/type/source。TEST-APP-STRUCTURAL:保序63层和部分RCRR检查代码、额外Source探针、既有canonical风场。DEVICE-MEASURED:本轮无结果。NOT-VERIFIED:正式服务回读(本机域名无法解析)、设备实际Layer表/113层全等价、构建与性能。

原始JSON63层不包含SDK可能追加的Annotation等内部层;必须使用实际Native styleLayers总数与Layer ID解析边界。部分RCRR锚点不同于现场[0,13)/[13,33)/[33,107)/[107,113),不能把结构测试说成同等画面。NavSea当前RenderSegmentHost源码RC与该历史现场RCRR_PREFIX分别记录。

pre里的changed/fade是上一完成RenderTree快照;当前Controller transition另存preFastPlacementTransition。Fast post不是新Placement结果。Debug simulationAdvance是进程级计数;实际forecast时间未新增Native回读接口,导出null并保存accepted请求。环形覆盖会丢弃最早详情但保留聚合;内存字节/CPU开销未实测。不能从零Fast提升或APK编译成功直接判性能PASS。

独立验收填写栏(由RDC追加真实结果)

项目 本轮状态 / RDC证据待填
源码diff/hash、分支/HEAD/dirty Codex交付未提交;RDC填写制品对应源码
设备serial/主ABI/ABI list 目标192.168.200.139:5555;未读取
Native配置/编译/4个新用例与相关回归 NOT RUN;填写命令/exit/耗时/日志/首错
APK build-info/ZIP/ABI/字节/SHA/签名/安装 NOT RUN;标准Validation脚本,禁止复用失败旧APK
PBF63完整资源、实际Layer manifest NOT VERIFIED;填写SDK回读fingerprint和原/实际层数
STATIC_RC首错/24Gate/window/mismatch NOT VERIFIED;mismatch必须0,保存120帧详情
PARTICLE_OFF/固定预报/camera NOT VERIFIED;保存对照窗口和请求接受结果
PARTIAL_RCRR实际四段/Layer ID/缓存状态 NOT VERIFIED;明确部分等价,不能补写113层PASS
SOURCE_CHANGE基线/单次变化/pre-post NOT VERIFIED;记录Source mutation和两次导出
reset/前后台/退出/旧STEP-102回归 NOT VERIFIED;不能以进程正常退出替代场景检查
内存/trace开销/CPU/FPS/截图/crash NOT VERIFIED;不能用单制品构建成功替代
完整113层及原始现场selector 缺证据;另需真实同版本快照

构建、检查与必做输出

Codex仅执行只读调查、文本一致性/范围检查、git diff --check与新增文件空白检查;无编译、C++运行、Jest、Gradle/APK、ADB、设备、发行或Git提交推送。

精确macOS Shell构建/ADB/场景/Logcat/私有JSON回读及Native定向命令见:docs/报告/STEP-113_FZG1_PBF_Layer与FastGate诊断_Codex完成报告_v1.md 第5节。Android ABI先匹配标准脚本x86_64,所有设备命令固定 -s 192.168.200.139:5555,由RDC执行。

交付源码/测试、本记录、上述完成报告、粒子开发记录追加已落盘。下一步仅由RDC独立验收;失败保留首个真实error及完整日志,再按本任务范围修复。不得借此放宽Fast/Placement/Cache安全判定或进入正式发行。

RDC 独立验收补记(2026-10-11,设备证据)

以下是 Codex 退出后 RDC 新执行的证据,不修改上文 Codex 未构建/未实测的历史结论。本次阶段判定:PARTIAL;Android 构建 PASS;五场景稳定基线采样 PASS;113 层等价与性能 NOT VERIFIED。

  • 环境:Mac、particle/main;构建源码基于 c6d13e1059 加 STEP-113 未提交改动,build-info 明确 git_dirty=true。此 APK 不是 Source Lock / 正式发行。
  • 标准 build_validation_apk.sh 于 2026-10-11 08:35:08 JST 退出码 0;Gradle BUILD SUCCESSFUL in 19m 22s;Java 17.0.20.1;OpenGL/x86_64;ZIP/ABI/体积/SHA 自检通过。
  • APK:artifacts/maplibre-particle/android-validation/MapLibreAndroidTestApp-validation-opengl-debug-x86_64.apk;66,587,454 bytes;libmaplibre.so 40,033,976 bytes;SHA-256 0054248bc3872e8670df4e9a10d11f1d65c0912a0482586cd7a247e880a6eaef。记录:同目录 build-info.txt、build.log。
  • 设备:FZG1-2,ADB 192.168.200.139:5555,主 ABI x86_64;明确 -s 的 adb install -r 返回 Success,未卸载数据;设备安装后版本 13.6.1-particle.23。正式 PBF Style 模式运行并加载。启动前数秒 sceneReady=true 但 Native Layer=0 / plan not-configured 是加载暂态;只接受之后的 Native Layers 非零、planValid=true 稳定记录。
  • 五个场景均由 ADB 明确 serial 启动;STEP113Gate Logcat Base64 summary 成功还原。每场景实际设备稳定状态的 decisionMismatch 都是 0。Full/Fast/Attempts 为生命周期累计,并非精确 60 秒窗口。
场景 Native Layers Attempts Full Fast Retained 及关键证据
PBF63 64(63+内部层) 106 106 0 R[0,64) Build0,unknown-dependency;无粒子持续驱动
STATIC_RC 66 876 875 0 R[0,63) Build0,unknown-dependency;unsupported-continuous-layer、unsupported-scene 各876
PARTICLE_OFF 66 70 70 0 no-particle-repaint=70;非相等时长性能对照
PARTIAL_RCRR 66 862 861 0 R0[0,3) unknown-dependency;R2[39,64) 与 R3[64,66) Build0/static-placement;两个 unsupported Gate 各862
SOURCE_CHANGE 67 888 888 0 基线已记录;没有执行菜单手动 Source mutation
  • STATIC_RC 同帧失败全集汇总 CacheInvalid=870、revision-mismatch=871、placement-or-fade=780;PARTIAL_RCRR CacheInvalid=856。这些失败条件可能在同一帧并存,不能累加为帧数。即使修复缓存 Build,也还有 #22/#23 与其它独立 Gate。
  • 设备摘要 JSON(不纳入 Git):artifacts/maplibre-particle/android-validation/step113/ 下的 pbf63-summary-ready.json、static-rc-summary.json、particle-off-summary.json、partial-rcrr-summary.json、source-change-baseline-summary.json。它们只是低频 summary,不是导出的完整 120 帧。
  • 仍 NOT VERIFIED:原 NavSea 113 层完整 Layer/Source/显隐及真实四段边界;实际 PBF/Sprite/Glyph 画面截图;Source 单次变更后前后对照;120帧手动详情导出;C++ GTest 运行;reset/后台、旧 STEP-102 场景回归;CPU/GPU/诊断开销;生产性能提升、正式发行。不得把部分结构等价当成现场复测或将 STEP-113 判为 CLOSED/PASS。
  • 下一阶段必须分别处理 retained first-build 的安全准入、unsupported continuous layer、unsupported scene;不能直接删除 Gate 放行。