Files
MapLibreParticleLab/docs/50_Step记录/STEP-074_QBIN2_V4_EncodedIngress与Decoder_v2.md
OpenAI Codex 56b8dab90f
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
fix: close STEP-074 QBIN2 decoder audit
2026-09-13 11:26:13 +08:00

1.9 KiB
Raw Permalink Blame History

STEP-074 — QBIN2 V4 Encoded Ingress 与 Decoder v2

状态:完成

日期:2026-09-13

基线

  • 开始 HEAD:83a84452f23d019cbb143630eac04631552fef89。
  • 开始前已有 STEP-062 文档修改及历史 untracked 文件;未清理、覆盖、暂存或提交。

完成项

  • per-plane contentIdentity 改为 raw bytes 加 descriptor 的明确 Little Endian canonical byte stream;不含 byteOffset。
  • 64 MiB 为整份 QBIN 上限,32 MiB 为各 Plane raw byteLength 总和上限;canonical padding 不计入 decoded data。
  • BITSET 与 VALIDITY 双向强制;构造后以 DecodedFieldFrame::isStructurallyValid() 作最终 fail-closed 自检。
  • test-only fixture writer 对整数、float32、float64 明确写 Little Endian。
  • decoder/ingress runner 扩为实际 18 tests,包含 header、descriptor、limits、packing、padding、CRC、validity、invalid-cell、identity、513×769 与 Contract 矩阵。
  • unknown Scalar opaque unit、unknown field semantic 与 validTimeUtc < referenceTimeUtc 的 decoder 容器行为均通过。

验证

  • cmake --build build-linux-opengl --target mbgl-test-runner -j3:PASS(实际重编译/重链)。
  • mbgl-test-runner --gtest_list_tests:PASS,确认 suites 已注册。
  • ParticleQbinV2Decoder.*:ParticleEncodedFieldIngress.*:18/18 PASS。
  • ParticleFieldRuntime.*:ParticleFieldProfileValidator.*:STEP-073 11/11 PASS。
  • Source.ParticleFieldDataAdapter*:Source.RasterArrayTimeline*:Source.HostField*:既有 V3 11/11 PASS。
  • git diff --check:PASS。

范围确认

只修改 QBIN decoder/header 与 C++ test,未进入 Store submission、Binding/Projection、Renderer/shader、JNI、Android、RN、Test Host、URL/HTTP/download/gzip、iOS/Metal 或 Jest。

阻塞与下一步

无范围内阻塞。本 Step 到此关闭;提交并 push 后停止,不进入下一 Step。