diff --git a/MobileGL/MG_IntegrationTest/CMakeLists.txt b/MobileGL/MG_IntegrationTest/CMakeLists.txt index a4907006..a7aa5d96 100644 --- a/MobileGL/MG_IntegrationTest/CMakeLists.txt +++ b/MobileGL/MG_IntegrationTest/CMakeLists.txt @@ -2101,6 +2101,17 @@ if (MOBILEGL_BUILD_DISAGGREGATED) RESOURCE_LOCK mobilegl-tcp) # D2: the texture-view opt-in on both TCP lists too, so the three shared GLES split arms # carry one configuration. See the note over MGL_ITEST_GLES_SPLIT_ENVIRONMENT. + # + # THE TWO TCP LISTS ARE THE CLIENT'S HALF ONLY, and the two arms differ in whether that is + # enough. The loopback Tcp arm's server is started by the TcpServer.Start fixture below, + # which this package also gives the knob - so both halves have it. The TcpDevice arm's + # server is a supervisor already running ON A DEVICE, started outside this build by whoever + # set MOBILEGL_ITEST_TCP_DEVICE_ENDPOINT; nothing here can reach its environment. If that + # supervisor was started without MOBILEGL_ESPRYT_ENABLE_TEXTURE_VIEW=1 it will withhold + # GL_ARB_texture_view and every texture-view case in the TcpDevice arm will GREEN-SKIP, + # exactly as the loopback arm did before the fixture entry got the knob. The arm is + # unconfigured in this repo (the endpoint defaults empty, so the arm is not created at all), + # so this is a note for whoever configures it rather than a defect today. mgl_itest_join_environment(MGL_ITEST_GLES_TCP_ENVIRONMENT "MOBILEGL_BACKEND_TYPE=DirectGLES" "MOBILEGL_TRANSPORT=spawn" "MOBILEGL_IPC_CONTROL=${MOBILEGL_ITEST_TCP_ENDPOINT}" "MOBILEGL_IPC_DATA=stream" @@ -2759,12 +2770,13 @@ if (MOBILEGL_BUILD_DISAGGREGATED) UniformInitializerScenario # 3 cases Glsl420DeclarationScenario # 6 cases IoBlockNameCollisionScenario) # 2 cases + # NO PER-SCENARIO FILTER INDIRECTION, unlike the d1 and i1 blocks above: every scenario here + # is registered whole, because the census found no case in any of them that needs excluding. + # The d1/i1 shape (a MGL_SPLIT__FILTER_ variable consulted per entry) is what + # to reach for the day one does; carrying an `if(DEFINED ...)` that is never true today would + # be a branch no run takes. foreach(mglItestD2Scenario IN LISTS MGL_SPLIT_D2_SCENARIOS) - if(DEFINED MGL_SPLIT_D2_FILTER_${mglItestD2Scenario}) - mgl_itest_register_split_arms("${MGL_SPLIT_D2_FILTER_${mglItestD2Scenario}}" "") - else() - mgl_itest_register_split_arms("${mglItestD2Scenario}.*" "") - endif() + mgl_itest_register_split_arms("${mglItestD2Scenario}.*" "") endforeach() # ProgramPipelineScenario BEYOND *StorageBlock*: the i1 block above already registers the two diff --git a/docs/Disaggregated/notes/p34b/split-scenario-census.md b/docs/Disaggregated/notes/p34b/split-scenario-census.md index 7e73120c..9f894f0a 100644 --- a/docs/Disaggregated/notes/p34b/split-scenario-census.md +++ b/docs/Disaggregated/notes/p34b/split-scenario-census.md @@ -18,9 +18,26 @@ Package D1 owns `PixelStoreSweep`, `DepthStencilReadbackMatrix`, `PackedWordRead | texture family | 7 scenarios | ~~1 case~~ **0** (package D3 fixed the defect) | 0 | | program family | 5 scenarios | 9 cases (one scenario's remainder) | 0 | -**12 scenarios newly carry `integration-split` / `-spawn` / `-tcp` entries**, 71 cases per arm. -Plus `TextureViewAliasScenario` (this package's own, ~~3 of 4 cases~~ **all 4 since D3**). The -split-arm registration count recorded for the tier-2 Magma replay went from 33 to 46. +**12 scenarios newly carry `integration-split` / `-spawn` / `-tcp` entries**, **72 cases per +arm** (the table below sums to 72; an earlier draft said 71 and was simply wrong). With +`TextureViewAliasScenario` (this package's own; 3 of its 4 cases registered by D2, **all 4 since +D3**) and the `TextureUploadShape` gate's one case, this package adds **76 new +`DirectGLES.{Split,Spawn,Tcp}.` entries per arm** — 72 + 3 + 1 — counted from the generated +ctest include files against the pinned `~/w7/p7-before/ctest-names-split.txt` baseline (D3's +un-exclusion makes it 77 on the integration tree, one per arm). + +The raw diff against that baseline reports **77** per arm at D2's head, not 76. The extra one is +`DirectGLES..Ct.CtWireScenario.TheServerPublishesTheResidentSubDataCapabilityFromItsOwnTable`, +registered by the pre-existing `foreach(ctCase ...)` loop and added by `b56d70177` ("the server +publishes kCapResidentSubData off its own wire resource table") — one of the five P7 commits +between the `p7-before` baseline and this package's base. No file under `CtWireScenario` is +touched here. + +An earlier draft of this note said "+37 entries per split arm". That number came from +differencing against `~/w7/pipe/build-split`, which is the integrator's LIVE build directory and +had already moved past this package's base (`7ed5da52` -> `8c5dd6fc`); it matched nothing and is +withdrawn. The split-arm registration count recorded for the tier-2 Magma replay went from 33 to +46. **Updated by package D3** (`notes/p34b/espryt-d3.md`): the one excluded case is the only row of this census that has moved, and it moved because the defect behind it was fixed rather than @@ -126,10 +143,32 @@ all in flight. A red there would be wave 2's to fix and would block this package reasons it cannot act on. The tier-2 replay is exactly the right instrument for that: it produces the red list without making it a gate. -## What was re-run after +## Gates -* `scripts/ci/spawn_lane_parity.py build-split` -* the G14 name-only-grows check -* `ctest -L unit` +Taken on `~/w7/p7-espryt-d2/build-split` (Release, clang, lavapipe ICD) and +`~/w7/p7-espryt-d2/build-linux` (the pull configuration) at the head of this package, after the +review rework. Lane totals are whole-label runs, not filtered subsets. -See `espryt-d2.md` for the readings. +| gate | reading | +|---|---| +| `ctest -L unit` | 2418 / 2418 | +| `ctest -L integration-split` | 263 / 263 | +| `ctest -L integration-spawn` | 179 / 179 | +| `ctest -L integration-tcp` | 182 / 182 | +| `integration-gpu`, DirectGLES monolith, the touched families | 89 / 89 | +| G1 pull `.text` | 10822147 = `0xa52203` | +| G1 `nm --defined-only` | identical to `~/w7/p7-before/pull-syms.txt`, 30570 symbols | +| G14 ctest name set | 4155 -> 6615; 0 names removed by this package | +| `scripts/ci/spawn_lane_parity.py build-split` | rc 0 | +| `scripts/ci/fatal_census.py` | rc 0, 0 unmarked | +| `scripts/ci/espryt_memo_purity.py --self-test` | PASS, 5 families anchored, 1 allow entry, all consulted | +| `scripts/ci/link_seam_purity.py --self-test` | PASS | +| `scripts/link_ratchet.py --self-test` | OK | + +The one name the G14 diff reports as removed, +`CapsMirrorTest.APlaceholderMirrorConsumesNothing`, is absent from the base build too and is +referenced only by a comment in `RemoteClientTest.cpp:590` explaining that it was retired; it +predates this package's base. + +Per-slice readings, red-once transcripts and the two findings this package made are in +`espryt-d2.md`.