Files
MapLibreParticleLab/docs/报告/40-03_Android_OpenGL粒子数量容量基线_Codex完成报告_v3.md
OpenAI Codex 7af12e7d62
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: close Android particle capacity validation
2026-09-03 17:21:44 +08:00

2.8 KiB
Raw Blame History

40-03 Android OpenGL 粒子数量容量基线 Codex 完成报告 v3

最终状态

40-03:CLOSED / PASS

原目标是在正式 RasterArraySource -> RasterParticleLayer -> GPU simulation -> Trail -> Composite 链中建立有真实绘制意义的 Android OpenGL 粒子容量基线。

从 State-only 到 Full Particle Draw

首次容量实现提交 c0d1ad43c49ed6d526c3fd8b982c04840326d0d0 仅将 State A/B 扩展为 256 至 1M。首次 Android 验证发现 Trail/render 只消费少量固定 State sample;所以它不代表 N 个模拟粒子同时被绘制,容量验收暂停。

Full Particle Draw 提交 a0aae48ec8cb8a379909b88df1aeef45663f2985 修正此缺口:每个 particle index 一一映射 State texel,静态 draw resources 仅在创建/count rebuild 时生成,vertex shader 直接从当前 State write texture 读取位置。正式 Trail 在同一 Trail A/B write target 先 fade、再 draw N 个 point,Composite 沿用既有 Trail write 输入。因此最终契约为:State N -> draw N -> Trail -> Composite。

没有每 frame CPU particle loop、GPU→CPU readback、CPU position upload、旁路 overlay 或第二 simulation。

用户 Android 实机验收

实机日志均包含 fullParticleDraw=true:

档位 State Grid effectiveParticleCount trailDrawCount 结果
256 16×16 256 256 PASS
1K 32×32 1024 1024 PASS
4K 64×64 4096 4096 PASS
16K 128×128 16384 16384 PASS
64K 256×256 65536 65536 PASS
1M 1024×1024 1048576 1048576 PASS;用户确认运行 OK

T-FULL-01(256→draw 256)、T-FULL-02(1K→draw 1024)和 T-FULL-03(256→1K→256)全部 PASS。T-FULL-03 中 State grid/draw count 变更、full draw resource 释放重建和 reset/reseed 均正确;无 stale resource、crash、由 count change 引起的 Field upload 或 Style reload,MIX 未改变。

40-02 的既有语义保持:MIX 仍为 property-only,不触发 Field upload 或 simulation reset;时间窗 Field reuse 仍记录 simulationRebuild=false、trailCleared=false。

容量结论与边界

Android OpenGL full particle draw 已通过,已实际验证 1,048,576 个粒子可正常运行,已验证容量 ≥ 1M。项目当前没有继续压测 2M/4M/8M 的实际需求;40-03 不是理论 GPU 极限研究,故在满足需求后关闭。

1M 仅是本次验证环境的已验证容量,不是产品硬编码默认值、全部 Android 设备保证值或理论最大容量。

本收尾边界

  • Android 设备验证由用户完成。
  • Codex 本收尾未执行 Android Gradle、ADB、APK 安装或设备操作。
  • 未修改功能代码、未加入/执行 Jest,未夹带 APK packaging 或其他阶段工作。

文档自检 git diff --check 通过后,本报告与 STEP-044 v3、开发记录一同提交。