[docs] (P7): ID-P7-63 - P7 closes: the final device window reads gate 3 36/36 and gate 5 PASS, and the handoff records the end state

This commit is contained in:
2026-09-23 20:51:30 -04:00
parent 78e71f2b01
commit 9f669e5215
11 changed files with 6417 additions and 38 deletions
+1
View File
@@ -113,6 +113,7 @@ verify **在 wave 3 之前**只在 monolith 臂注册(`MG_IntegrationTest/CMak
**7.2 修订(ID-P7-62,g3det,2026-09-23;集成者终裁):monolith 自身不可逐位复现的 case。** 「三遍逐位相同」预设同会话参照可逐位复现。门 3 的 monolith 臂自此每例 **×5**(split 臂仍 ×3);同会话 monolith ≥ 3 遍而图不全逐位相同的 case,split 臂的逐位条款换成分布判据:(1) split 每遍对本会话**每个** monolith 读数 `|ssim − m| ≤ 0.0005`;(2) **最近 monolith**:split 每遍到其最近 monolith 遍(差异像素最少,相同取逐通道差小者,逐通道差也量到这一遍)须 **`px ≤ 1.25·D_mm + 32` 且 `Δ ≤ 1.5·Δ_mm + 8`**,`D_mm` / `Δ_mm` = 各 monolith 遍到另一 monolith 遍的最近差异像素数 / 逐通道差的最大值(留一法,按遍)。monolith 逐位相同或不足 3 遍的 case 仍按逐位判;按分布判的 case 按名列出,其跨臂不同由 (2) 判、不需裁定行。p7w7-6afa077f(boot `8e396037…`)列名 `iris-sundial-lite`、`iris-bliss`、`iris-derivative-main-d24.4.14`(derivative 已定位:光影包的计算降噪在同一 `glDispatchCompute` 内 `imageLoad` halo 后 `imageStore` 回同一图像,workgroup 间竞争;`RUN_AHEAD=0`、lockstep、monolith `FRAMESINFLIGHT=1` 都不能逐位复现,主机 sync validation 两臂 0 hazard;不是分离缺陷)。同会话图模拟(monolith 池任取 K 遍作参照,配门 3 自己的 split 6 遍)的 (1)+(2) 通过率:×3 sundial / bliss / derivative = 100% / 97.5% / 95%,×5 = 100% / 99.9% / 100%,纯噪声对照(另取 monolith 遍当 split)95–100%;首版「全部图对 ≤ 1.25 倍」bliss ×3 只 16.2%,过渡版 `Δ ≤ Δ_mm + 1` derivative 0%、纯噪声 70%。窗口 2 按终裁只读重判(加 g3det 同 boot 的 monolith 遍)36/36,只余 create-instancing 的跨臂裁定(`PASS-NEEDS-ADJUDICATION`,非判据)。证据 `~/w7/logs/g3det/`、`~/w7/logs/g3-tools-rev2/`,判读见 `docs/Disaggregated/notes/p7/device-window-2/tools/RUNBOOK.md` §3 / §6。
**窗口 1b p7w6 DirectGLES × TCP(ID-P7-52,独立调查而非门 3)**:38 例含 9 个缓存跳过,29 次尝试为 16 pass、8 case-level idle timeout、2 visual fail、3 missing-result timeout。missing-result 与 timeout 不作视觉红;Photon v1.3b / D24.4.14 的两张真实错图及逐例 phone reap 状态见 notes/p65/window-1b-p7w6.md。B4 host gate 与未知子集尝试重叠,timeout 墙钟可能受 CPU 竞争影响;M3 后设备门 3 和 CTS 仍待最终 APK。
**状态(终局窗口 3,`p7w8-78e71f2b`,ID-P7-63)**:门 3 **PASS 36/36**(33 例四臂逐位同;三例 Iris 按 ID-P7-62 分布判据通过;OpenRA 四臂 1.000000)。
**7.3 门 5。** 块与 caselist(`tools/cts/caselists/`,取自 VK-GL-CTS `0b04c470e`,即设备上 glcts 的源):`KHR-GL46.texture_*`(1055)、`KHR-GL46.shader_image*`(125)、`KHR-GL46.packed_pixels`(4732)、`KHR-GL46.direct_state_access.*`(371)、**UBO 在 KHR 包里没有专属组**——取 GTF 模块 `GTF-GL46.gtf31.GL3Tests.uniform_buffer_object*`(90,设备 glcts 若未含 GTF 则该块记 unrun)、另加 `KHR-GL46.shader_storage_buffer_object`(124,簇 A 的 unaligned / native-range 拒绝实际打的是 SSBO range)。`KHR-GL46` 在 Android 跑器上未证实可开 4.6 core context:窗口先探针;不行则 `$BASE` 与 AFTER 都用 `gl33` 变体(texture 868 / packed_pixels 4732 / ubo 90;GL 3.3 无 shader image、无 DSA),**同一 API 版本比 0.5 pp**。先 monolith × DirectVulkan 基线入库 `tools/cts/baselines/`,迁移落地后 inproc × DirectVulkan 比对:每块 pass 率差 ≤ 0.5 pp(Pass/(Pass+Fail),NS 不入分母),**新增 crash = 0 单独硬红**。完整 caselist(~56k)在合 `dev` 前跑,不在关键路径。
---
+9 -12
View File
@@ -2,9 +2,9 @@
> 这一页只回答一个问题:**现在在哪、什么已落地、什么在跑、下一步是什么**。随每次合并 / 推送 / 真机窗口更新;历史与设计不在这里(设计见 [`ARCHITECTURE.md`](ARCHITECTURE.md),阶段表见 [`ROADMAP.md`](ROADMAP.md),逐条裁定见 [`notes/p7/INTEGRATOR-DECISIONS-P7.md`](notes/p7/INTEGRATOR-DECISIONS-P7.md),规范见 [`MG_Remote/CONTRACT-P7.md`](../../MobileGL/MG_Remote/CONTRACT-P7.md))。
**阶段:P7 DirectVulkan(Magma)全量迁移**,并行流 **P3b/P4b 深化(Espryt,wave 2-D)** 与 **Ph 小件(簇 F)**。计划 [`notes/p7/PLAN-PH-P34B-P7.md`](notes/p7/PLAN-PH-P34B-P7.md)(五波)。
**阶段:P7 DirectVulkan(Magma)全量迁移——✅ 已收官(2026-09-23,ID-P7-63)**,并行流 **P3b/P4b 深化(Espryt,wave 2-D)** 与 **Ph 小件(簇 F)**。计划 [`notes/p7/PLAN-PH-P34B-P7.md`](notes/p7/PLAN-PH-P34B-P7.md)(五波)。
**更新:2026-09-23(ID-P7-49–62)** · 当前交接 [notes/p7/HANDOFF-2026-09-23.md](notes/p7/HANDOFF-2026-09-23.md)。窗口 2(`6afa077f`):**门 5 PASS**(五块全 ≥ BASE、0 新 crash),门 3 严格读数 33/36——三例 Iris 光影包在 monolith 上同样不逐位稳定(ID-P7-62 分布判据下 36/36)。codex 收官审查的修复、spawn 冷启动心跳(协议修订 2)、1:1 blit 最近邻已落地(ID-P7-60/61/62);终局窗口 3 在最终 APK 上复跑门 3 / 门 5。
**更新:2026-09-23(ID-P7-49–63)** · 交接 [notes/p7/HANDOFF-2026-09-23.md](notes/p7/HANDOFF-2026-09-23.md)。**P7 收官**:§8 九项全绿——终局窗口 3(`p7w8-78e71f2b`)门 3 PASS 36/36、门 5 PASS;门 4 以 `# P13` 读法关闭。CI 七根因修、F2、门 5 三缺陷、codex 收官审查修复、spawn 冷启动心跳(协议修订 2)均已落地推送。下一阶段按 ROADMAP:P8 / P9。
## 1. 出口门总览(CONTRACT-P7 §8 的 9 项分母)
@@ -17,8 +17,8 @@
| 5 | OQ-8 反射归档 `storageBlocks` | ✅ | C |
| 6 | OQ-10 `kCapResidentSubData` 按 server 表发布 | ✅ | C |
| 7 | verify × split(门 2) | ✅ | B4 集成树 verify build:unit 2439、integration-verify 1152、integration-verify-split 1086,全绿;V1/V1 r2 负控与 8 verify trace 证据仍有效 |
| 8 | 真机 ssim 1.0(门 3,分母 36) | 🔄 | 窗口 2(`6afa077f`,reboot-clean、pinned):OpenRA 四臂 1.000000;严格读数 33/36,三例 Iris(sundial-lite / bliss / derivative d24.4.14)monolith 同样不逐位稳定(9/9、11/18、9/9 张不同图,derivative 是光影包自身同一 dispatch 内的 imageLoad/imageStore 竞态)→ ID-P7-62 分布判据;create-instancing 1:1 LINEAR blit 偏差已修;终局窗口 3 复跑 |
| 9 | CTS 五块 AFTER ≤ 0.5 pp(门 5) | ✅ | 窗口 2 inproc × DirectVulkan:shader-image +4.35 pp、texture +0.96 pp、ssbo / dsa / packed-pixels 持平,0 新 crash;UBO(GTF)不在本 glcts,记 unrun;终局窗口 3 复核 |
| 8 | 真机 ssim 1.0(门 3,分母 36) | ✅ | 终局窗口 3(`p7w8-78e71f2b`)**36/36**:33 例四臂逐位同,三例 Iris 按 ID-P7-62 分布判据通过,OpenRA 四臂 1.000000(ID-P7-63) |
| 9 | CTS 五块 AFTER ≤ 0.5 pp(门 5) | ✅ | 窗口 2 与终局窗口 3 均 PASS:shader-image +4.35 pp、texture +0.96 pp、其余持平,0 新 crash、0 流失;UBO(GTF)记 unrun |
**40% 检查点(§8 中点)已过:6/9**,不触发重定基线。G1 全程恒等(pull `.text` `0xa52203`、符号 0/0);census 79 站点 / 0 未标;棘轮 186 → 173 → **171**(ratchet88:`p7-magma` 余 86 全标 `# P13`,门 4 关闭,ID-P7-55)。
@@ -61,20 +61,17 @@
## 3. 真机(Redmi 2f7cbe2e,Adreno 830)
- 当前 APK:**p7w6**,stamp `p7w6-0e16ca27`,已重装并重起 TCP supervisor;屏幕常亮设置 `stayon=15`。bsl-esc-menu DirectVulkan × pbuffer inproc/spawn 各三遍 **6/6**,PNG SHA 均与 E0a monolith 相同;OpenRA 的 p7w5 27/27 结论保留。p7w6 在 M3 落地前构建,后续设备回归需新 APK。
- DirectGLES × TCP 窗口 1b(p7w6)已结案,逐例状态与 phone reap 证据见 notes/p65/window-1b-p7w6.md:9 缓存跳过、29 次尝试(16 pass、8 idle timeout、2 visual failure、3 missing-result)。Photon v1.3b 与 D24.4.14 的 DirectGLES monolith 对照已在同设备、同 APK 下复现相同错误,见报告中的证据路径。
- 门 3 的 36 例 DirectVulkan 三遍逐位与同会话 monolith 对照仍待手机新 APK;CTS AFTER 五块也未运行。
- 当前 APK:**p7w8**(`26.09.78e71f2-trace`,控制协议修订 2),supervisor `0.0.0.0:40613`,`/data/local/tmp/mgcts` 为 `$BASE` 库。
- 终局窗口 3 证据 `notes/p7/device-window-2/final-p7w8/`,窗口 2 `notes/p7/device-window-2/window2-p7w7/`,三例 Iris 不确定性追查在 ID-P7-62。
## 4. 在跑
| 工作 | 状态 |
|---|---|
| 终局设备窗口 3(p7w8) | 最终 APK → reboot-clean → 门 3(monolith ×5 + inproc ×3 + spawn ×3 + `RUN_AHEAD=0` ×1)→ bsl → CTS AFTER → 判读;验证 create-instancing 回到 monolith 图、Adreno robustness2 nullDescriptor |
无。
## 5. 下一步
1. 窗口 3 判读 → 门 3 / 门 5 收官,P7 出口门 9/9。
2. P7 收官文档(ROADMAP P7 行、本页、交接)。
1. 下一阶段按 [`ROADMAP.md`](ROADMAP.md):monolith 跑道 P8(emulation 下放 + 索引宿主镜像);IPC 跑道 P9(反向通道异步 reply)→ P10 → P11 → P12;P3b/P4b 余项并行。
2. CONTRACT-P7 §12 的记录债按阶段认领。
## 6. 阻塞 / 需要人
File diff suppressed because one or more lines are too long
@@ -1,32 +1,22 @@
# P7 集成交接(2026-09-23,p7w6 矩阵与 B4 pipe 门已结束)
# P7 集成交接(2026-09-23 收官)
> 从 HANDOFF-2026-09-22.md 续接。集成树只在 WSL ~/w7/pipe 操作 Git;Windows 主 dev 树不可碰,Windows 侧只在 MobileGL-disagg worktree 按 SHA 快进和推送。提交不得带 Co-Authored-By 尾注。
> 接 [HANDOFF-2026-09-22.md](HANDOFF-2026-09-22.md)。**P7 已收官**:CONTRACT-P7 §8 的 9 项分母全绿,门 4 以 `# P13` 读法关闭(ID-P7-55)。铁律不变:Git 只在 WSL `~/w7/pipe` 与各 `~/w7/p7-<slug>` 包树操作;Windows 只在 `MobileGL-disagg` 按 SHA 快进、推送;提交不带任何尾注;不对运行中的 workflow 子代理 SendMessage(会另起副本抢同一包树)。
## 当前树与设备
## 1. 现状
- WSL pipe 当前 HEAD 为 e036b4e0:已含 M3、B4 和本页 / 矩阵报告;B4 集成源码审查 land,完整 pipe 门通过。文档严格引用与 diff-check 通过后,已从 `MobileGL-disagg` 按 SHA 快进并推送 `origin/feat/disaggregated`。
- p7w6 APK stamp p7w6-0e16ca27,早于 M3 与 B4;手机矩阵已跑完且没有后续设备门启动。设备侧 retrace 后续必须使用最终功能 APK,不能把 p7w6 当 M3/B4/F2 证明。
- DirectVulkan bsl-esc-menu pbuffer inproc/spawn 各三遍 6/6,六张图与 monolith PNG SHA 一致;本窗口没有采集 maps 行数和 wbuf[] 峰值。
- `origin/feat/disaggregated` = `~/w7/pipe` = 本页所在提交。今天落地(ID-P7-55..63):CI 七根因修 + 80 个标题缩短 + 并发组(`1997fd88` 上 Test 首次全绿,含 P6.5 以来首次跑的 retrace 链);ratchet88(棘轮 171);F2(PH-1 (3)(4) 每会话闩、PH-6、PH-7 (5) fork 前认证、fuzz 三臂);门 5 三缺陷(ReadPixels 切带、深度 resolve 臂设备探针、越界图像单元占位);codex 收官审查修复;spawn 冷启动心跳(控制协议修订 **2**);门 3 分布判据 + 1:1 blit 最近邻。
- 最终 v2 门(`p7/int3@74636c84` + 工装 / 文档):G1 `.text` 0xa52203 / 符号 0/0;census 79;棘轮 171;parity 0;hygiene 14/14;unit 2568、split 322、spawn 239、tcp 243、magma 125 / 104 / 89 / 558、integration-gpu 2188 × 2、verify 2568 / 1188 / 1122;OpenRA 两臂 1.000000。
- **终局设备窗口 3**(`p7w8-78e71f2b`,Redmi 2f7cbe2e,reboot-clean、pinned,证据 `notes/p7/device-window-2/final-p7w8/`):**门 3 PASS 36/36**(33 例四臂逐位同;三例 Iris monolith 自身不稳定 → ID-P7-62 分布判据通过;create-instancing 已与 monolith 同图;OpenRA 四臂 1.000000);**门 5 PASS**(shader-image +4.35 pp、texture +0.96 pp、其余持平,0 新 crash,0 流失);bsl spawn server 360 MB / 10,330 映射行。
- 手机:装 `p7w8-78e71f2b`(包 `top.mobilegl.plugin.p7w1.trace`),supervisor 已按 `90-restore.sh` 复原;`/data/local/tmp/mgcts` 已放回 `$BASE` 库。**控制协议修订 2:旧 APK 的 server 与新 client 不兼容**。
## p7w6 DirectGLES × TCP 窗口 1b
## 2. 工装
- 真实分母 38:9 个已有终态缓存跳过(8 pass、1 idle timeout);本次尝试 29 个,16 pass、8 case-level idle timeout、2 visual fail、3 missing-result timeout。逐例 armed / reap / SSIM / timeout 记于 notes/p65/window-1b-p7w6.md;原始日志、results/checkpoints、client/server logs、phone logcat、diff PNG 位于 ~/w7/logs/p7w6-matrix-resume/pass1/。
- 原两项视觉失败的 DirectGLES monolith 对照已完成,未重装 APK,测前后 SHA-256 均为 `780bb00e…72625590`。Photon monolith 与 TCP 完全同为 SSIM 0.008877075 / 403024 mismatch,复现 varying link errors;D24 monolith 为 0.850671535 / 402596,TCP 为 0.850784981 / 402598,两臂都出现 attribute location 超设备限制。均不是 TCP 分离路径特有回归;设备现已回到 Home。完整证据 `/home/swung/w7/logs/p7w6-monolith-compare/`。
- missing-result:REI inventory、Xaero minimap in-world、ModernUI inventory。前两例为外层 runner rc=124;ModernUI 到 1900s 外层上限,checkpoint cancelled/child rc=130。不能把这三项算成 visual product failure。
- 8 个 case-level idle timeout:REI/Xaero/JourneyMap/ModernUI normal-world、Create indirect、Improved Transparency、Iris BSL ESC menu 等;部分 phone reap 日志未知。若重跑,逐例保留日志并先降低 host CPU 竞争;idle timeout 和 missing-result 分开记录。B4 host gate 与未知子集矩阵尝试有时间重叠,timeout 墙钟可能受影响。
- 本地门 v2:`~/w7/logs/p7-gate-template2.sh`(`sed 's#~/w7/pipe#<tree>#; s/TAG/<tag>/'`)——比 v1 多 pipe-gates 全步、integration-gpu 双传输(CI 的三个 iterationrp 旋钮,**别用** `R11G11B10F_FALLBACK`)、车道去 `DISPLAY`。
- 设备窗口:`bash ~/w7/notes/p7/window2/detach.sh <log> ~/w7/notes/p7/window2/window.sh <pipe-sha> [<stamp>]`,约 1.6 h(门 3 monolith ×5),可续跑;RUNBOOK 在 `notes/p7/device-window-2/tools/RUNBOOK.md`。
- 主机 CTS:`~/w7/logs/int2a/cts/cts1.sh`(主机 glcts + `LD_PRELOAD`,pbuffer,核对 renderer 串)。
## 已完成包
## 3. 余项(都不是 P7 的出口门)
- M3:pipe 9fd768d4,ID-P7-50、review-m3 land、完整门已绿;文档与推送已在 3ce5b991 / 7ea7ce89 完成。
- B4:pipe a4c1bc8b / b19297d5,ID-P7-51、review-b4 land。聚合 fence prefix、frame serial 重扫、present slot 回收前等待、pre-pass pending、texture prune、staged extent 清理;deterministic aggregate-wait control 已绿。pipe full gate:G1 .text 0xa52203 / symbols 0/0,census79、ratchet173、parity/audit绿,unit2439、split304、spawn220、tcp223、Magma102/81/71、full540、verify1152/1086,OpenRA两臂1.0 / 0 unsound。日志 ~/w7/logs/p7b4-integration-b19297d5-rerun-20260923/。
- F2 package `p7-f2-driver` 当前头 `2c6a6e25`,已提交 PH-4 精确 mutable mip extent carrier + server byte bound,以及 PH-2 handle slot/generation 具名拒绝;PH-5 ArchiveVector 上限在 `51480f8c`。D11 raw-record / CSO slot `db80dd16`、PH-3 readback bound `adf2cbe0` 也已在分支。Luna 独立源码审查 = land;build-split 49/49、raw peer 负控全过、`gen_pipe.py --check`/`git diff --check` 干净。pull G1 对精确 `adf2cbe0` 基线:`.text=0xa52203`、symbols 27,837→27,837,added/removed/resized/renamed 0/0/0/0,其他 section delta 全0。日志 `/tmp/p7-f2-all-required-final.log`;G1 `/tmp/p7-f2-g1-adf2-final.md` 与 `.json`。
## 下一步
1. B4 / W6 文档已通过严格引用检查并于 e036b4e0 推送到 origin/feat/disaggregated;不触碰 Windows 主 dev 树。
2. F2 PH-4/5/PH-2 已 land 在 `p7-f2-driver`(commits `2c6a6e25` / `51480f8c`)。接下来完成 PH-6、PH-1 (3)(4)、PH-7 (5) 与 fuzz 臂 2,再跑 F2 完整包门和集成审查。
3. Photon v1.3b 与 D24.4.14 的 monolith 对照已完成;两项错图均在同 APK 的 monolith 中复现。保留的 idle timeout / missing-result 项只在需要时、host 空闲窗口按需重跑。
4. 最终功能包完成并部署后做门 3:36 例 DirectVulkan pbuffer × inproc/spawn,三遍逐位一致并与 monolith 同会话差 ≤0.0005,OpenRA 1.0;再采 MOBILEGL_PIPE_STATS 下 bsl maps/wbuf[] 峰值。CTS AFTER 五块与 BASE 比 ≤0.5 pp、新 crash=0。
5. wave 3 剩余 ratchet 88;wave 5 fuzz 三臂、P7 收官异模型整体审查。
无当前需要用户决策的阻塞;设备验证由 Luna 代理执行,避免与测试相互干扰。
1. CONTRACT-P7 §12 的记录债(含 ID-P7-58/60 新增:图像单元同单元写后读残余、探针形状覆盖、非 1:1 深度 blit 无 `BLIT_DST`、`appliedSeq` 前进、PH-5 只管 vector、暂存纹理尾写整层零填等)。
2. CI:`concurrency` 组下旧的排队 run 不总被自动取消(本会话手工取消过两次);观察一两轮再决定是否改为按提交取消。
3. 下一阶段按 ROADMAP:monolith 跑道 **P8**(emulation 下放 + 索引宿主镜像),IPC 跑道 **P9**(反向通道异步 reply)→ P10 → P11 → **P12**(Android 生产窗口路径;Ph 已清)。P3b/P4b 余项(场景普查后半)并行。
@@ -65,4 +65,5 @@
| ID-P7-60 | 2026-09-23 | **P7 收官异模型审查(codex,`6afa077f`)= yes-with-fixes,分诊后修掉五项、记债两项。** 修:越界 / 空存储图像单元有 `VK_EXT_robustness2` nullDescriptor 时绑空描述符(读 0、写丢,GL §8.26 精确),否则按 (形状, 单元) 私有占位(上限 384)——原共享占位让单元 A 的写被单元 B 读到;PH-5 改按元素最小编码宽度限 count(原 `sizeof(T)` 会拒掉编码器自己产出的紧凑合法归档,如多个短 XFB 名);DrainRing 每次 pop 前再查闩(控制线程闩住后的窗口收窄到 check→pop);深度 resolve 探针判定按物理设备身份缓存;窗口 2 判读器硬编码 §7.2 常量(≥3 遍、四臂齐、规范 36 例集合)、CTS 的 Pass→NotSupported 流失计入非通过(裁定过的出分母)、跨臂不同图未裁定即 PASS-NEEDS-ADJUDICATION。记债:对端在已声明大层末尾写几字节会按整层零填(上限 = 设备限制,已认证对端用合法大纹理也能要到同量,不在 ID-P7-3 威胁模型内);`SessionRings` 对闩住的记录也前进 `appliedSeq`。 | 分诊 `notes/handoff/review-p7-closeout-codex.md`;修复 `p7/int3` | `WirePlaceholderImages.inc`、`WirePlaceholderKey.h`、`ProgramArtifactsCodec.cpp`、`ServerLoop.cpp`、`WireDepthResolveArm.h`、`60-reduce.py` |
| ID-P7-61 | 2026-09-23 | **spawn 冷启动:client 的回复预算改量「沉默」而不是「操作时长」,控制协议修订 1 → 2。** `6afa077f` 的 CI 有一条 spawn retrace 腿「ALIVE BUT SILENT,20 s 内没有 CreatePbufferSurface 回复」;同签名在 F2 之前(5 s 预算时 11/77、17/77 腿)就有,本地 4,820 次拉起 0 复现,模拟 21 s 冷拉起与 CI 逐行同形——根因是冷 runner 上首次 `eglInitialize` 装载 libLLVM/libgallium ≈ 20 s,而不是丢唤醒。修法:server 在 apply 线程执行 surface 操作期间每 250 ms 发 `SurfaceProgress{seq, elapsedMs}`,client 每收到一个就重置预算(从发送起封顶 120 s);冻住的 server 照样按名超时;≥1 s 的控制分派记日志。red-once:3 s 拉起对 1 s 预算修前 10/10 红、修后 30/30 绿。**wireFingerprint 变,设备 server 随 APK 重部署。** | `p7/spawnhang` `307535dc` | `ServerLoop.cpp`、`ServerMain.cpp`、`ClientSession.cpp`、`protocol.fbs` |
| ID-P7-62 | 2026-09-23 | **门 3 判读裁定:monolith 自身不逐位稳定的 case 改用分布判据;create-instancing 的 1:1 LINEAR blit 偏差修掉。** 窗口 2(`6afa077f`)门 3 严格读数 33/36:sundial-lite、bliss、derivative d24.4.14 的 split 三遍各三张不同图。同会话设备追查:monolith 也不稳定(sundial 9/9 不同、derivative 9/9、bliss 11/18),两臂变动的是同一批像素(Jaccard 与 split-vs-split 基线相当),lockstep / FIF=1 都不稳定,主机 syncval 0 hazard;derivative 的根因在光影包自身(同一 dispatch 内对同一图像 `imageLoad`/`imageStore` 的边框竞态)。**规则(CONTRACT-P7 §7.2 修订)**:同会话 monolith ≥3 遍不逐位相同的 case,split 的逐位条款换成「每遍对每个 monolith 读数 \|Δssim\| ≤ 0.0005,且每个 split 遍对最近的 monolith 遍:差异像素 ≤ 1.25 × D_mm + 32、最大通道差 ≤ 1.5 × Δ_mm + 8(D_mm / Δ_mm 取 monolith 留一最近邻的最大值)」,monolith 臂改跑 ×5;按窗口 2 的实拍图模拟,×5 下 sundial / bliss / derivative 通过率 100% / 99.9% / 100%、纯噪声对照 100%,窗口 2 加同会话追查的 monolith 读数重判 36/36;monolith 稳定的 case 仍逐位严格。create-instancing:split 两臂逐位稳定但与 monolith 差 712 px ±1 LSB——wire 臂把 1:1 `GL_LINEAR` 默认帧缓冲 blit 走着色器 + 线性采样,Adreno 采样位置微偏;未缩放时改最近邻(结构性单测,lavapipe 看不到)。 | 追查 `~/w7/logs/g3det/{DEVICE,HOST,VERDICT}.md`;终局窗口读数见 §7.2 | `WireColorBlit.inc`、`30-gate3.sh`、`60-reduce.py` |
| ID-P7-63 | 2026-09-23 | **P7 收官:CONTRACT-P7 §8 的 9 项分母全绿。** 终局设备窗口 3(`p7w8-78e71f2b`,Redmi 2f7cbe2e,reboot-clean、pinned、1152 条记录同一 boot_id):**门 3 PASS 36/36**——33 例 monolith ×5 / inproc ×3 / spawn ×3 四臂逐位同(create-instancing 在 1:1 blit 最近邻后与 monolith 同图),三例 Iris(sundial-lite 5/5、bliss 3/5、derivative 5/5 张不同 monolith 图)按 ID-P7-62 分布判据通过(split 到最近 monolith:sundial 3928 px / Δ24 对界 4795 / 59,bliss 9 / 3 对 36 / 12.5,derivative 8768 / 49 对 10891 / 83),OpenRA 四臂 1.000000,`RUN_AHEAD=0` 对照 36/36;**门 5 PASS**——shader-image +4.35 pp、texture +0.96 pp、ssbo / dsa / packed-pixels 持平,0 新 crash、0 流失,UBO(GTF)记 unrun;bsl-esc-menu spawn server 360 MB / 10,330 映射行、inproc app 10,393 行。窗口 2(`6afa077f`)同样门 5 PASS,门 3 严格 33/36 即 ID-P7-62 的起因。门 4 以 ID-P7-55 的 `# P13` 读法关闭。 | 证据 `notes/p7/device-window-2/{final-p7w8,window2-p7w7}/`;交接 `notes/p7/HANDOFF-2026-09-23.md` | 窗口 2 工装 |
| ID-P7-19 | 2026-09-22 | OpenRA 真机分歧改判为 **wire 臂的 GPU 时序竞态**(冷驱动缓存 = 慢 pipeline 创建 → 最终帧回读在最后几批 draw 完成前采样),归 wave 2-B 第 0 片;主机 red-once 用 pipeline 创建延迟旋钮复现;真机验收 = 三次 `pm clear` 冷跑 1.0。F1 保留(机制正确)但不再被当作分歧原因。 | E7:`pm clear` 三遍 0.976493989 / 14658 逐字相同、热跑 1.0、冷 monolith 1.0、`FRAMESINFLIGHT=1` 一绿一红;两臂 client/server 日志逐行相同;diff 只缺最后画的对象。 | `WireFramebuffer.inc`、`VulkanRenderer.cpp`、`F1-verify/README.md` |
@@ -0,0 +1,20 @@
build-apk 2026-09-23T19:35:24 2026-09-23T19:36:52 88
build-host 2026-09-23T19:36:52 2026-09-23T19:38:52 120
build 2026-09-23T19:35:17 2026-09-23T19:38:52 215 all
preflight 2026-09-23T19:38:52 2026-09-23T19:39:41 49 reboot=1 pin=1
install 2026-09-23T19:39:41 2026-09-23T19:39:42 1 verify_only=0
gate3-monolith 2026-09-23T19:39:43 2026-09-23T20:01:07 1284 36 cases
gate3-inproc 2026-09-23T20:01:08 2026-09-23T20:16:37 929 36 cases
gate3-spawn 2026-09-23T20:16:37 2026-09-23T20:34:20 1063 36 cases
gate3-inproc-ra0 2026-09-23T20:34:21 2026-09-23T20:40:15 354 36 cases
gate3 2026-09-23T19:39:42 2026-09-23T20:40:15 3633 incomplete=0
bsl-inproc 2026-09-23T20:40:18 2026-09-23T20:40:32 14
bsl-spawn 2026-09-23T20:40:38 2026-09-23T20:40:52 14
bsl 2026-09-23T20:40:16 2026-09-23T20:40:56 40
cts-shader-image 2026-09-23T20:40:59 2026-09-23T20:41:07 8 limit=0
cts-ssbo 2026-09-23T20:41:08 2026-09-23T20:41:12 4 limit=0
cts-dsa 2026-09-23T20:41:13 2026-09-23T20:41:21 8 limit=0
cts-texture 2026-09-23T20:41:22 2026-09-23T20:43:09 107 limit=0
cts-packed-pixels 2026-09-23T20:43:10 2026-09-23T20:46:59 229 limit=0
cts 2026-09-23T20:40:56 2026-09-23T20:46:59 363 blocks=[shader-image ssbo dsa texture packed-pixels] limit=0 incomplete=0
restore 2026-09-23T20:49:59 2026-09-23T20:50:07 8
1 build-apk 2026-09-23T19:35:24 2026-09-23T19:36:52 88
2 build-host 2026-09-23T19:36:52 2026-09-23T19:38:52 120
3 build 2026-09-23T19:35:17 2026-09-23T19:38:52 215 all
4 preflight 2026-09-23T19:38:52 2026-09-23T19:39:41 49 reboot=1 pin=1
5 install 2026-09-23T19:39:41 2026-09-23T19:39:42 1 verify_only=0
6 gate3-monolith 2026-09-23T19:39:43 2026-09-23T20:01:07 1284 36 cases
7 gate3-inproc 2026-09-23T20:01:08 2026-09-23T20:16:37 929 36 cases
8 gate3-spawn 2026-09-23T20:16:37 2026-09-23T20:34:20 1063 36 cases
9 gate3-inproc-ra0 2026-09-23T20:34:21 2026-09-23T20:40:15 354 36 cases
10 gate3 2026-09-23T19:39:42 2026-09-23T20:40:15 3633 incomplete=0
11 bsl-inproc 2026-09-23T20:40:18 2026-09-23T20:40:32 14
12 bsl-spawn 2026-09-23T20:40:38 2026-09-23T20:40:52 14
13 bsl 2026-09-23T20:40:16 2026-09-23T20:40:56 40
14 cts-shader-image 2026-09-23T20:40:59 2026-09-23T20:41:07 8 limit=0
15 cts-ssbo 2026-09-23T20:41:08 2026-09-23T20:41:12 4 limit=0
16 cts-dsa 2026-09-23T20:41:13 2026-09-23T20:41:21 8 limit=0
17 cts-texture 2026-09-23T20:41:22 2026-09-23T20:43:09 107 limit=0
18 cts-packed-pixels 2026-09-23T20:43:10 2026-09-23T20:46:59 229 limit=0
19 cts 2026-09-23T20:40:56 2026-09-23T20:46:59 363 blocks=[shader-image ssbo dsa texture packed-pixels] limit=0 incomplete=0
20 restore 2026-09-23T20:49:59 2026-09-23T20:50:07 8
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,140 @@
== GATE 3 (DirectVulkan x pbuffer; split repeat=3, contract >= 3; monolith repeat=5 (30-gate3.sh runs x5, the ID-P7-62 rule needs >= 3); tol |ssim-monolith| <= 0.0005) ==
-- session: boot_id 7e78ccf2-c298-481f-98ce-2017a58ffa9e; 1152 record(s) stamped; reboot-clean: 8e396037-0f88-4bda-88a9-22c8d326cc50 -> 7e78ccf2-c298-481f-98ce-2017a58ffa9e
-- contract (CONTRACT-P7 7.1/7.2; ruling: integrator 2026-09-23 after codex closeout review): inproc/spawn >= 3 repeats per case, arms monolith+inproc+spawn+inproc-ra0 on every case, case set == the canonical 36 (39 CI split DirectVulkan - 3 exclusions): held
case verdict monolith(min..max) #sha inproc(min..max) #sha spawn(min..max) #sha ra0 i==s==m
OpenRA PASS 1.000000..1.000000 #1 1.000000..1.000000 #1 1.000000..1.000000 #1 1.000000 yes
minecraft-1.21.4-startup PASS 1.000000..1.000000 #1 1.000000..1.000000 #1 1.000000..1.000000 #1 1.000000 yes
minecraft-1.21.4-main-menu PASS 0.999696..0.999696 #1 0.999696..0.999696 #1 0.999696..0.999696 #1 0.999696 yes
minecraft-1.17-main-menu-854 PASS 0.999991..0.999991 #1 0.999991..0.999991 #1 0.999991..0.999991 #1 0.999991 yes
minecraft-1.21.4-in-world PASS 0.999996..0.999996 #1 0.999996..0.999996 #1 0.999996..0.999996 #1 0.999996 yes
minecraft-1.21.4-fabric-sodium-in-world PASS 0.999994..0.999994 #1 0.999994..0.999994 #1 0.999994..0.999994 #1 0.999994 yes
minecraft-1.21.4-fabric-common-mods-in-world PASS 0.999870..0.999870 #1 0.999870..0.999870 #1 0.999870..0.999870 #1 0.999870 yes
minecraft-1.21.4-fabric-common-mods-inventory PASS 0.999994..0.999994 #1 0.999994..0.999994 #1 0.999994..0.999994 #1 0.999994 yes
minecraft-1.21.4-fabric-rei-inventory PASS 0.999998..0.999998 #1 0.999998..0.999998 #1 0.999998..0.999998 #1 0.999998 yes
minecraft-1.21.4-fabric-xaero-minimap-in-world PASS 0.999999..0.999999 #1 0.999999..0.999999 #1 0.999999..0.999999 #1 0.999999 yes
minecraft-1.21.4-fabric-xaero-world-map-in-world PASS 1.000000..1.000000 #1 1.000000..1.000000 #1 1.000000..1.000000 #1 1.000000 yes
minecraft-1.21.4-fabric-journeymap-in-world PASS 0.999991..0.999991 #1 0.999991..0.999991 #1 0.999991..0.999991 #1 0.999991 yes
minecraft-1.21.4-fabric-modernui-inventory PASS 0.999996..0.999996 #1 0.999996..0.999996 #1 0.999996..0.999996 #1 0.999996 yes
minecraft-1.21.4-fabric-rei-inventory-normal-world PASS 0.999999..0.999999 #1 0.999999..0.999999 #1 0.999999..0.999999 #1 0.999999 yes
minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world PASS 0.999992..0.999992 #1 0.999992..0.999992 #1 0.999992..0.999992 #1 0.999992 yes
minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world PASS 0.999994..0.999994 #1 0.999994..0.999994 #1 0.999994..0.999994 #1 0.999994 yes
minecraft-1.21.4-fabric-journeymap-in-world-normal-world PASS 0.999988..0.999988 #1 0.999988..0.999988 #1 0.999988..0.999988 #1 0.999988 yes
minecraft-1.21.4-fabric-modernui-inventory-normal-world PASS 0.999998..0.999998 #1 0.999998..0.999998 #1 0.999998..0.999998 #1 0.999998 yes
minecraft-1.21.4-fabric-iris-bsl-in-world PASS 0.997010..0.997010 #1 0.997010..0.997010 #1 0.997010..0.997010 #1 0.997010 yes
minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world PASS 0.996631..0.996631 #1 0.996631..0.996631 #1 0.996631..0.996631 #1 0.996631 yes
minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world PASS 0.999455..0.999455 #1 0.999455..0.999455 #1 0.999455..0.999455 #1 0.999455 yes
minecraft-1.21.4-fabric-iris-sundial-lite-in-world PASS 0.996177..0.996178 #5 0.996176..0.996179 #3 0.996177..0.996179 #3 0.996177 no
nondeterministic monolith (5 distinct / 5 passes) -> distributional check (ID-P7-62)
monolith leave-one-out nearest: D_mm 3810 px / Delta_mm 34 (5 passes); split-to-nearest-monolith max 3928 px / delta 24 (6 passes; most px: spawn rep1 -> monolith rep5 3928 px / delta 24); bound 1.25 x 3810 + 32 = 4794.50 px / 1.50 x 34 + 8 = 59.00: within; max |ssim - monolith| 2.0e-06; decoder numpy+PIL
minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world PASS 0.999511..0.999511 #1 0.999511..0.999511 #1 0.999511..0.999511 #1 0.999511 yes
minecraft-1.21.4-fabric-iris-complementary-unbound-in-world PASS 0.999476..0.999476 #1 0.999476..0.999476 #1 0.999476..0.999476 #1 0.999476 yes
minecraft-1.21.4-fabric-iris-mellow-in-world PASS 0.999372..0.999372 #1 0.999372..0.999372 #1 0.999372..0.999372 #1 0.999372 yes
minecraft-1.21.4-fabric-iris-nostalgia-in-world PASS 0.999396..0.999396 #1 0.999396..0.999396 #1 0.999396..0.999396 #1 0.999396 yes
minecraft-1.21.4-fabric-iris-bliss-in-world PASS 0.999093..0.999093 #3 0.999093..0.999093 #3 0.999093..0.999093 #3 0.999093 no
nondeterministic monolith (3 distinct / 5 passes) -> distributional check (ID-P7-62)
monolith leave-one-out nearest: D_mm 3 px / Delta_mm 3 (5 passes); split-to-nearest-monolith max 9 px / delta 3 (6 passes; most px: inproc rep2 -> monolith rep1 9 px / delta 3); bound 1.25 x 3 + 32 = 35.75 px / 1.50 x 3 + 8 = 12.50: within; max |ssim - monolith| 8.0e-09; decoder numpy+PIL
minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world PASS 0.997492..0.997492 #1 0.997492..0.997492 #1 0.997492..0.997492 #1 0.997492 yes
minecraft-1.21.4-fabric-iris-iterationt-in-world PASS 0.999420..0.999420 #1 0.999420..0.999420 #1 0.999420..0.999420 #1 0.999420 yes
minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world PASS 0.998933..0.998933 #1 0.998933..0.998933 #1 0.998933..0.998933 #1 0.998933 yes
minecraft-1.21.4-fabric-iris-photon-v1.1-in-world PASS 0.999026..0.999026 #1 0.999026..0.999026 #1 0.999026..0.999026 #1 0.999026 yes
minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world PASS 0.996790..0.996794 #5 0.996791..0.996792 #3 0.996790..0.996793 #3 0.996792 no
nondeterministic monolith (5 distinct / 5 passes) -> distributional check (ID-P7-62)
monolith leave-one-out nearest: D_mm 8687 px / Delta_mm 50 (5 passes); split-to-nearest-monolith max 8768 px / delta 49 (6 passes; most px: spawn rep2 -> monolith rep5 8768 px / delta 41); bound 1.25 x 8687 + 32 = 10890.75 px / 1.50 x 50 + 8 = 83.00: within; max |ssim - monolith| 3.3e-06; decoder numpy+PIL
minecraft-1.21.1-neoforge-create-instancing-in-world PASS 0.999984..0.999984 #1 0.999984..0.999984 #1 0.999984..0.999984 #1 0.999984 yes
improved-transparency-minecraft-26.3 PASS 0.999600..0.999600 #1 0.999600..0.999600 #1 0.999600..0.999600 #1 0.999600 yes
minecraft-1.21.4-fabric-iris-iterationrp-in-world PASS 0.999258..0.999258 #1 0.999258..0.999258 #1 0.999258..0.999258 #1 0.999258 yes
minecraft-1.21.4-fabric-iris-bsl-esc-menu-854 PASS 0.999792..0.999792 #1 0.999792..0.999792 #1 0.999792..0.999792 #1 0.999792 yes
-- monolith determinism (ID-P7-62; same-session monolith passes): 33 case(s) bit-identical over >= 3 passes (strict clause), 3 nondeterministic -> distributional check (minecraft-1.21.4-fabric-iris-sundial-lite-in-world, minecraft-1.21.4-fabric-iris-bliss-in-world, minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world), 0 with < 3 passes (strict clause; the rule cannot apply)
-- RUN_AHEAD=0 control (required on every case, picture recorded, not gating): 36/36 case(s); proofs: run-ahead=0
-- arm identity: monolith 180/180 repeat(s) with no Config: IPC / MOBILEGL_TRANSPORT line; inproc+spawn transport-proof passed 216/216
-- cross-arm picture identity (NOT a per-case gate, ruling: integrator 2026-09-23; every mismatch needs a gate3/adjudication.tsv line, ruling: integrator 2026-09-23 after codex closeout review): 33/36 case(s) inproc==spawn==monolith; 0 mismatch(es), 0 unadjudicated; 3 nondeterministic-monolith case(s) compared by the ID-P7-62 distributional check instead
note: cross-arm minecraft-1.21.4-fabric-iris-sundial-lite-in-world: nondeterministic monolith (5 distinct pictures): the arms are compared by the ID-P7-62 distributional check above, not by gate3/adjudication.tsv
note: cross-arm minecraft-1.21.4-fabric-iris-bliss-in-world: nondeterministic monolith (3 distinct pictures): the arms are compared by the ID-P7-62 distributional check above, not by gate3/adjudication.tsv
note: cross-arm minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world: nondeterministic monolith (5 distinct pictures): the arms are compared by the ID-P7-62 distributional check above, not by gate3/adjudication.tsv
-- excluded (red on monolith, CONTRACT-P7 7.1): minecraft-1.21.1-neoforge-create-indirect-in-world, minecraft-1.21.11-main-menu, minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world
GATE3 PASS: 36/36 cases PASS
== BSL-ESC-MENU MOBILEGL_PIPE_STATS (maps lines / RSS peaks, wbuf[] gauges) ==
[inproc] rc=0 seconds=14 finished=2026-09-23T20:40:36-04:00
replay: passed=True ssim=0.999791667 sha=155dcdd13a24e0ee
pid comm role samples maps_peak VmRSS_peak_kB VmHWM_kB span_s
18486 ugin.p7w1.trace app 40 10393 822088 829204 14.8
3 wbuf[wbufs=28 wlivepk=1052 wdefpk=3308944 wdefsync=22]
[spawn] rc=0 seconds=14 finished=2026-09-23T20:40:55-04:00
replay: passed=True ssim=0.999791667 sha=155dcdd13a24e0ee
pid comm role samples maps_peak VmRSS_peak_kB VmHWM_kB span_s
20296 libMobileGLServ server 35 10330 360008 360008 14.3
18806 ugin.p7w1.trace app 36 4587 559252 561916 14.7
3 wbuf[wbufs=28 wlivepk=1052 wdefpk=3308944 wdefsync=22]
== CTS AFTER (inproc x DirectVulkan) vs BASE (monolith x DirectVulkan, p7w1) ==
gate (CONTRACT-P7 7.3 + ruling: integrator 2026-09-23 after codex closeout review):
rate = Pass/(Pass+Fail+L), L = the $BASE-Pass cases AFTER turned NotSupported or another non-Pass,
non-Fail status (a lost supported case is NON-PASS); other NS, warnings W and crashes X are not in the
denominator. Per block: delta >= -0.5 pp, 0 NEW crash, and every L case adjudicated in
cts/adjudication.tsv (else FAIL); an adjudicated one (A) is out of the block's rate, BASE and AFTER.
All five blocks required. '(literal)' = the contract's literal Pass/(Pass+Fail) delta and 'info' the
pre-ruling Pass/(results-NS), both over every compared case: printed for comparison, never gating.
block cases BASE P/F/NS/W/X rate AFTER P/F/NS/W/X L A rate delta pp (literal) crash regr fixed verdict
shader-image 125 63/6/56/0/0 91.304% 66/3/56/0/0 0 0 95.652% +4.348 (+4.348) 0 1 4 PASS
info literal Pass/(Pass+Fail): BASE 91.304% AFTER 95.652% delta +4.348 pp (not gating)
info pre-ruling Pass/(results-NS): BASE 91.304% AFTER 95.652% delta +4.348 pp (not gating)
! note: AFTER is 4.348 pp ABOVE BASE (not a regression; review the fixed list)
Pass->not KHR-GL46.shader_image_load_store.advanced-sync-vertexArray
not->Pass KHR-GL46.shader_image_load_store.advanced-sync-drawIndirect
not->Pass KHR-GL46.shader_image_load_store.advanced-sync-textureUpdate
not->Pass KHR-GL46.shader_image_load_store.incomplete_textures
not->Pass KHR-GL46.shader_image_load_store.non-layered_binding
ssbo 124 124/0/0/0/0 100.000% 124/0/0/0/0 0 0 100.000% +0.000 (+0.000) 0 0 0 PASS
info literal Pass/(Pass+Fail): BASE 100.000% AFTER 100.000% delta +0.000 pp (not gating)
info pre-ruling Pass/(results-NS): BASE 100.000% AFTER 100.000% delta +0.000 pp (not gating)
dsa 371 368/2/0/1/0 99.459% 368/2/0/1/0 0 0 99.459% +0.000 (+0.000) 0 0 0 PASS
info literal Pass/(Pass+Fail): BASE 99.459% AFTER 99.459% delta +0.000 pp (not gating)
info pre-ruling Pass/(results-NS): BASE 99.191% AFTER 99.191% delta +0.000 pp (not gating)
texture 1054 815/18/221/0/0 97.839% 823/10/221/0/0 0 0 98.800% +0.960 (+0.960) 0 1 9 PASS
info literal Pass/(Pass+Fail): BASE 97.839% AFTER 98.800% delta +0.960 pp (not gating)
info pre-ruling Pass/(results-NS): BASE 97.839% AFTER 98.800% delta +0.960 pp (not gating)
! note: AFTER is 0.960 pp ABOVE BASE (not a regression; review the fixed list)
Pass->not KHR-GL46.texture_border_clamp.Texture2DArrayCompressed
not->Pass KHR-GL46.texture_barrier.disjoint-texels
not->Pass KHR-GL46.texture_barrier.overlapping-texels
not->Pass KHR-GL46.texture_barrier.same-texel-rw
not->Pass KHR-GL46.texture_barrier.same-texel-rw-multipass
not->Pass KHR-GL46.texture_size_promotion.functional
not->Pass KHR-GL46.texture_swizzle.functional_format_idx_19_target_idx_7
not->Pass KHR-GL46.texture_swizzle.functional_format_idx_19_target_idx_8
not->Pass KHR-GL46.texture_swizzle.functional_format_idx_8_target_idx_7
not->Pass KHR-GL46.texture_swizzle.functional_format_idx_8_target_idx_8
packed-pixels 4732 4732/0/0/0/0 100.000% 4732/0/0/0/0 0 0 100.000% +0.000 (+0.000) 0 0 0 PASS
info literal Pass/(Pass+Fail): BASE 100.000% AFTER 100.000% delta +0.000 pp (not gating)
info pre-ruling Pass/(results-NS): BASE 100.000% AFTER 100.000% delta +0.000 pp (not gating)
ubo unrun (not in this glcts): the device glcts has no GTF module (ID-P7-16); recorded, not gated (GTF-GL46.gtf31.GL3Tests.uniform_buffer_object*)
CTS PASS
== TIMING ==
build-apk 88s 2026-09-23T19:35:24 -> 2026-09-23T19:36:52
build-host 120s 2026-09-23T19:36:52 -> 2026-09-23T19:38:52
build 215s 2026-09-23T19:35:17 -> 2026-09-23T19:38:52 all
preflight 49s 2026-09-23T19:38:52 -> 2026-09-23T19:39:41 reboot=1 pin=1
install 1s 2026-09-23T19:39:41 -> 2026-09-23T19:39:42 verify_only=0
gate3-monolith 1284s 2026-09-23T19:39:43 -> 2026-09-23T20:01:07 36 cases
gate3-inproc 929s 2026-09-23T20:01:08 -> 2026-09-23T20:16:37 36 cases
gate3-spawn 1063s 2026-09-23T20:16:37 -> 2026-09-23T20:34:20 36 cases
gate3-inproc-ra0 354s 2026-09-23T20:34:21 -> 2026-09-23T20:40:15 36 cases
gate3 3633s 2026-09-23T19:39:42 -> 2026-09-23T20:40:15 incomplete=0
bsl-inproc 14s 2026-09-23T20:40:18 -> 2026-09-23T20:40:32
bsl-spawn 14s 2026-09-23T20:40:38 -> 2026-09-23T20:40:52
bsl 40s 2026-09-23T20:40:16 -> 2026-09-23T20:40:56
cts-shader-image 8s 2026-09-23T20:40:59 -> 2026-09-23T20:41:07 limit=0
cts-ssbo 4s 2026-09-23T20:41:08 -> 2026-09-23T20:41:12 limit=0
cts-dsa 8s 2026-09-23T20:41:13 -> 2026-09-23T20:41:21 limit=0
cts-texture 107s 2026-09-23T20:41:22 -> 2026-09-23T20:43:09 limit=0
cts-packed-pixels 229s 2026-09-23T20:43:10 -> 2026-09-23T20:46:59 limit=0
cts 363s 2026-09-23T20:40:56 -> 2026-09-23T20:46:59 blocks=[shader-image ssbo dsa texture packed-pixels] limit=0 incomplete=0
gate3 monolith 36 case invocations, mean 35s, total 1267s
gate3 inproc 36 case invocations, mean 26s, total 918s
gate3 spawn 36 case invocations, mean 29s, total 1045s
gate3 inproc-ra0 36 case invocations, mean 9s, total 339s
WINDOW2 GATE3 PASS | CTS PASS -> exit 0
reduce-rc=0
@@ -0,0 +1,20 @@
build-apk 2026-09-23T15:53:11 2026-09-23T15:54:46 95
build-host 2026-09-23T15:54:46 2026-09-23T15:56:38 112
build 2026-09-23T15:53:10 2026-09-23T15:56:38 208 all
preflight 2026-09-23T15:56:38 2026-09-23T15:57:29 51 reboot=1 pin=1
install 2026-09-23T15:57:29 2026-09-23T15:57:31 2 verify_only=0
gate3-monolith 2026-09-23T15:57:31 2026-09-23T16:02:31 300 36 cases
gate3-inproc 2026-09-23T16:02:31 2026-09-23T16:17:53 922 36 cases
gate3-spawn 2026-09-23T16:17:54 2026-09-23T16:33:27 933 36 cases
gate3-inproc-ra0 2026-09-23T16:33:27 2026-09-23T16:39:20 353 36 cases
gate3 2026-09-23T15:57:31 2026-09-23T16:39:20 2509 incomplete=0
bsl-inproc 2026-09-23T16:39:23 2026-09-23T16:39:37 14
bsl-spawn 2026-09-23T16:39:43 2026-09-23T16:39:57 14
bsl 2026-09-23T16:39:21 2026-09-23T16:40:00 39
cts-shader-image 2026-09-23T16:40:03 2026-09-23T16:40:11 8 limit=0
cts-ssbo 2026-09-23T16:40:12 2026-09-23T16:40:16 4 limit=0
cts-dsa 2026-09-23T16:40:17 2026-09-23T16:40:26 9 limit=0
cts-texture 2026-09-23T16:40:27 2026-09-23T16:42:13 106 limit=0
cts-packed-pixels 2026-09-23T16:42:14 2026-09-23T16:46:03 229 limit=0
cts 2026-09-23T16:40:00 2026-09-23T16:46:03 363 blocks=[shader-image ssbo dsa texture packed-pixels] limit=0 incomplete=0
restore 2026-09-23T16:48:04 2026-09-23T16:48:12 8
1 build-apk 2026-09-23T15:53:11 2026-09-23T15:54:46 95
2 build-host 2026-09-23T15:54:46 2026-09-23T15:56:38 112
3 build 2026-09-23T15:53:10 2026-09-23T15:56:38 208 all
4 preflight 2026-09-23T15:56:38 2026-09-23T15:57:29 51 reboot=1 pin=1
5 install 2026-09-23T15:57:29 2026-09-23T15:57:31 2 verify_only=0
6 gate3-monolith 2026-09-23T15:57:31 2026-09-23T16:02:31 300 36 cases
7 gate3-inproc 2026-09-23T16:02:31 2026-09-23T16:17:53 922 36 cases
8 gate3-spawn 2026-09-23T16:17:54 2026-09-23T16:33:27 933 36 cases
9 gate3-inproc-ra0 2026-09-23T16:33:27 2026-09-23T16:39:20 353 36 cases
10 gate3 2026-09-23T15:57:31 2026-09-23T16:39:20 2509 incomplete=0
11 bsl-inproc 2026-09-23T16:39:23 2026-09-23T16:39:37 14
12 bsl-spawn 2026-09-23T16:39:43 2026-09-23T16:39:57 14
13 bsl 2026-09-23T16:39:21 2026-09-23T16:40:00 39
14 cts-shader-image 2026-09-23T16:40:03 2026-09-23T16:40:11 8 limit=0
15 cts-ssbo 2026-09-23T16:40:12 2026-09-23T16:40:16 4 limit=0
16 cts-dsa 2026-09-23T16:40:17 2026-09-23T16:40:26 9 limit=0
17 cts-texture 2026-09-23T16:40:27 2026-09-23T16:42:13 106 limit=0
18 cts-packed-pixels 2026-09-23T16:42:14 2026-09-23T16:46:03 229 limit=0
19 cts 2026-09-23T16:40:00 2026-09-23T16:46:03 363 blocks=[shader-image ssbo dsa texture packed-pixels] limit=0 incomplete=0
20 restore 2026-09-23T16:48:04 2026-09-23T16:48:12 8
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,130 @@
== GATE 3 (DirectVulkan x pbuffer; split repeat=3; tol |ssim-monolith| <= 0.0005) ==
-- session: boot_id 8e396037-0f88-4bda-88a9-22c8d326cc50; 864 record(s) stamped; reboot-clean: a562ade1-d4c8-48e6-a495-a6e46c381270 -> 8e396037-0f88-4bda-88a9-22c8d326cc50
case verdict monolith inproc(min..max) #sha spawn(min..max) #sha ra0 i==s==m
OpenRA PASS 1.000000 1.000000..1.000000 #1 1.000000..1.000000 #1 1.000000 yes
minecraft-1.21.4-startup PASS 1.000000 1.000000..1.000000 #1 1.000000..1.000000 #1 1.000000 yes
minecraft-1.21.4-main-menu PASS 0.999696 0.999696..0.999696 #1 0.999696..0.999696 #1 0.999696 yes
minecraft-1.17-main-menu-854 PASS 0.999991 0.999991..0.999991 #1 0.999991..0.999991 #1 0.999991 yes
minecraft-1.21.4-in-world PASS 0.999996 0.999996..0.999996 #1 0.999996..0.999996 #1 0.999996 yes
minecraft-1.21.4-fabric-sodium-in-world PASS 0.999994 0.999994..0.999994 #1 0.999994..0.999994 #1 0.999994 yes
minecraft-1.21.4-fabric-common-mods-in-world PASS 0.999870 0.999870..0.999870 #1 0.999870..0.999870 #1 0.999870 yes
minecraft-1.21.4-fabric-common-mods-inventory PASS 0.999994 0.999994..0.999994 #1 0.999994..0.999994 #1 0.999994 yes
minecraft-1.21.4-fabric-rei-inventory PASS 0.999998 0.999998..0.999998 #1 0.999998..0.999998 #1 0.999998 yes
minecraft-1.21.4-fabric-xaero-minimap-in-world PASS 0.999999 0.999999..0.999999 #1 0.999999..0.999999 #1 0.999999 yes
minecraft-1.21.4-fabric-xaero-world-map-in-world PASS 1.000000 1.000000..1.000000 #1 1.000000..1.000000 #1 1.000000 yes
minecraft-1.21.4-fabric-journeymap-in-world PASS 0.999991 0.999991..0.999991 #1 0.999991..0.999991 #1 0.999991 yes
minecraft-1.21.4-fabric-modernui-inventory PASS 0.999996 0.999996..0.999996 #1 0.999996..0.999996 #1 0.999996 yes
minecraft-1.21.4-fabric-rei-inventory-normal-world PASS 0.999999 0.999999..0.999999 #1 0.999999..0.999999 #1 0.999999 yes
minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world PASS 0.999992 0.999992..0.999992 #1 0.999992..0.999992 #1 0.999992 yes
minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world PASS 0.999994 0.999994..0.999994 #1 0.999994..0.999994 #1 0.999994 yes
minecraft-1.21.4-fabric-journeymap-in-world-normal-world PASS 0.999988 0.999988..0.999988 #1 0.999988..0.999988 #1 0.999988 yes
minecraft-1.21.4-fabric-modernui-inventory-normal-world PASS 0.999998 0.999998..0.999998 #1 0.999998..0.999998 #1 0.999998 yes
minecraft-1.21.4-fabric-iris-bsl-in-world PASS 0.997010 0.997010..0.997010 #1 0.997010..0.997010 #1 0.997010 yes
minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world PASS 0.996631 0.996631..0.996631 #1 0.996631..0.996631 #1 0.996631 yes
minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world PASS 0.999455 0.999455..0.999455 #1 0.999455..0.999455 #1 0.999455 yes
minecraft-1.21.4-fabric-iris-sundial-lite-in-world FAIL 0.996176 0.996177..0.996177 #3 0.996177..0.996179 #3 0.996178 no
! inproc repeats NOT bit-identical (3 distinct pictures)
! spawn repeats NOT bit-identical (3 distinct pictures)
minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world PASS 0.999511 0.999511..0.999511 #1 0.999511..0.999511 #1 0.999511 yes
minecraft-1.21.4-fabric-iris-complementary-unbound-in-world PASS 0.999476 0.999476..0.999476 #1 0.999476..0.999476 #1 0.999476 yes
minecraft-1.21.4-fabric-iris-mellow-in-world PASS 0.999372 0.999372..0.999372 #1 0.999372..0.999372 #1 0.999372 yes
minecraft-1.21.4-fabric-iris-nostalgia-in-world PASS 0.999396 0.999396..0.999396 #1 0.999396..0.999396 #1 0.999396 yes
minecraft-1.21.4-fabric-iris-bliss-in-world FAIL 0.999093 0.999093..0.999093 #3 0.999093..0.999093 #3 0.999093 no
! inproc repeats NOT bit-identical (3 distinct pictures)
! spawn repeats NOT bit-identical (3 distinct pictures)
minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world PASS 0.997492 0.997492..0.997492 #1 0.997492..0.997492 #1 0.997492 yes
minecraft-1.21.4-fabric-iris-iterationt-in-world PASS 0.999420 0.999420..0.999420 #1 0.999420..0.999420 #1 0.999420 yes
minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world PASS 0.998933 0.998933..0.998933 #1 0.998933..0.998933 #1 0.998933 yes
minecraft-1.21.4-fabric-iris-photon-v1.1-in-world PASS 0.999026 0.999026..0.999026 #1 0.999026..0.999026 #1 0.999026 yes
minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world FAIL 0.996789 0.996791..0.996793 #3 0.996789..0.996794 #3 0.996792 no
! inproc repeats NOT bit-identical (3 distinct pictures)
! spawn repeats NOT bit-identical (3 distinct pictures)
minecraft-1.21.1-neoforge-create-instancing-in-world PASS 0.999984 0.999984..0.999984 #1 0.999984..0.999984 #1 0.999984 i==s
improved-transparency-minecraft-26.3 PASS 0.999600 0.999600..0.999600 #1 0.999600..0.999600 #1 0.999600 yes
minecraft-1.21.4-fabric-iris-iterationrp-in-world PASS 0.999258 0.999258..0.999258 #1 0.999258..0.999258 #1 0.999258 yes
minecraft-1.21.4-fabric-iris-bsl-esc-menu-854 PASS 0.999792 0.999792..0.999792 #1 0.999792..0.999792 #1 0.999792 yes
-- RUN_AHEAD=0 control (recorded, not gating): 36 case(s); proofs: run-ahead=0
-- arm identity: monolith 36/36 repeat(s) with no Config: IPC / MOBILEGL_TRANSPORT line; inproc+spawn transport-proof passed 216/216
-- cross-arm picture identity (reported, NOT a gate; ruling: integrator 2026-09-23): 32/36 case(s) inproc==spawn==monolith
WARN cross-arm minecraft-1.21.4-fabric-iris-sundial-lite-in-world: monolith 289073841a92 | inproc 1019899f6b71,66a67e635c39,ba0391b47bb3 | spawn aab1bd7f1e62,b6494708fb82,f94ac71934c7
WARN cross-arm minecraft-1.21.4-fabric-iris-bliss-in-world: monolith deb24dc56df5 | inproc 53fb282d59b0,69bfb601350f,deb24dc56df5 | spawn 2fa134cb3ade,ca6930a1dc1b,deb24dc56df5
WARN cross-arm minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world: monolith 3a604ef7b0f4 | inproc 37fc3fb757fa,9e8b526a6667,a22692483a56 | spawn 3318432ed0ed,8e3403535843,9280af3f18f1
WARN cross-arm minecraft-1.21.1-neoforge-create-instancing-in-world: monolith 185d5eece9fe | inproc 48a4414a0a72 | spawn 48a4414a0a72
-- excluded (red on monolith, CONTRACT-P7 7.1): minecraft-1.21.1-neoforge-create-indirect-in-world, minecraft-1.21.11-main-menu, minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world
GATE3 FAIL: 33/36 cases PASS
== BSL-ESC-MENU MOBILEGL_PIPE_STATS (maps lines / RSS peaks, wbuf[] gauges) ==
[inproc] rc=0 seconds=14 finished=2026-09-23T16:39:40-04:00
replay: passed=True ssim=0.999791667 sha=155dcdd13a24e0ee
pid comm role samples maps_peak VmRSS_peak_kB VmHWM_kB span_s
20411 ugin.p7w1.trace app 40 12292 817244 817244 14.7
3 wbuf[wbufs=28 wlivepk=1052 wdefpk=3308944 wdefsync=22]
[spawn] rc=0 seconds=14 finished=2026-09-23T16:40:00-04:00
replay: passed=True ssim=0.999791667 sha=155dcdd13a24e0ee
pid comm role samples maps_peak VmRSS_peak_kB VmHWM_kB span_s
22218 libMobileGLServ server 35 10333 354680 354680 14.3
20682 ugin.p7w1.trace app 36 4588 548280 550736 14.7
3 wbuf[wbufs=28 wlivepk=1052 wdefpk=3308944 wdefsync=22]
== CTS AFTER (inproc x DirectVulkan) vs BASE (monolith x DirectVulkan, p7w1) ==
gate (CONTRACT-P7 7.3): rate = Pass/(Pass+Fail) [NS, warnings W and crashes X are not in the denominator];
per block delta >= -0.5 pp and 0 NEW crash; all five blocks required. 'info' = the pre-ruling
Pass/(results-NS) delta (its rates on each block's 'info' line), for comparison only, never gating.
block cases BASE P/F/NS/W/X rate AFTER P/F/NS/W/X rate delta pp (info) crash regr fixed verdict
shader-image 125 63/6/56/0/0 91.304% 66/3/56/0/0 95.652% +4.348 (+4.348) 0 1 4 PASS
info pre-ruling Pass/(results-NS): BASE 91.304% AFTER 95.652% delta +4.348 pp (not gating)
! note: AFTER is 4.348 pp ABOVE BASE (not a regression; review the fixed list)
Pass->not KHR-GL46.shader_image_load_store.advanced-sync-vertexArray
not->Pass KHR-GL46.shader_image_load_store.advanced-sync-drawIndirect
not->Pass KHR-GL46.shader_image_load_store.advanced-sync-textureUpdate
not->Pass KHR-GL46.shader_image_load_store.incomplete_textures
not->Pass KHR-GL46.shader_image_load_store.non-layered_binding
ssbo 124 124/0/0/0/0 100.000% 124/0/0/0/0 100.000% +0.000 (+0.000) 0 0 0 PASS
info pre-ruling Pass/(results-NS): BASE 100.000% AFTER 100.000% delta +0.000 pp (not gating)
dsa 371 368/2/0/1/0 99.459% 368/2/0/1/0 99.459% +0.000 (+0.000) 0 0 0 PASS
info pre-ruling Pass/(results-NS): BASE 99.191% AFTER 99.191% delta +0.000 pp (not gating)
texture 1054 815/18/221/0/0 97.839% 823/10/221/0/0 98.800% +0.960 (+0.960) 0 1 9 PASS
info pre-ruling Pass/(results-NS): BASE 97.839% AFTER 98.800% delta +0.960 pp (not gating)
! note: AFTER is 0.960 pp ABOVE BASE (not a regression; review the fixed list)
Pass->not KHR-GL46.texture_border_clamp.Texture2DArrayCompressed
not->Pass KHR-GL46.texture_barrier.disjoint-texels
not->Pass KHR-GL46.texture_barrier.overlapping-texels
not->Pass KHR-GL46.texture_barrier.same-texel-rw
not->Pass KHR-GL46.texture_barrier.same-texel-rw-multipass
not->Pass KHR-GL46.texture_size_promotion.functional
not->Pass KHR-GL46.texture_swizzle.functional_format_idx_19_target_idx_7
not->Pass KHR-GL46.texture_swizzle.functional_format_idx_19_target_idx_8
not->Pass KHR-GL46.texture_swizzle.functional_format_idx_8_target_idx_7
not->Pass KHR-GL46.texture_swizzle.functional_format_idx_8_target_idx_8
packed-pixels 4732 4732/0/0/0/0 100.000% 4732/0/0/0/0 100.000% +0.000 (+0.000) 0 0 0 PASS
info pre-ruling Pass/(results-NS): BASE 100.000% AFTER 100.000% delta +0.000 pp (not gating)
ubo unrun (not in this glcts): the device glcts has no GTF module (ID-P7-16); recorded, not gated (GTF-GL46.gtf31.GL3Tests.uniform_buffer_object*)
CTS PASS
== TIMING ==
build-apk 95s 2026-09-23T15:53:11 -> 2026-09-23T15:54:46
build-host 112s 2026-09-23T15:54:46 -> 2026-09-23T15:56:38
build 208s 2026-09-23T15:53:10 -> 2026-09-23T15:56:38 all
preflight 51s 2026-09-23T15:56:38 -> 2026-09-23T15:57:29 reboot=1 pin=1
install 2s 2026-09-23T15:57:29 -> 2026-09-23T15:57:31 verify_only=0
gate3-monolith 300s 2026-09-23T15:57:31 -> 2026-09-23T16:02:31 36 cases
gate3-inproc 922s 2026-09-23T16:02:31 -> 2026-09-23T16:17:53 36 cases
gate3-spawn 933s 2026-09-23T16:17:54 -> 2026-09-23T16:33:27 36 cases
gate3-inproc-ra0 353s 2026-09-23T16:33:27 -> 2026-09-23T16:39:20 36 cases
gate3 2509s 2026-09-23T15:57:31 -> 2026-09-23T16:39:20 incomplete=0
bsl-inproc 14s 2026-09-23T16:39:23 -> 2026-09-23T16:39:37
bsl-spawn 14s 2026-09-23T16:39:43 -> 2026-09-23T16:39:57
bsl 39s 2026-09-23T16:39:21 -> 2026-09-23T16:40:00
cts-shader-image 8s 2026-09-23T16:40:03 -> 2026-09-23T16:40:11 limit=0
cts-ssbo 4s 2026-09-23T16:40:12 -> 2026-09-23T16:40:16 limit=0
cts-dsa 9s 2026-09-23T16:40:17 -> 2026-09-23T16:40:26 limit=0
cts-texture 106s 2026-09-23T16:40:27 -> 2026-09-23T16:42:13 limit=0
cts-packed-pixels 229s 2026-09-23T16:42:14 -> 2026-09-23T16:46:03 limit=0
cts 363s 2026-09-23T16:40:00 -> 2026-09-23T16:46:03 blocks=[shader-image ssbo dsa texture packed-pixels] limit=0 incomplete=0
gate3 monolith 36 case invocations, mean 8s, total 287s
gate3 inproc 36 case invocations, mean 25s, total 904s
gate3 spawn 36 case invocations, mean 26s, total 923s
gate3 inproc-ra0 36 case invocations, mean 9s, total 340s
WINDOW2 GATE3 FAIL | CTS PASS -> exit 1
reduce-rc=1