docs(android): close STEP-106 FZG T2 regression PASS
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:
@@ -36,3 +36,13 @@ export MAPLIBRE_VALIDATION_OUT_DIR="$PWD/artifacts/maplibre-particle/step106-t2-
|
|||||||
- T2_TWO_FREE:R0 和 R1 均 placementCapable=false、gate=true、actualExecution=composite;tick8→130 的 buildDelta=0、invalidationDelta=0、reuseDelta>0;C2 Live;不崩溃。
|
- T2_TWO_FREE:R0 和 R1 均 placementCapable=false、gate=true、actualExecution=composite;tick8→130 的 buildDelta=0、invalidationDelta=0、reuseDelta>0;C2 Live;不崩溃。
|
||||||
- 复测 STEP-099 T4 R-C-R R0 locality,STEP-101 单次/20次 Native Reset(日志须持续采集),V4 Golden 最小烟测。保留失败路径及原始日志。
|
- 复测 STEP-099 T4 R-C-R R0 locality,STEP-101 单次/20次 Native Reset(日志须持续采集),V4 Golden 最小烟测。保留失败路径及原始日志。
|
||||||
- 修正作用域限定 Test App 分段验证,不等同生产快帧性能达标。若仍 fallback,应保留 Placement fail-closed,重新诊断而非强制 PASS。
|
- 修正作用域限定 Test App 分段验证,不等同生产快帧性能达标。若仍 fallback,应保留 Placement fail-closed,重新诊断而非强制 PASS。
|
||||||
|
|
||||||
|
## 2026-10-09 手工边界获用户明确授权后的 RDC 编译与 FZG 闭环
|
||||||
|
|
||||||
|
- 本轮用户明确要求“你编译和验证吧”。在 Mac 执行 Android Test App Gradle,源码 HEAD 23f7b8a4d7、干净;Gradle/Validation PASS。新版 APK SHA256=0ef3b033cd33139db07258745e9cd9d023170ce69767e3f8a5159821776ec9ef,66,505,495 字节,x86_64 MapLibre Native。
|
||||||
|
- FZG1-2 签名检查一致,adb install -r Success;设备 base.apk SHA 与 Mac 相同、versionName=13.6.1。
|
||||||
|
- T1_FREE_SYMBOL(两窗口):Style 实际 5 层/4 段;R0 reuseΔ+3682、buildΔ0、invalidΔ0;R1 Symbol 继续保守 live/static-placement,PASS。
|
||||||
|
- T2_TWO_FREE(两窗口):R0、R1 均 placementCapable=false/gate=true/composite;两段各 reuseΔ+3683、buildΔ0、invalidΔ0;尾部 Annotation Symbol C2 live,PASS,原 T2 阻塞正式解除。
|
||||||
|
- STEP099 T4:R0 reuseΔ+3675、build/invalidΔ0,PASS。STEP101 T1:1 个 nativeReset 完成,PASS;T2:20 Native reset 完整配对、21 ready、40 Render reset enter/complete,PASS。
|
||||||
|
- QBIN V4 Golden t0/t1 插入、Runtime V4 READY 最小烟测 PASS。Crash Buffer 均无故障记录。FZG 已恢复默认 GLOBAL/ACTIVE/EAST/MIX0%/256,修正版 APK 哈希再次核对一致。
|
||||||
|
- 状态更新:**STEP-106 CLOSED/PASS(FZG Android x86_64/OpenGL 定向问题及回归)**。不代表 ARM64、RN、iOS、Vulkan、全链发行通过。原始日志保存在 Git 忽略的 artifacts/maplibre-particle/step106-t2-fix/。
|
||||||
|
|||||||
100
docs/报告/STEP-106_STEP102_T2_编译与FZG实机回归_RDC完成报告_v1.md
Normal file
100
docs/报告/STEP-106_STEP102_T2_编译与FZG实机回归_RDC完成报告_v1.md
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
# STEP-106 STEP-102 T2 Placement 边界修正 — Mac 编译与 FZG 实机回归完成报告 v1
|
||||||
|
|
||||||
|
## 一、结论
|
||||||
|
|
||||||
|
**STEP-106 CLOSED/PASS(仅 FZG1-2 Android x86_64/OpenGL Test App 的 T2 问题及定向回归)。**
|
||||||
|
|
||||||
|
源码保留 RenderSegment Placement 安全规则,仅修复 STEP-102 Test App 的分段计划,将默认附加的 Annotation Symbol 从 R1 Retained 中隔离到末尾 Continuous C2。更新版经 Mac Gradle 打包、FZG 设备安装、两项 STEP-102 场景及 STEP-099/STEP-101/QBIN 回归,验收符合各自目标。
|
||||||
|
|
||||||
|
## 二、源码、构建、APK
|
||||||
|
|
||||||
|
- 工作区:/Users/tei/dev/MapLibreParticleLab-upgrade-android-1361
|
||||||
|
- 分支:upgrade/android-native-13.6.1-20261009
|
||||||
|
- 构建输入 HEAD:23f7b8a4d7b33d3fb63cd8691fc3a2f070936d03;构建时 git_dirty=false。
|
||||||
|
- 上游 Integration main 已经在本轮开始前同步到 80667d6c343411d03a760425438e3d292f452118。
|
||||||
|
- 构建:Mac,JDK 17,Android SDK/NDK,x86_64 OpenGL Debug,tools/particle_android_validation/build_validation_apk.sh(Gradle --console=plain);成功退出,BUILD SUCCESS,Kotlin/Java/Native 包装检查通过。
|
||||||
|
- APK:artifacts/maplibre-particle/step106-t2-fix/MapLibreAndroidTestApp-validation-opengl-debug-x86_64.apk;66,505,495 bytes;lib/x86_64/libmaplibre.so=39,970,088 bytes。
|
||||||
|
- APK SHA-256:0ef3b033cd33139db07258745e9cd9d023170ce69767e3f8a5159821776ec9ef。
|
||||||
|
- 其它 ABI 带入的仅是 Validation 脚本明示允许的 Sentry 库;MapLibre Native 和测试 Custom Layer 是 x86_64。APK ZIP 检查、脚本 ABI/体积检查 PASS。
|
||||||
|
- 打包日志与 source lock:artifacts/maplibre-particle/step106-t2-fix/build.log、build-info.txt。
|
||||||
|
|
||||||
|
## 三、FZG 安装
|
||||||
|
|
||||||
|
- 设备:FZG1-2 / Android 13 / ADB 192.168.200.139:5555 / x86_64。
|
||||||
|
- 包名:org.maplibre.android.testapp;versionName=13.6.1,versionCode=14。
|
||||||
|
- 新旧证书 SHA-256 一致:e3f8fae6451ed6322259d090dd8e8788df554ab25ed89a01c78014f1d5ef8236。
|
||||||
|
- 2026-10-09 13:08:17 JST,adb install -r 返回 Success,保留 App 数据。
|
||||||
|
- 完成后设备内 base.apk SHA-256 与 Mac 完全一致;最后恢复默认页面时再次独立回读核实。
|
||||||
|
|
||||||
|
## 四、STEP-102 T1/T2 两窗口验收
|
||||||
|
|
||||||
|
窗口均从 STEP102_WINDOW_MARKER baseline tick8 测至 final tick130,期间持续 ADB Logcat 收集。
|
||||||
|
|
||||||
|
修正后的实际 Style/Segment 层级日志(两组均在 FZG 真实记录):
|
||||||
|
|
||||||
|
- 层 0:step102-background(background)
|
||||||
|
- 层 1:step102-static-fill(fill)
|
||||||
|
- 层 2:step102-particle(raster-particle)
|
||||||
|
- 层 3:step102-upper(T1 为 symbol,T2 为 fill)
|
||||||
|
- 层 4:org.maplibre.annotations.points(MapLibre 内部 symbol)
|
||||||
|
|
||||||
|
四段为 R0 RETAINED[0,2)、C0 CONTINUOUS[2,3)、R1 RETAINED[3,4)、C2 CONTINUOUS[4,5)。
|
||||||
|
|
||||||
|
### T1_FREE_SYMBOL — PASS
|
||||||
|
|
||||||
|
- R0:placementCapable=false、gate=true、actual=composite,build 1→1、reuse 180→3862(**+3682**)、invalidation 2→2。
|
||||||
|
- R1:placementCapable=true、gate=false、actual=live,fallback=static-placement,reuse0。这一安全退回是正确行为。
|
||||||
|
- C2:MapLibre 内部 Annotation Symbol 持续 Live。
|
||||||
|
- Crash Buffer=0,Style Plan 接受。
|
||||||
|
|
||||||
|
### T2_TWO_FREE — PASS,原阻塞解除
|
||||||
|
|
||||||
|
- R0:placementCapable=false、gate=true、actual=composite,build 1→1,reuse 195→3878(**+3683**)、invalidation 7→7。
|
||||||
|
- R1:placementCapable=false、gate=true、actual=composite,build 1→1,reuse 195→3878(**+3683**)、invalidation 7→7。
|
||||||
|
- C2:内部 Annotation Symbol 继续 Live,不破坏 Placement 安全。
|
||||||
|
- Crash Buffer=0,Style Plan 接受。
|
||||||
|
|
||||||
|
原失败表现(R1 placementCapable=true/fallback=static-placement)不再存在。之前对旧 13.4.1-particle.21 的同设备对照证明原 fixture 也有相同问题,不属于 13.6.1 新增回归。
|
||||||
|
|
||||||
|
## 五、定向回归
|
||||||
|
|
||||||
|
| 回归 | 实际设备证据 | 结论 |
|
||||||
|
|---|---|---|
|
||||||
|
| STEP-099 T4 R-C-R | 动态 GeoJSON 更新 69 次;tick8/130 R0 build 1→1,reuse 193→3868(+3675),invalidation 13→13;crash0 | PASS |
|
||||||
|
| STEP-101 T1 | request1、destroy enter/return1、nativeReset enter/complete1、新 Renderer ready2、DONE1;crash0 | PASS |
|
||||||
|
| STEP-101 T2 | request20、destroy enter/return20、nativeReset enter/complete20、Renderer reset enter/complete40、newReady21、DONE1;crash0 | PASS |
|
||||||
|
| QBIN V4 Golden | clear/color/particle/time=ACCEPTED;T0/T1 均 ACCEPTED_INSERTED,Runtime V4 READY,UI 显示 V4 GOLDEN | PASS(最小烟测) |
|
||||||
|
| 默认画面恢复 | GLOBAL/ACTIVE/EAST/MIX0%/256,Test App 前台,13.6.1,设备 APK SHA一致,crash0 | PASS |
|
||||||
|
|
||||||
|
特别说明:STEP-101 T2 从场景启动前至终态使用 Mac 持续流式 Logcat,避免 Android 环形 Logcat 溢出造成的假性少计数。
|
||||||
|
|
||||||
|
## 六、原始证据位置
|
||||||
|
|
||||||
|
所有文件保存在 Mac Git 忽略目录:
|
||||||
|
|
||||||
|
artifacts/maplibre-particle/step106-t2-fix/
|
||||||
|
|
||||||
|
- build.log 与 build-info.txt
|
||||||
|
- runtime-T1/stream.log、crash.log
|
||||||
|
- runtime-T2/stream.log、crash.log
|
||||||
|
- runtime-STEP099-T4/stream.log、crash.log
|
||||||
|
- runtime-STEP101-T1/stream.log、crash.log
|
||||||
|
- runtime-STEP101-T2/stream.log、crash.log
|
||||||
|
- runtime-V4-smoke/load.log、v4.xml
|
||||||
|
- runtime-restored/window.xml、frame.png、crash.log
|
||||||
|
|
||||||
|
未将大型原始 Logcat、截图或 APK 纳入 Git。
|
||||||
|
|
||||||
|
## 七、保留边界
|
||||||
|
|
||||||
|
本次完成的是升级候选 **Android x86_64/OpenGL Test App** 上的明确阻塞与相关回归。STEP-102 改成 R-C-R-C 的测试布局引入第二 Continuous 区段,不能用它宣称生产环境单 Continuous Particle fast-path 的性能通过。没有修改 Shared Core 的 Renderer/Placement API、NavSea Host 或 iOS。
|
||||||
|
|
||||||
|
Android ARM64、RN 11.5.0 接入、iOS Metal、Vulkan、AAR 发行与全链用户验收均仍需独立完成。QBIN V4 本轮仅复测 T0/T1 Golden 插入,不声称六个时间控制动作再次全部验证;上轮 STEP-105 的六项回归保持独立历史事实。
|
||||||
|
|
||||||
|
本轮没有运行 Jest,没有使用 Codex 模型;编译/安装按用户此轮显式授权由 RDC 在 Mac 执行。
|
||||||
|
|
||||||
|
## 八、阶段判定和 Git
|
||||||
|
|
||||||
|
**STEP-106 / Test App 修正闭环:CLOSED / PASS。**
|
||||||
|
|
||||||
|
代码修正提交 86906c8a6af474a8d064c6f6d7d431e2a7e3efe6,之前根因记录提交 23f7b8a4d7b33d3fb63cd8691fc3a2f070936d03。本轮追加 recoder_step.md 与中文阶段记录,报告提交/远端 Push 以实际 Git 结果为准。正式 particle/main 不修改。
|
||||||
@@ -85,3 +85,19 @@
|
|||||||
- **PENDING**:本轮没有执行 Android Gradle/Kotlin 编译、没有构建更新 APK,也没有对新修正后的 T1/T2 进行真实 FZG 测试。设备目前仍是已经安装的**修正前** 13.6.1 APK。遵守用户手工编译边界,需用户在 Mac 运行 ./tools/particle_android_validation/build_validation_apk.sh;之后 RDC 核对 APK SHA、更新安装并运行 STEP-102 T1/T2 tick8/130 + STEP-099 T4 + STEP-101 定向回归。
|
- **PENDING**:本轮没有执行 Android Gradle/Kotlin 编译、没有构建更新 APK,也没有对新修正后的 T1/T2 进行真实 FZG 测试。设备目前仍是已经安装的**修正前** 13.6.1 APK。遵守用户手工编译边界,需用户在 Mac 运行 ./tools/particle_android_validation/build_validation_apk.sh;之后 RDC 核对 APK SHA、更新安装并运行 STEP-102 T1/T2 tick8/130 + STEP-099 T4 + STEP-101 定向回归。
|
||||||
- 重要边界:为了测试场景保留 Annotation 的 Z-order,新计划成为 R-C-R-C;增加第二个 Continuous 会失去原 fixture 的单一 Continuous fast-path 资格,**该修正仅用于验证 Retained Placement 局部缓存**,不能拿它证明生产路径快帧性能。未确认的目标必须继续标记待验收。
|
- 重要边界:为了测试场景保留 Annotation 的 Z-order,新计划成为 R-C-R-C;增加第二个 Continuous 会失去原 fixture 的单一 Continuous fast-path 资格,**该修正仅用于验证 Retained Placement 局部缓存**,不能拿它证明生产路径快帧性能。未确认的目标必须继续标记待验收。
|
||||||
- 详细报告:docs/报告/STEP-106_STEP102_T2_Placement边界修正_RDC实施报告_v1.md;原始对照日志:artifacts/maplibre-particle/step105-fzg-t2-rootcause-20261009/old21-t2-stream.log(Git 忽略目录)。
|
- 详细报告:docs/报告/STEP-106_STEP102_T2_Placement边界修正_RDC实施报告_v1.md;原始对照日志:artifacts/maplibre-particle/step105-fzg-t2-rootcause-20261009/old21-t2-stream.log(Git 忽略目录)。
|
||||||
|
|
||||||
|
## 2026-10-09 / STEP-106 编译、FZG 安装和真机验收最终结果
|
||||||
|
|
||||||
|
- 用户明确允许本轮 Mac Android 编译与 FZG ADB 安装。Integration main 在执行前通过 RDC 同步到 80667d6c343411d03a760425438e3d292f452118。
|
||||||
|
- 源码基线:upgrade/android-native-13.6.1-20261009 / 23f7b8a4d7b33d3fb63cd8691fc3a2f070936d03;工作区干净,无额外代码更改。构建脚本 tools/particle_android_validation/build_validation_apk.sh,Mac Android x86_64/OpenGL Debug,BUILD SUCCESS,Kotlin 编译 PASS,APK ZIP/ABI/大小校验 PASS;build-info.txt git_dirty=false。
|
||||||
|
- 修正版 APK:artifacts/maplibre-particle/step106-t2-fix/MapLibreAndroidTestApp-validation-opengl-debug-x86_64.apk;66,505,495 bytes,libmaplibre.so 39,970,088 bytes,SHA-256 0ef3b033cd33139db07258745e9cd9d023170ce69767e3f8a5159821776ec9ef。
|
||||||
|
- FZG1-2 / Android 13 / 192.168.200.139:5555:与现有签名相同,adb install -r 于 2026-10-09 13:08:17 JST 返回 Success;设备内 base.apk SHA 与 Mac 完全一致,versionName 13.6.1,保留数据。
|
||||||
|
- STEP-102 T1_FREE_SYMBOL tick8→130:真实 Style/Segment 顺序为 R0 [0,2) Background+Fill、C0 [2,3) Particle、R1 [3,4) 测试 Symbol、C2 [4,5) 内部 Annotation Symbol;R0 buildΔ0、reuseΔ+3682、invalidationΔ0、composite;R1 placementCapable=true/gate=false、Live、static-placement;crash 0。PASS。
|
||||||
|
- STEP-102 T2_TWO_FREE tick8→130:同样四段,测试 R1 为 Fill、Annotation Symbol 在 C2;R0 与 R1 都 placementCapable=false/gate=true/composite,分别 buildΔ0、reuseΔ+3683、invalidationΔ0;C2 Live;crash 0。**PASS,STEP-105 T2 阻塞解除**。
|
||||||
|
- STEP-099 T4 R-C-R 局部复用回归:69 次动态 GeoJSON 源更新,tick8/130 R0 build 1→1、reuse 193→3868(Δ+3675)、invalidation 13→13;crash 0。PASS。
|
||||||
|
- STEP-101 T1 Native 单次重建:request1、destroy enter/return1、nativeReset enter/complete1、newReady2、DONE1、crash0。PASS。
|
||||||
|
- STEP-101 T2 20 次重建:request20、destroy enter/return20、nativeReset entered/completed20、Renderer reset enter/complete40、newReady21、DONE1、crash0;使用 Mac 持续流式 Logcat 防止早期事件被设备环形缓冲覆盖。PASS。
|
||||||
|
- QBIN V4 Golden 最小回归:color/particle/clear/time 均 ACCEPTED,t0/t1 都 ACCEPTED_INSERTED,状态 V4 READY;PASS(不宣称 Seek/Play/Pause 六项全量本轮重复验收)。
|
||||||
|
- 最终 FZG 已冷启动回默认 Particle Core Layer Validation,GLOBAL/ACTIVE/EAST/MIX0%/256,versionName 13.6.1,APK SHA 0ef3b...,crash 0,前台 Test App;NavSea 未修改。
|
||||||
|
- 原始运行证据在 Mac Git 忽略目录 artifacts/maplibre-particle/step106-t2-fix/runtime-{T1,T2,STEP099-T4,STEP101-T1,STEP101-T2,V4-smoke,restored};本轮未执行 Jest、Android ARM64 编译、RN 11.5.0、iOS、Vulkan、性能 profile。
|
||||||
|
- 结论:**STEP-106 FZG x86_64/OpenGL 修正与定向回归 CLOSED/PASS**。新增第二 Continuous 只为测试 Annotation 隔离;不得将 R-C-R-C 场景当作生产 Particle fast-path 性能验收,更不代表整个 MapLibre 13.6.1 Android/iOS 发布完成。
|
||||||
|
|||||||
Reference in New Issue
Block a user