From c7a14ed790f02a4e0832dd8691be458c4986d13d Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Tue, 29 Sep 2026 22:37:49 -0400 Subject: [PATCH] [Test] (P8-F): give the mip shader-shape decline its own .ShaderMipDecline. tail - spawn_lane_parity.py holds each server-knob tail to exactly one case, and sharing .ShaderMip1. named two --- MobileGL/MG_IntegrationTest/CMakeLists.txt | 6 +++--- docs/Disaggregated/notes/p8/F.md | 6 ++++-- scripts/ci/spawn_lane_parity.py | 4 +++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/MobileGL/MG_IntegrationTest/CMakeLists.txt b/MobileGL/MG_IntegrationTest/CMakeLists.txt index 13a8723c..387da33c 100644 --- a/MobileGL/MG_IntegrationTest/CMakeLists.txt +++ b/MobileGL/MG_IntegrationTest/CMakeLists.txt @@ -3359,15 +3359,15 @@ if (MOBILEGL_BUILD_DISAGGREGATED) # (WireDeclines.def MipmapShaderFormatOrShape), as the monolith arm's GenerateMipmap already # declines. The shape is a 3D chain with the native blit forced off - neither shader mip arm # takes it - and the knob is read BY THE SERVER, so split + spawn only (the ShaderMip entries' - # tcp note below). The `.ShaderMip1.` tail is already MAGMA_SERVER_ENV_KNOB_NO_TCP in - # scripts/ci/spawn_lane_parity.py. Environment: the Fm lane's flavour plus the arm. + # tcp note below). Its own `.ShaderMipDecline.` tail is in MAGMA_SERVER_ENV_KNOB_NO_TCP + # (scripts/ci/spawn_lane_parity.py: one tail per knob case). The Fm lane's flavour plus the arm. foreach(mglItestArm IN ITEMS Split Spawn) mgl_itest_magma_arm_shape(${mglItestArm}) mgl_itest_join_environment(mglItestP8fMipEnvironment "MOBILEGL_BACKEND_TYPE=DirectVulkan" "MOBILEGL_ITEST_REQUIRE_GPU=1" "MGITEST_SPLIT_LANE=1" ${MGL_ITEST_CAPABILITY_ENV} ${MGL_ITEST_VULKAN_ENV} ${mglItestArmTransportEnv}) gtest_discover_tests(MobileGLIntegrationTest - TEST_PREFIX "DirectVulkan.${mglItestArm}.ShaderMip1." + TEST_PREFIX "DirectVulkan.${mglItestArm}.ShaderMipDecline." TEST_FILTER "F1WireScenario.GenerateMipmapWithoutAShaderArmShapeDeclinesAndKeepsTheSession" DISCOVERY_TIMEOUT 30 PROPERTIES LABELS "${mglItestMagmaLabels}" TIMEOUT ${MGL_ITEST_TIMEOUT} diff --git a/docs/Disaggregated/notes/p8/F.md b/docs/Disaggregated/notes/p8/F.md index 918757f1..12c34e1e 100644 --- a/docs/Disaggregated/notes/p8/F.md +++ b/docs/Disaggregated/notes/p8/F.md @@ -38,11 +38,13 @@ | 项 | 门 | 变异 | 载体 | 观测到的红 | |---|---|---|---|---| | 1 | `PeerLatchTest` 行 `MultiDrawInstanced` 期望 `Fatal{ProtocolCorruption, "MultiDrawArrays+INSTANCED"}` | 闩的族改回 `UnmigratedVerb` | `FuzzArm2/PeerLatchSite.*/MultiDrawInstanced`、`PeerLatch.SiteMap` | 两例红:首行 `Fatal{UnmigratedVerb, ...}` 不含期望标记;站点图报该站点未映射 | -| 3 | `F1WireScenario.GenerateMipmapWithoutAShaderArmShapeDeclinesAndKeepsTheSession`(3D RGBA8,`MGITEST_MAGMA_FORCE_SHADER_MIPMAP=1`) | 拒绝改回 `MagmaWireFatal` | `DirectVulkan.{Split,Spawn}.ShaderMip1.` 两例 | 两例 `Subprocess aborted`,server 日志 `Fatal{UnmigratedVerb, "Magma:mipmap-shader-format-or-shape format=37 extent=4x4x4 ..."}` | +| 3 | `F1WireScenario.GenerateMipmapWithoutAShaderArmShapeDeclinesAndKeepsTheSession`(3D RGBA8,`MGITEST_MAGMA_FORCE_SHADER_MIPMAP=1`) | 拒绝改回 `MagmaWireFatal` | `DirectVulkan.{Split,Spawn}.ShaderMipDecline.` 两例(当时前缀为 `.ShaderMip1.`,后改名,见下) | 两例 `Subprocess aborted`,server 日志 `Fatal{UnmigratedVerb, "Magma:mipmap-shader-format-or-shape format=37 extent=4x4x4 ..."}` | | 3 | 同上(前提) | 无(新用例落在未改的基线代码上) | 同上 | 同样两例 abort:前提成立 | +| 3 | `spawn_lane_parity.py` 的 `.ShaderMipDecline.` 例外行 | 删掉该行 | `spawn_lane_parity.py build-split` | rc 1:`the tcp arm does not match the split arm: missing=['DirectVulkan.ShaderMipDecline.F1WireScenario.GenerateMipmapWithoutAShaderArmShapeDeclinesAndKeepsTheSession']` | | 2 | 普查读数 | — | `fatal_census.py` | 无变化:该脚本不计阶段标签(见上) | -- 新用例只登记 split + spawn:knob 由 server 读,tcp fixture 带不过去;`.ShaderMip1.` 尾已在 `spawn_lane_parity.py:130` 的 `MAGMA_SERVER_ENV_KNOB_NO_TCP` 中。登记在 `MobileGL/MG_IntegrationTest/CMakeLists.txt:3358-3376`。 +- 新用例只登记 split + spawn:knob 由 server 读,tcp fixture 带不过去。登记在 `MobileGL/MG_IntegrationTest/CMakeLists.txt:3358-3376`,前缀 `.ShaderMipDecline.`。 +- 该尾自成一行加进 `MAGMA_SERVER_ENV_KNOB_NO_TCP`(`spawn_lane_parity.py:141-143`):脚本要求每个尾恰好命中一个用例,借用 `.ShaderMip1.` 会命中两个,门禁时 parity 报 1 个错,已改。 - Espryt 不涉及第 2、3 项(Magma 专属);新用例在 DirectGLES 上按后端名跳过。第 1 项在后端无关的 applier 里。 ## 发现但未修 diff --git a/scripts/ci/spawn_lane_parity.py b/scripts/ci/spawn_lane_parity.py index cecd9c7d..f442a506 100644 --- a/scripts/ci/spawn_lane_parity.py +++ b/scripts/ci/spawn_lane_parity.py @@ -138,7 +138,9 @@ MAGMA_SERVER_ENV_KNOB_NO_TCP = (".ShaderMip1.", ".ShaderMip2.", ".DepthMip.", ".Reclaim.MagmaWireReclaimScenario.ADrawAfterTheEarlyReclaimFollowsTheNewStoreNotTheMemoizedHandle", ".Reclaim.MagmaWireReclaimScenario.DescriptorSetsRewindInsideOneLongFrameAfterTheirSubmitRetires") + tuple( f".PrimGenReroute.PrimitivesGeneratedNoXfbScenario.{case}" for case in PRIMGEN_REROUTE_CASES) + tuple( - f".SplitRecording64.OversizedRecordingSplitScenario.{case}" for case in SPLIT_RECORDING_CASES) + f".SplitRecording64.OversizedRecordingSplitScenario.{case}" for case in SPLIT_RECORDING_CASES) + ( + # P8-F: the mip shader-shape decline, forced by MGITEST_MAGMA_FORCE_SHADER_MIPMAP (server-read). + ".ShaderMipDecline.",) # THE MIRROR SHAPE - entries that exist on tcp ALONE, by construction. Each tail must match at least