8.9 KiB
STEP-095 V13 独立严格代码与性能审查 — Codex 完成报告 v1
日期:2026-09-25(Asia/Tokyo)。本轮为独立静态调查与中文文档交付,不是修复或产品验收。
1. 执行摘要与状态
已完成 V13 冻结源码审查、旧 F01~F10 独立复核、V12/V13 成本比较和 RDC 验证方案。新增最高优先问题为 target 切换后 stencil 记录未失效、Metal depth/stencil 契约未完整下传、绘制抛错后 cache 仍可能标成功、V4 PLAY 未接入生产时钟推进。另有 JSON、数值入库、listener、物化/UI 成本等明确源码链。
没有运行构建、测试、设备或 profiler;不宣称已发生黑屏、OOM、崩溃或达到某个性能收益。调查内容完成,Git 状态以阶段记录第 4 节追加结果为准。调查交付 PASS 与 V13 产品运行态 PASS 分离;后者本轮不成立,运行验证均 NOT RUN/NEEDS_RUNTIME。
2. 基线与审查范围
环境为 Mac-mini-tei.lan、/Users/tei/dev/MapLibreParticleLab、particle/main。起始 HEAD/实际 origin 为 05878d662308b9a92c20c433c3cd2943d74ae718,工作树 clean。冻结源码 ee0b89e711bf01335b3aa71d36def785cd97fec3,功能提交 016fd1fff6a33cf795c10d4f5c5413d308383677。RN/Android 13.4.1-particle.13、iOS 6.28.0-particle.13;manifest/tag 已核对,manifest sourceCommit ddf20dec… 至冻结点无生产源码变化。
本次恢复指令由用户在同一会话明确指定 gpt-6-astra high,符合任务要求。该记录不冒充底层启动参数的独立核验。保留已有调查正文,仅做模型来源澄清及引用校正。
已读取 AGENTS、当前规范/总则/基线,先源码后旧报告,交叉检查 STEP-088~094;范围包括 Segment JSON/resolver、全局排序、runtime/cache、GL/Metal offscreen、State/Trail/时间场/QBIN、Android/iOS/RN、Host 版本锁及 Integration 只读状态。Vulkan、全部驱动/并发交错、业务 provider/HTTP、产物独立重建下载、真实 NavSea 接入未验证。
完整 manifest 坐标/散列、源码路径图及范围限制见调查第 2 节。发布回读仅 HISTORY,文档提交不发布新软件。
3. Finding 总表与详细证据入口
以下为交付索引;每项的精确文件/行范围、最短可复核调用链、反例、修复方向和验收方案完整保存在调查第 3~6 节,作为本报告证据明细,不另复制一套可能漂移的行号。D=缺陷路径,C=确定成本,R=后果待运行,E=环境偏差;源码链置信度均高。
| 编号/级别/类别 | 问题及最短触发/影响 | 最小修复方向 | 验收 |
|---|---|---|---|
| N01 P1 D+R | 同 tiles 的 R-R/R-C 跨 target 复用 CPU stencil 映射 | target generation 隔离/重置 | OFF基线、stencil capture |
| N02 P1 D+R | Metal clear/attachment 契约缺口 | 完整翻译 depth/stencil/combined attachment | 真机/模拟器 validation/capture |
| N03 P1 D+R | group 抛错被 catch,残图仍 markBuildSucceeded | build 成功状态传递,失败不可发布 | 故障注入/恢复/no reuse |
| N04 P1 D | 一次 set time 后 PLAY 无生产 advance | owner-thread 唯一时钟接线 | PLAY/PAUSE/速度/跨窗口 |
| N05 P2 D | NUL 截断/重复 strategy 绕过严格语义 | 长度感知与唯一键校验 | JSON/两桥接错误回归 |
| N06 P2 D+R | 坏数值先入库,物化失败丢可用投影 | 入库前约束/事务发布 | 好旧帧→坏高revision |
| N07 P2 D | 同 view attach/detach listener递增 | 单listener/幂等/移除 | 100次/换view/销毁 |
| C01 P1 C | full diagnostics 锁内深复制进热路 | 轻量一致快照,完整pull隔离 | alloc/锁/复制次数 |
| C02 P1 C+R | retained及普通粒子Metal wait | 先profile,再有序提交 | wait/GPU/State-Trail顺序 |
| C03 P1 C | dirty销毁同尺寸allocation | content/resource失效分离 | mutation/resize/context分别计数 |
| C04 P1 C+R | GPU多R和CPU多field无总预算 | map预算/安全fallback | 阶梯压力/peak/长稳 |
| C05 P2 C | ordinal线性与fast全items扫描 | generation索引/粒子列表 | S/G扩展和reorder回归 |
| C06 P1 C+R | 同时间/mix也整网格物化、UI提交 | 早退/端点复用/安全异步发布 | 大网格/UI/alloc/rebuild |
| C07 P2 C | tick drawable重建、端点复制 | 保留对象/不可变共享 | tick与窗口边界分测 |
| O01 P2 D | 旧cache析构计数落新topology index | identity/generation计数 | 真cache切换/析构 |
| E01 P1 E | Host .10/native .13 |
对齐依赖和lock,独立后续任务 | 干净包/typecheck/codegen/设备 |
| E02 P3 E | Integration旧协调状态 | 负责人按接入事实更新 | commit/包/设备交叉核对 |
4. 旧 F01~F10 独立复核
| 旧项 | 意见 | 修正依据 |
|---|---|---|
| F01 | CONFIRMED | 深复制链成立,成功fast可两次而非所有帧必两次 |
| F02 | CONFIRMED | retained仅build等待,补普通State/Trail等待 |
| F03 | CONFIRMED | dirty释放成立,稳定reuse不分配 |
| F04 | CONFIRMED | 无总预算成立,OOM/泄漏未测 |
| F05 | QUALIFIED | 错配成立,旧TS2307为历史环境失败,不能仅归.10 |
| F06 | QUALIFIED | 显式设计限制建议P2;full CPU不等于关闭GPU reuse |
| F07 | CONFIRMED | ordinal线性,但全局编号对正确性必要 |
| F08 | QUALIFIED | 保守全局失效,裁窄前须证明依赖完整 |
| F09 | CONFIRMED | 可具体复核先换entries后析构;不证明stale纹理 |
| F10 | QUALIFIED | 文档偏差降P3;不能推定NavSea实际接入 |
不为凑数标 DISPROVED;没有证据的运行后果均留 NEEDS_RUNTIME。旧报告未作出的断言不反向归咎于旧作者。
5. V12/V13 与缺失验证
V12 固定最多两个 R,V13 任意独立 R/C,增加管理/资源上界;单 C fast 保留,多 C 回 full CPU。成本模型为完整快照 O(L+S)、多段 ordinal 最坏前缀 O(S×G)、retained 资源 O(R×W×H)、场物化 O(P)。普通粒子 wait、drawable/物化多为继承成本,不全归 V13。无 profiler 不给收益百分比,不外推 STEP-090 21.7%/97.0%历史值。
| 验证 | 本轮状态 | 不能替代它的历史证据 |
|---|---|---|
| GL/Metal编译、Native/TS/codegen | NOT RUN | STEP-094构建/43 tests、旧审查69 tests/TS仅HISTORY |
| 任意R/C像素、depth/stencil/alpha | NOT RUN/NEEDS_RUNTIME | resolver/diagnostics单测不覆盖GPU |
| CPU/GPU时间、30/60FPS、单C/多C | NOT RUN/NEEDS_RUNTIME | 历史特定Style CPU不可外推 |
| allocation/peak、context loss、长稳 | NOT RUN/NEEDS_RUNTIME | 逻辑release计数不等于物理显存 |
| PLAY/数值/attach/destroy端到端 | NOT RUN | 手动clock advance不等于生产接线 |
| 默认Host版本/ABI与设备调用 | NOT RUN | 临时工作树TS/codegen不等于默认安装 |
| Android GL / iOS Metal / Vulkan运行 | 全部NOT RUN | 编译成功不证明运行支持 |
完整 topology/异常/生命周期矩阵、精确既有验证命令及日志要求见调查第 9 节。新增缺陷尚需增加对应测试;仅复跑现有过滤集不能关闭。所有运行由 RDC 后续独立执行。
6. 修复建议、交付边界与 Git
建议分批:A 正确性 gate N01~N04;B 输入/生命周期/观测/Host N05~N07/O01/E01;C 轻快照/ordinal/相同时间早退;D GPU预算、allocation/content分离和同步;E multi-C fast、source精确依赖、异步大场与正式mask独立设计。不得为性能绕过保守gate、合并相邻R或引入provider/HTTP/业务调度。只建议,不创建修复任务。
仅新增本报告、调查、阶段记录,追加根粒子开发记录。没有生产源码、shader、API、package/lock、build、manifest、tag、产物或Integration变更。
起始SHA见第2节;实际主提交SHA/message、push、remote HEAD/status和最终收尾提交的自引用说明统一记录在阶段第4节。推送前交付暂记PARTIAL;完成并核对后以追加结果为准。最终由RDC独立审计本文证据和任务边界,Codex不宣布正式产品验收。
已完成的交付核对
主提交 ad5f92c48ea353c18548c79d223e9a06888330d3(docs: audit V13 source and performance for STEP-095)已push origin particle/main,exit 0;实际远端HEAD回读与本地一致,核对时工作树clean。四份文档、9处相对链接、63处带行号源码引用范围及cached diff空白检查通过,开发记录仅追加。调查主稿仍285行;无生产源码变化。
据此调查主交付为 PASS,产品运行态仍 NOT RUN/未验收。本追加结果由独立docs-only收尾提交保存,其最终SHA及二次push/clean核对按阶段记录自引用规则在最终回复提供;不虚构自身哈希或未执行测试。