From be5b9080ed926a2632c5126c3522e242a2a85967 Mon Sep 17 00:00:00 2001 From: tei Date: Sat, 26 Sep 2026 08:21:42 +0900 Subject: [PATCH] docs: validate STEP-097 cache diagnostics on FZG1 --- .../STEP-097_V13三轮问题去重与修复矩阵_v1.md | 4 +++ .../STEP-097_V13三轮审查问题合并修复_v1.md | 6 ++++ .../STEP-097_V13修复后集中验证清单_v1.md | 5 +++ .../STEP-097_A1_第19项FZG1运行验证报告_v1.md | 34 +++++++++++++++++++ 粒子开发记录.md | 5 +++ 5 files changed, 54 insertions(+) create mode 100644 docs/报告/STEP-097_A1_第19项FZG1运行验证报告_v1.md diff --git a/docs/30_设计/STEP-097_V13三轮问题去重与修复矩阵_v1.md b/docs/30_设计/STEP-097_V13三轮问题去重与修复矩阵_v1.md index c3047b287..5140cebab 100644 --- a/docs/30_设计/STEP-097_V13三轮问题去重与修复矩阵_v1.md +++ b/docs/30_设计/STEP-097_V13三轮问题去重与修复矩阵_v1.md @@ -45,3 +45,7 @@ ## 2026-09-26 第 19 项实测更新 - RDC 使用 `0d13552be` 重编译并执行 GTest,第 19 项 1/1 PASS、RenderSegmentDiagnostics 全组 5/5 PASS;详见 `docs/报告/STEP-097_A1_第19项GTest运行验证报告_v1.md`。其他问题状态不因此变化,A1 仍为 PARTIAL。 + +## 2026-09-26 第 19 项 FZG1 设备辅助证据 + +- 基于相同生产源码的 APK 在 FZG1-2 通过覆盖安装和设备 SHA-256 校验。两轮拓扑循环、重排、缓存 OFF/ON、缺失边界回退与恢复的 20 张截图及 UI 诊断已保存;有效场景的 B/T 粗粒度 textureCreate-resourceRelease 均为 0 或 1。此证据只支持 Android 运行态冒烟,不替代此前旧 revision 归属的 GTest 1/1 PASS,也不能证明 GPU 无泄漏。详见 `docs/报告/STEP-097_A1_第19项FZG1运行验证报告_v1.md`。A1 仍因 01/02/03 未闭合保持 PARTIAL。 diff --git a/docs/50_Step记录/STEP-097_V13三轮审查问题合并修复_v1.md b/docs/50_Step记录/STEP-097_V13三轮审查问题合并修复_v1.md index da6060b81..8fcea30d5 100644 --- a/docs/50_Step记录/STEP-097_V13三轮审查问题合并修复_v1.md +++ b/docs/50_Step记录/STEP-097_V13三轮审查问题合并修复_v1.md @@ -25,3 +25,9 @@ - Mac 同一 `particle/main` HEAD `0d13552bed84f427dd43cae9856391bd26622179` 将 `build-step088-opengl/mbgl-test-runner` 增量编译/链接完成:95/95 steps,exit 0,261.74 秒;构建警告记录于原始日志,不影响测试退出状态。 - 定向 `RenderSegmentDiagnostics.OldCacheReleaseCannotChargeReplacementAtSameIndex`:**1/1 PASS、exit 0**;相关 `RenderSegmentDiagnostics.*`:**5/5 PASS、exit 0**。测试证明旧 revision 释放不污染新 topology 相同 index 的当前段计数。详细报告:`docs/报告/STEP-097_A1_第19项GTest运行验证报告_v1.md`。 - 19 的**已存在 GTest 实测门槛通过**,但不等于 GPU 内存无泄漏或整项资源实机验收;01/02/03 专用测试入口仍缺,A1 依然 PARTIAL,不进入 A2/B/C。本补记覆盖此前 Codex 与 FZG1 报告中的历史 `GTest NOT RUN` 记录,不改写旧报告。 + +## 2026-09-26 FZG1 第 19 项设备辅助验收 + +- Mac RDC 确认 APK 源码 `91c2491b0` 到当前 `237a3e660` 只改变文档,复用原 OpenGL x86_64 APK;在 FZG1-2(ADB `192.168.200.139:5555`)执行 `install -r` 得 `Success`,设备内 APK SHA-256 `8677197c5f83a22747cb51f0c261edffc5db4678fc25b3f366474f6ecb94dc99` 与源文件相同。 +- 两轮 A/B/C/D/E/A 拓扑循环及 TOP_REORDER、CROSS_CONTINUOUS、CACHE OFF/ON、缺失 START 后恢复完成:20 张 1920×1200 截图与 20 份 UI XML;18 个有效检查点 `valid=true/fallback=false`、预期无效检查点 fail-closed。B/T `textureCreate-resourceRelease` 在现有诊断的 19 个场景均为 0 或 1;实时日志无 FATAL/SIGSEGV/SIGABRT。 +- 设备辅助冒烟 **PASS**,前述 19 GTest **1/1 PASS**;没有 on-device GTest、逐 revision GPU 内部观测或显存泄漏证明。B/D `topPresent=true` 与视觉不一致的既有疑点仍待单独核查;01/02/03 专项测试未闭合,A1 整体继续 PARTIAL。报告:`docs/报告/STEP-097_A1_第19项FZG1运行验证报告_v1.md`。 diff --git a/docs/60_测试/STEP-097_V13修复后集中验证清单_v1.md b/docs/60_测试/STEP-097_V13修复后集中验证清单_v1.md index f76f7d79d..f15a3add6 100644 --- a/docs/60_测试/STEP-097_V13修复后集中验证清单_v1.md +++ b/docs/60_测试/STEP-097_V13修复后集中验证清单_v1.md @@ -54,3 +54,8 @@ npm run typecheck - RDC 使用当前源码 HEAD `0d13552bed84f427dd43cae9856391bd26622179` 增量重编译 `mbgl-test-runner`:95/95 steps,exit 0;第 19 项 `OldCacheReleaseCannotChargeReplacementAtSameIndex` **1/1 PASS**;`RenderSegmentDiagnostics.*` **5/5 PASS**,两次退出码均为 0。原始日志和分析见 `docs/报告/STEP-097_A1_第19项GTest运行验证报告_v1.md`。 - 上方第 19 项“NOT RUN”是 2026-09-25 FZG1 冒烟时点的历史事实,现已由本条更新。01 同 tile、02 Metal、03 render exception 测试仍未闭合;A1 不得整体标 PASS。 + +## 2026-09-26 第 19 项 FZG1 设备辅助测试结果 + +- 经 RDC 在 FZG1-2 重新覆盖安装与 hash 复核,执行两轮 topology 轮换和资源诊断场景,20 个截图检查点;18 个有效配置均 valid=true/fallback=false,缺失 START fail-closed 后恢复。B/T 的粗粒度 create-release 差额 0/1,实时日志中无应用崩溃记录。详见 `docs/报告/STEP-097_A1_第19项FZG1运行验证报告_v1.md` 与 Mac 忽略目录 `artifacts/maplibre-particle/step097-fzg1-gtest19-device/`。 +- 这次是 Android Runtime 冒烟,前述第 19 项精确计数归属 GTest 由 Mac 原生测试覆盖;01 同 source/tile stencil、02 Metal、03 绘制异常注入仍缺,A1 整体 PARTIAL,A2/B/C 未实施。 diff --git a/docs/报告/STEP-097_A1_第19项FZG1运行验证报告_v1.md b/docs/报告/STEP-097_A1_第19项FZG1运行验证报告_v1.md new file mode 100644 index 000000000..bc3c60ba6 --- /dev/null +++ b/docs/报告/STEP-097_A1_第19项FZG1运行验证报告_v1.md @@ -0,0 +1,34 @@ +# STEP-097 A1 第 19 项 FZG1 运行验证报告 v1 + +## 1. 结论及验证边界 + +**FZG1-2 Android OpenGL 运行态冒烟 PASS;第 19 项原生 GTest 已于此前单独 1/1 PASS;A1 整体仍 PARTIAL。** 本次通过 Mac RDC 直接连接 Panasonic FZG1-2,不使用 Win11 虚拟机。20 个设备截图检查点、拓扑切换、缓存开关、无效范围回退及恢复完成;设备粗粒度资源计数符合被检查的不变量,未观察到本次采样范围内的应用崩溃。 + +本次 APK 未内嵌 Mac 原生 GTest,也不能从设备截图直接验证旧 topology revision 的内部归属。旧 revision 不计入新段 index 的精确断言由此前 `OldCacheReleaseCannotChargeReplacementAtSameIndex` C++ GTest(1/1 PASS)承担。设备测试仅对实际 Renderer 生命周期、画面与诊断提供辅助证据。 + +## 2. 基线、APK 和设备安装 + +- 时间:2026-09-26 08:10–08:19 JST;Mac `Mac-mini-tei.lan`;源码分支 `particle/main`,起始 HEAD `237a3e66083ede03f56b5e719086d3a1719b4790`,工作树 clean;Integration `main` HEAD `318f8ccf911ac3136c3086a1d14e61f83e2d4bce` 已核对同步。 +- APK 源码提交 `91c2491b0ef73fb9e01d7861b9c4ed7b55498197`。与当前 HEAD 比较只有文档、Step、测试记录变化,生产代码和现有测试源码没有变化,因此直接复用经标准构建的 `OpenGL Debug / x86_64` APK,不为文档提交重复 Gradle 编译。 +- 文件:`artifacts/maplibre-particle/step097-fzg1/MapLibreAndroidTestApp-STEP097-A1-91c2491b0-FZG1-x86_64.apk`,60,295,184 bytes;SHA-256 `8677197c5f83a22747cb51f0c261edffc5db4678fc25b3f366474f6ecb94dc99`。 +- 目标:`FZG1-2`,ADB 序列号 `192.168.200.139:5555`,1920×1200,x86_64;包名 `org.maplibre.android.testapp`。 +- 已执行 `adb -s 192.168.200.139:5555 install -r `,返回 `Success`;设备上 `base.apk` 的 SHA-256 与原始 APK 一致。覆盖安装未清 App 数据。 +## 3. ADB 场景、诊断和截图 + +- 从 `ParticleCoreLayerValidationActivity` 开始,连续执行两轮 A(R-C-R) → B(R-C) → C(C-R) → D(C only) → E(single continuous) → A 恢复;然后 TOP_REORDER、CROSS_CONTINUOUS、恢复默认、CACHE OFF/ON、MISSING START 无效配置和 RESTORE VALID。全程按界面真实控件通过 ADB 点击,不直接伪造内部计数。 +- 输出 20 张 1920×1200 PNG、20 份 UI XML,以及每次 UI STATUS/DIAG 的 `observations.json` 和实时 Logcat。除了启动首页和预期无效场景,另外 **18 个检查点均报告 `valid=true/fallback=false`**。 +- 缺失 START 后 `valid=false/fallback=true`、`reason=start-layer-missing`、`caches=0`;恢复后 `valid=true/fallback=false`、`reason=first-frame`、`caches=2`。 +- 对带 STEP-093 诊断的 19 个检查点,解析 B/T 两组 `res=textureCreate/compositeCreate/resourceRelease`;两组均满足 `textureCreate-resourceRelease ∈ {0,1}`。无效配置 B/T 差额均为 0,恢复后均为 1。**这是设备现有摘要计数检查,不能推论底层 GPU 没有泄漏,也不等同逐 revision 归属断言。** +- 实时日志 `live-logcat.txt` 记录 34 条 STEP093 日志事件,筛选 `step093-events.txt` 共 38 行;`fatal-events.txt` 为空。本次脚本正常结束 `FZG1_DEVICE_SMOKE_OK`,退出码 0;最后确认测试 Activity 仍在前台。 +- 已查看 A、无效 START、恢复有效三张截图:主要图形、粒子与诊断区域仍可见,未观察到整幅永久清空。B/D 不显示上段对象但诊断仍为 `topPresent=true` 的历史待核现象仍存在;不据此直接判定图形错误,另需源码/拓扑语义核查。 + +## 4. 初次脚本重试与真实状态 + +第一次本地 ADB 测试脚本在普通首页截图后,因校验器错误地要求首页已有 STEP-093 专项诊断而触发 `Missing range diagnostic: 00_boot`;该失败属于测试脚本的启动页断言,不是 Renderer 测试失败。保留 `device-test-run-attempt1.log`;限定修正为启动首页允许 `n/a` 后完整重新执行,最终脚本退出码 0。没有跳过后续场景或修改 App。 +## 5. 证据、未完成项与下一步 + +证据根目录(Mac 本地忽略目录):`artifacts/maplibre-particle/step097-fzg1-gtest19-device/`。其中 `install.log`、`before/` 和 `after/installed_sha256.txt` 对应安装;`after/*.png` 与 `after/*.xml` 对应 20 个检查点;`after/observations.json`、`after/status-summary.txt`、`after/live-logcat.txt`、`after/step093-events.txt`、`after/fatal-events.txt` 保留原始诊断。单独压缩包:`STEP097_A1_第19项_FZG1设备证据.zip`,APK 不包含在证据 zip 内,仍使用上述冻结 APK。 + +第 19 项可以记录为**原生 GTest 已通过 + Android 设备辅助冒烟通过**。本次没有验证逐次 GPU 纹理实际释放/峰值内存,没有 iOS Metal 验证,也未补齐 A1 中 01 同源同 tile stencil、02 Metal depth/stencil 附件、03 LayerGroup 真正 render 异常注入专用入口;因此 STEP-097 A1 仍为 PARTIAL,不能进入 A2/B/C 或宣称 V13 发布/产品 Gate PASS。 + +本次只新增报告和追加阶段记录,未修改生产源码、旧调查、正式发布产物、公共契约或 NavSea。 diff --git a/粒子开发记录.md b/粒子开发记录.md index 435054a05..43492cd82 100644 --- a/粒子开发记录.md +++ b/粒子开发记录.md @@ -959,3 +959,8 @@ Android V3-08 单次综合验收已完成并关闭。Native `13.4.1-particle.2` - RDC 重新编译 mbgl-test-runner 成功,第 19 项 1/1 PASS,RenderSegmentDiagnostics 组 5/5 PASS,全部退出码为 0。 - 详见 docs/报告/STEP-097_A1_第19项GTest运行验证报告_v1.md。A1 仍因 01/02/03 专项测试缺失保持 PARTIAL,未进入 A2/B/C。 + +### 2026-09-26 STEP-097 A1 第 19 项 FZG1 设备测试 + +- 在 FZG1-2 重新安装源码等价的 OpenGL x86_64 APK,设备内 SHA-256 与构建产物相同。20 个截图与 UI XML、两轮 topology 轮换、缓存 OFF/ON、非法范围与恢复均已 ADB 实跑,粗粒度 B/T 资源创建减释放值均为 0 或 1;最终脚本 exit 0,实时日志无崩溃记录。 +- 设备报告:`docs/报告/STEP-097_A1_第19项FZG1运行验证报告_v1.md`;原生 GTest 1/1 与诊断组 5/5 已通过。B/D topPresent 诊断疑点待复核,A1 其余 01/02/03 仍未完成,未进入 A2/B/C 或发布。