fix: finalize GPU particle time interpolation
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-02 22:07:01 +08:00
parent d4c17fc8b0
commit 5dd4dbf496
11 changed files with 86 additions and 16 deletions

View File

@@ -4,6 +4,7 @@
- 前置:STEP-040(40-01)已在 Android OpenGL 手工验收为 PASS。
- 目标:在唯一正式链路 `RasterArraySource -> RasterParticleLayer -> GPU Simulation -> Trail -> Composite` 中,把单 Field 扩展为 T0/T1 两个独立 GPU Field,并在 State pass 对速度作 GPU `mix`。
- 实现提交:`4675a8a29dd6fc7b684bfb64913a8c9075ad8583`(`feat: add GPU particle time interpolation`)。
- 40-02C 最终修正:原实现的 MIX fallback、GPU identity 与 NORTH Mercator displacement 问题由 STEP-043 修正;在 Android T1--T10 前仍不得判 PASS。
## 本轮实现

View File

@@ -0,0 +1,7 @@
# STEP-043 40-02C Android 双时间片 GPU 时间插值最终修正
- 状态:`IMPLEMENTED / WAITING FOR ANDROID VALIDATION`
- 修正:MIX hard property-only guard、revision/content identity 分离、A/B→B/C content reuse、Mercator Y displacement 与 north-positive V 的边界转换。
- 规则:generation 仍是 source revision;GPU reuse 比较 fixtureID、dataVersion、已验证 `fieldSha256` 和 grid compatibility。MIX 未就绪只记录 `MIX_REJECTED`,不 reload style。
- 检查:shader generator、Linux Core/source test object、format、diff check 通过;未运行 Android Gradle/ADB。
- Android:T1--T10 仍待用户执行,不能判 PASS。

View File

@@ -0,0 +1,19 @@
# STEP-043 40-02C Android 双时间片 GPU 时间插值最终修正完成报告
状态:`IMPLEMENTED / WAITING FOR ANDROID VALIDATION`。开始 HEAD 为 `d4c17fc8b0d5005bb25e603bd0046fcb19602aa3`。
- NORTH:Field/decode/texture/timeMix 继续为 V north-positive;仅 State shader 最终 Mercator displacement 使用 `dy=-v`。
- MIX:Activity 记录 style epoch/ready;未 ready、disabled、layer 缺失或 time-window off 时记录 `MIX_REJECTED`,绝不 fallback `setStyle()`;正常路径仅 `setProperties` 并记录 `MIX_PROPERTY_ONLY`。
- Identity:generation/fixture/dataVersion 继续标识 revision;snapshot 保存已验证 metadata SHA-256,`sameFieldGpuContent` 用 fixture/data/hash/compatibility,令跨 reload 的 B 可复用。
- ADVANCE:Renderer slot matching/overlap 改用 GPU content identity,因此 B generation 变化但内容不变时可复用旧 texture,仅新 C 需要 upload;无内容 overlap 仍保留安全 reset。
- 检查:shader generator、Linux Core 与 source test object、clang-format、diff check 通过。未执行 Android Gradle/ADB。
用户手工:
```bash
./gradlew :MapLibreAndroidTestApp:assembleOpenglDebug --console=plain
adb -s 192.168.1.146 install -r platform/android/MapLibreAndroidTestApp/build/outputs/apk/opengl/debug/MapLibreAndroidTestApp-opengl-debug.apk
adb -s 192.168.1.146 shell am start -n org.maplibre.android.testapp/.activity.particle.ParticleCoreLayerValidationActivity
```
T1--T10(EAST/NORTH、MIX 0 upload/reset、MIX reject、layer lifecycle、B→C +1 upload、回归)均待用户 Android 日志/视觉验收。