From 95ecdd21e55dc4382fdccec4618960d87250da20 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Sun, 18 Oct 2026 01:32:41 -0400 Subject: [PATCH] [Test] (docs/ci, MG_IntegrationTest, MG_IntegrationTest/Harness, MG_IntegrationTest/Scenarios, scripts/data): check the push control across a Present and only where it can run - the forgotten mapping's next-frame write must also miss the server; the re-announce must ship the latest write - the case is left out of the ambient, Verify, VerifySplit and Magma Full registrations, where it only skipped - DirectVulkan.Split pins MOBILEGL_IPC_ADOPT_TIER=2 for it, so its emulated declaration holds --- MobileGL/MG_IntegrationTest/CMakeLists.txt | 24 ++++++++++++------- .../Harness/SplitLogPaths.cmake.in | 7 +++++- .../PersistentCoherentMapScenario.cpp | 21 ++++++++++++---- docs/ci/ci-cleanup-log.md | 2 +- scripts/data/skip_census_baseline.json | 22 ----------------- 5 files changed, 39 insertions(+), 37 deletions(-) diff --git a/MobileGL/MG_IntegrationTest/CMakeLists.txt b/MobileGL/MG_IntegrationTest/CMakeLists.txt index 525c6118..9ef003cc 100644 --- a/MobileGL/MG_IntegrationTest/CMakeLists.txt +++ b/MobileGL/MG_IntegrationTest/CMakeLists.txt @@ -794,11 +794,17 @@ set(MGL_ITEST_MONOLITH_MECHANISM_FILTER # would be a name in a list. set(MGL_ITEST_GLES_VIEW_FILTER "TextureViewScenario.*:TextureViewAliasScenario.*:F1WireScenario.ComputeImageStoreThroughViewPreservesOtherRootLayer:F1WireScenario.TextureViewClearTargetsItsRootMipAndLayer:F1WireScenario.GenerateMipmapThroughViewKeepsOwnerLevelsAndLayersOutsideItsWindow:InvalidImageUnitScenario.ALevelPastATextureViewsWindowReadsZero") +# Cases that run only in the split-arm entries Harness/SplitLogPaths.cmake.in declares a lane +# for, and skip by construction anywhere else (no split transport, no declared arm). They are +# left out of the ambient, verify and whole-binary Magma registrations for the reason above: +# there they would green-skip on every run. +set(MGL_ITEST_SPLIT_ARM_ONLY_FILTER + "PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer") -mgl_itest_lane("DirectGLES." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}:${MGL_ITEST_GLES_VIEW_FILTER}" +mgl_itest_lane("DirectGLES." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}:${MGL_ITEST_GLES_VIEW_FILTER}:${MGL_ITEST_SPLIT_ARM_ONLY_FILTER}" ENV "${MGL_ITEST_GLES_ENVIRONMENT}") -mgl_itest_lane("DirectVulkan." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}" +mgl_itest_lane("DirectVulkan." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}:${MGL_ITEST_SPLIT_ARM_ONLY_FILTER}" ENV "${MGL_ITEST_VULKAN_ENVIRONMENT}") # ScenarioIsolationScenario's two cases in ONE process: the first leaves a deleted program current @@ -1328,12 +1334,13 @@ if (MOBILEGL_PIPE_VERIFY) # from the live context at the verb boundary - which is what "the 742 integration entries # prove push equals pull" means. Labelled integration-gpu as well so a verify build's # `ctest -L integration-gpu` still describes the whole registration set. - mgl_itest_lane("DirectGLES.Verify." "-${MGL_ITEST_GLES_VIEW_FILTER}" + mgl_itest_lane("DirectGLES.Verify." "-${MGL_ITEST_GLES_VIEW_FILTER}:${MGL_ITEST_SPLIT_ARM_ONLY_FILTER}" LABELS "integration-gpu\;integration-verify\;integration-monolith-control" TIMEOUT ${MGL_ITEST_VERIFY_TIMEOUT} ENV "${MGL_ITEST_GLES_VERIFY_ENVIRONMENT}") mgl_itest_lane("DirectGLES.Verify." "${MGL_ITEST_GLES_VIEW_FILTER}" LABELS "integration-verify\;integration-monolith-control" TIMEOUT ${MGL_ITEST_VERIFY_TIMEOUT} ENV "${MGL_ITEST_GLES_VERIFY_ENVIRONMENT}\;MOBILEGL_ESPRYT_ENABLE_TEXTURE_VIEW=1") gtest_discover_tests(MobileGLIntegrationTest TEST_PREFIX "DirectVulkan.Verify." + TEST_FILTER "-${MGL_ITEST_SPLIT_ARM_ONLY_FILTER}" DISCOVERY_TIMEOUT 30 PROPERTIES LABELS "integration-gpu\;integration-verify\;integration-monolith-control" @@ -3546,8 +3553,9 @@ endif() # Whole integration binary on Magma split (informational, no CI gate) # ===================================================================================== # The set the monolith `DirectVulkan.` arm runs (all but MGL_ITEST_MONOLITH_MECHANISM_FILTER, -# oracles that must not inherit a transport), minus DualBlockScenario (its own lane). No -# MGITEST_SPLIT_LANE: query-only cases emit no record (ARCHITECTURE.md §16.1). Private log paths +# oracles that must not inherit a transport, and MGL_ITEST_SPLIT_ARM_ONLY_FILTER), minus +# DualBlockScenario (its own lane). No MGITEST_SPLIT_LANE: query-only cases emit no record +# (ARCHITECTURE.md §16.1). Private log paths # come through MGL_MAGMA_FULL_TEST_LISTS, not MGL_SPLIT_ARM_TEST_LISTS, whose entries also get # lane markers that would arm unrelated oracles here; SplitLogPaths.cmake.in walks both. if (MOBILEGL_BUILD_DISAGGREGATED) @@ -3558,7 +3566,7 @@ if (MOBILEGL_BUILD_DISAGGREGATED) mgl_itest_join_environment(mglItestMagmaFullEnvironment "MOBILEGL_BACKEND_TYPE=DirectVulkan" "MOBILEGL_ITEST_REQUIRE_GPU=1" ${MGL_ITEST_CAPABILITY_ENV} ${MGL_ITEST_VULKAN_ENV} ${mglItestArmTransportEnv}) - mgl_itest_lane("DirectVulkan.${mglItestArm}.Full." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}:DualBlockScenario.*" + mgl_itest_lane("DirectVulkan.${mglItestArm}.Full." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}:DualBlockScenario.*:${MGL_ITEST_SPLIT_ARM_ONLY_FILTER}" LABELS "integration-magma-full-${mglItestArmLower}" TEST_LIST "MGL_MAGMA_FULL_TESTS_${mglItestArmUpper}" PROPERTIES ${mglItestArmProperties} ENV "${mglItestMagmaFullEnvironment}") list(APPEND MGL_MAGMA_FULL_TEST_LISTS "MGL_MAGMA_FULL_TESTS_${mglItestArmUpper}") endforeach() @@ -3602,11 +3610,11 @@ if (MOBILEGL_BUILD_DISAGGREGATED AND MOBILEGL_PIPE_VERIFY) # MOBILEGL_ESPRYT_ENABLE_TEXTURE_VIEW=1 or DirectGLES withholds GL_ARB_texture_view and they # green-skip, so they are subtracted from the first registration and re-registered with the # knob. "Every existing verify case on the split arm" is false without the second block. - mgl_itest_lane("DirectGLES.VerifySplit." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}:${MGL_ITEST_GLES_VIEW_FILTER}:DualBlockScenario.*:${MGL_ITEST_VERIFY_SPLIT_GLES_MAGMA_DECLINE_FILTER}" + mgl_itest_lane("DirectGLES.VerifySplit." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}:${MGL_ITEST_GLES_VIEW_FILTER}:DualBlockScenario.*:${MGL_ITEST_VERIFY_SPLIT_GLES_MAGMA_DECLINE_FILTER}:${MGL_ITEST_SPLIT_ARM_ONLY_FILTER}" LABELS "integration-verify-split" TIMEOUT ${MGL_ITEST_VERIFY_TIMEOUT} TEST_LIST MGL_VERIFY_SPLIT_TESTS_GLES ENV "${MGL_ITEST_GLES_VERIFY_SPLIT_ENVIRONMENT}") mgl_itest_lane("DirectGLES.VerifySplit." "${MGL_ITEST_GLES_VIEW_FILTER}" LABELS "integration-verify-split" TIMEOUT ${MGL_ITEST_VERIFY_TIMEOUT} TEST_LIST MGL_VERIFY_SPLIT_TESTS_GLES_VIEW ENV "${MGL_ITEST_GLES_VERIFY_SPLIT_ENVIRONMENT}\;MOBILEGL_ESPRYT_ENABLE_TEXTURE_VIEW=1") - mgl_itest_lane("DirectVulkan.VerifySplit." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}:DualBlockScenario.*" + mgl_itest_lane("DirectVulkan.VerifySplit." "-${MGL_ITEST_MONOLITH_MECHANISM_FILTER}:DualBlockScenario.*:${MGL_ITEST_SPLIT_ARM_ONLY_FILTER}" LABELS "integration-verify-split" TIMEOUT ${MGL_ITEST_VERIFY_TIMEOUT} TEST_LIST MGL_VERIFY_SPLIT_TESTS_VULKAN ENV "${MGL_ITEST_VULKAN_VERIFY_SPLIT_ENVIRONMENT}") list(APPEND MGL_VERIFY_SPLIT_TEST_LISTS MGL_VERIFY_SPLIT_TESTS_GLES MGL_VERIFY_SPLIT_TESTS_GLES_VIEW MGL_VERIFY_SPLIT_TESTS_VULKAN) diff --git a/MobileGL/MG_IntegrationTest/Harness/SplitLogPaths.cmake.in b/MobileGL/MG_IntegrationTest/Harness/SplitLogPaths.cmake.in index 84187fde..c13fd72b 100644 --- a/MobileGL/MG_IntegrationTest/Harness/SplitLogPaths.cmake.in +++ b/MobileGL/MG_IntegrationTest/Harness/SplitLogPaths.cmake.in @@ -26,8 +26,13 @@ foreach(listName IN ITEMS @MGL_SPLIT_ARM_TEST_LISTS@) set_tests_properties("${entry}" PROPERTIES ENVIRONMENT "MGITEST_PMAP_LANE=1;MGITEST_PERSISTENT_MAP_ARM=emulated;MOBILEGL_PIPE_STATS=1;MOBILEGL_PIPE_STATS_PERIOD=1") elseif(entry MATCHES "PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer$") - # The case takes the push away, which only the emulated arm has (R-6: every split arm). + # The case takes the push away, which only the emulated arm has. Every split arm + # emulates by default except Magma in process, which is granted T0 and adopts, so + # that entry asks for T2 by name, as the Magma buffer lanes do. set_tests_properties("${entry}" PROPERTIES ENVIRONMENT "MGITEST_PERSISTENT_MAP_ARM=emulated") + if(entry MATCHES "^DirectVulkan\\.Split\\.") + set_tests_properties("${entry}" PROPERTIES ENVIRONMENT "MOBILEGL_IPC_ADOPT_TIER=2") + endif() elseif(entry MATCHES "LargeArenaAdoptionScenario.TheArenaLandsInTheTierItsLaneDeclares$") # P11 A2: every split arm runs T2, so the arena is declared emulated. set_tests_properties("${entry}" PROPERTIES ENVIRONMENT "MGITEST_PERSISTENT_MAP_ARM=emulated") diff --git a/MobileGL/MG_IntegrationTest/Scenarios/PersistentCoherentMapScenario.cpp b/MobileGL/MG_IntegrationTest/Scenarios/PersistentCoherentMapScenario.cpp index 7d52226e..16cae3f8 100644 --- a/MobileGL/MG_IntegrationTest/Scenarios/PersistentCoherentMapScenario.cpp +++ b/MobileGL/MG_IntegrationTest/Scenarios/PersistentCoherentMapScenario.cpp @@ -448,9 +448,10 @@ void main() { oColor = vec4(vColor, 1.0); } // E3(a): the push is the ONLY route a coherent write takes to the server. The cases above go // green just as well if something else delivered the bytes - an unmap or flush record, a // whole-buffer re-sync, the live-host-writes state record, an inproc server reading client - // memory - so this one takes the push away and requires the next draw to miss the write. - // Forget is what an unmap or a destroy calls and leaves the mapping itself alone; the - // re-announce is the call every map-state change makes, and the next draw must see the write. + // memory - so this one takes the push away and requires the draws to miss the write, within + // one frame and across a Present (the two shapes the cases above draw). Forget is what an + // unmap or a destroy calls and leaves the mapping itself alone; the re-announce is the call + // every map-state change makes, and the next draw must see the latest write. TEST_F(PersistentCoherentMapScenario, ThePushIsTheOnlyRouteAWriteTakesToTheServer) { if (!Ready() || IsSkipped()) return; if (!SplitLane::IsSplitLane() || SplitLane::DeclaredPersistentMapArm() != "emulated") { @@ -477,13 +478,23 @@ void main() { oColor = vec4(vColor, 1.0); } "a write through a mapping the tracker has forgotten: red here means " "something other than the persistent-map push delivered it, and the " "two cases above would stay green without the push")); + Gl().EndFrame(); + + ArmTheDrawState(); + WriteThroughTheMapThenDraw(m_map, 0.0f, 0.0f, 1.0f); + const Image nextFrame = ReadPixels(Gl().Width(), Gl().Height()); + EXPECT_EQ(FirstGLError(), 0u); + EXPECT_TRUE(WholeSurfaceIs(nextFrame, "green", + "the next frame's write through the forgotten mapping, after a Present: " + "red or blue here means the frame boundary delivered a write the push " + "did not carry")); ASSERT_TRUE(ReannounceLivePersistentMap(m_vbo)) << "no frontend BufferObject behind GL buffer " << m_vbo; glDrawArrays(GL_TRIANGLES, 0, 6); const Image repushed = ReadPixels(Gl().Width(), Gl().Height()); EXPECT_EQ(FirstGLError(), 0u); - EXPECT_TRUE(WholeSurfaceIs(repushed, "red", - "the same write after the map is announced again: the tracker must " + EXPECT_TRUE(WholeSurfaceIs(repushed, "blue", + "the latest write after the map is announced again: the tracker must " "push the whole mapping once, or the green above proves nothing")); AssertOrRecordArm(m_vbo, "after the push was taken away and given back"); Gl().EndFrame(); diff --git a/docs/ci/ci-cleanup-log.md b/docs/ci/ci-cleanup-log.md index 8523adc2..212aaf36 100644 --- a/docs/ci/ci-cleanup-log.md +++ b/docs/ci/ci-cleanup-log.md @@ -54,7 +54,7 @@ them wrong. | 2026-10-17 | `Magma split lane (strict, dual-block)` on the disaggregation branches when the dual-block step proved its defaults | Test / `integration-split-strict` | the dual-block census run covers the `integration-magma-split` label in the same environment | the dual-block census run | | 2026-10-17 | the 75 retrace-split inproc rows other than OpenRA's, when `build-linux-split` reuses `build-linux` | Test / `retrace-split` | the retrace job's inproc-acceptance rows replay the same cases on the same library, strict and with the dual block and run-ahead on; no one-sided pair since 10-05 | the inproc-acceptance rows, which now prove per leg from the client log that they run with strict=1, role-split-state=1 and run-ahead=1 (`MGTRACE_EXPECT_IPC`) and keep a refusal census; every remaining retrace-split leg proves its defaults (strict=0, role-split-state=1, run-ahead=1) and a changed default reds every leg with the rows to restore; `trace_cases.py --self-test-split-matrix` (disaggregation branches) proves every dropped row is an acceptance row; OpenRA's inproc rows stay for the wire evidence | | 2026-10-17 | `Transport resolution check`'s grep of one entry's log for the inproc resolution sentence | Test / `integration-split` | it checked one entry (`DirectGLES.Split.PersistentMapArm.`) after the fact | in-test: the split fixture (`Harness/ScenarioFixture.h`) now fails every armed Split/Spawn/Tcp entry whose process did not resolve the transport its registration claims, or whose server is not where the claim says (a thread here for inproc, a process of its own for spawn and tcp), from the running process (`SplitRuntimePeek`, `ClientSession::PeerServerPid()`); `SplitLaneHarness.TransportClaimRule` (unit) proves the rule red on canned inputs; the step keeps the IPC default proof as `Default-knob resolution check` | -| 2026-10-18 | `Negative controls (barrier, map push)` (`scripts/ci/split_negative_controls.sh`; skip-census lane `junit-integration-split/control`) | Test / `integration-split` | it reran the split entries with `MOBILEGL_IPC_VERB_BARRIER=0` and `MOBILEGL_IPC_PERSISTENT_BLOCK_KB=0`, two product knobs that exist only for it; what was left without them (the ownership check and the baseline tally) repeats `SplitLogPaths.PrivateAndDistinct` and the lane step's own `junit_tally.py --require-split-ran` | E1: `RemoteWaitBoundaryControl.AnUnwaitedPublishIsSeenAsNoWait` (unit, always on); E3(a): `PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer` on the inproc, spawn, tcp and small-ring split entries (always on) | +| 2026-10-18 | `Negative controls (barrier, map push)` (`scripts/ci/split_negative_controls.sh`; skip-census lane `junit-integration-split/control`) | Test / `integration-split` | it reran the split entries with `MOBILEGL_IPC_VERB_BARRIER=0` and `MOBILEGL_IPC_PERSISTENT_BLOCK_KB=0`, two product knobs that exist only for it; what was left without them (the ownership check and the baseline tally) repeats `SplitLogPaths.PrivateAndDistinct` and the lane step's own `junit_tally.py --require-split-ran` | E1: `RemoteWaitBoundaryControl.AnUnwaitedPublishIsSeenAsNoWait` (unit, always on); E3(a): `PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer`, always on in the split-arm entries (DirectGLES inproc, spawn, tcp and small ring; Magma's in the informational tier), within one frame and across a Present. Narrower than the control: it takes the push away with `PersistentMapTracker::Forget`, which also drops the membership (only the push reads it today), and draws its own frames, so it no longer shows that the bodies of `TwoWrites...` and `AWriteAfter...` make no announcing call | | 2026-10-18 | `scripts/ci/wait_boundary_negative_control.py` | Test / `integration-split` | E1's body inside the step above: the three boundary cases rerun with the barrier off | `RemoteWaitBoundaryControl.AnUnwaitedPublishIsSeenAsNoWait`: the same ApplierReset published with no wait must read parked=0, the observation the owed waits read as parked=1 | | 2026-10-18 | `scripts/ci/control_smoke_test.sh`, `scripts/ci/testdata/stub_ctest.sh`, `scripts/ci/testdata/split_private_log_smoke.sh`, and the `reset` / `results` / `assertion` / `evidence` modes of `split_log_paths.py` | Test / pipe-gates (R-16) | smoke cases and helpers of the step above only | none needed | | 2026-10-18 | unit `RemoteRunAhead.ClearingTheVerbBarrierDisarmsRunAheadEvenWithTheCapBit`, and the `MOBILEGL_IPC_VERB_BARRIER` knob with its arm in the shipped client (`ClientSession`: the free-running `EmitAndWaitTails` return, the run-ahead latch term, the `gPipeInputs` guard's early return, the `verb-barrier=` field of the `Config: IPC` line) | Test / unit (split); product code | `0` was never a product mode, only E1's negative control, retired above; the unit case pinned that the control also disarmed run-ahead | `RemoteWaitBoundaryControl.AnUnwaitedPublishIsSeenAsNoWait`; `MOBILEGL_IPC_RUN_AHEAD=0` stays the lockstep A/B arm | diff --git a/scripts/data/skip_census_baseline.json b/scripts/data/skip_census_baseline.json index 0c8afaa8..4994204e 100644 --- a/scripts/data/skip_census_baseline.json +++ b/scripts/data/skip_census_baseline.json @@ -63,7 +63,6 @@ "DirectGLES.MagmaWireReclaimScenario.RespecifiesWithNoDrawBetweenKeepTheLiveStoreCountBounded", "DirectGLES.MagmaWireReclaimScenario.RespecifyAndDrawEachStoreInOneFrameStaysWithinTheDeferredBudget", "DirectGLES.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.PointSizeDemotionScenario.ACaptureSurvivesAStageThatOnlyReadsThePointSize", "DirectGLES.PointSizeDemotionScenario.TheDemotionIsActuallyArmedWhenTheEnvironmentPinsItOn", "DirectGLES.PrimitivesGeneratedNoXfbScenario.APausedSpanCountsACpuPricedDrawExactlyOnce", @@ -139,7 +138,6 @@ "DirectVulkan.P4aSeamAuditScenario.ATextureRespecifiedWhileAttachedReachesTheFramebufferRecord", "DirectVulkan.PartialUploadOverGpuContentScenario.OneDimensionalArraySubImageKeepsTheGpuClearedLayer", "DirectVulkan.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.PointSizeDemotionScenario.TheDemotionIsActuallyArmedWhenTheEnvironmentPinsItOn", "DirectVulkan.PrimitivesGeneratedNoXfbScenario.TheRerouteIsActuallyArmedWhenTheEnvironmentPinsItOn", "DirectVulkan.SnormAttachmentScenario.SignedNormalizedAttachmentsRoundTripTheirChannelValues", @@ -662,7 +660,6 @@ "DirectGLES.PartialUploadOverGpuContentScenario.TwoDistantSubImagesKeepTheGpuClearBetweenThem", "DirectGLES.PersistentCoherentMapScenario.AWriteAfterAFrameBoundaryReachesTheNextFramesDraw", "DirectGLES.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.PersistentCoherentMapScenario.TwoWritesThroughTheCoherentPointerEachReachTheirOwnDraw", "DirectGLES.PipelineFailureScenario.SamplerArrayInAStructDrawsWithoutKillingTheProcess", "DirectGLES.PipelineFailureScenario.TheSameDrawRepeatsIdenticallyWithNoPoisonedPipelineCache", @@ -1375,7 +1372,6 @@ "DirectVulkan.PartialUploadOverGpuContentScenario.TwoDistantSubImagesKeepTheGpuClearBetweenThem", "DirectVulkan.PersistentCoherentMapScenario.AWriteAfterAFrameBoundaryReachesTheNextFramesDraw", "DirectVulkan.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.PersistentCoherentMapScenario.TwoWritesThroughTheCoherentPointerEachReachTheirOwnDraw", "DirectVulkan.PipelineFailureScenario.SamplerArrayInAStructDrawsWithoutKillingTheProcess", "DirectVulkan.PipelineFailureScenario.TheSameDrawRepeatsIdenticallyWithNoPoisonedPipelineCache", @@ -1701,7 +1697,6 @@ "DirectGLES.ObjectSubsystemControlScenario.ClearingTheP4aBitsStopsTheEmissionsAndNotThePixels", "DirectGLES.ObjectSubsystemControlScenario.TheAppliersNoConsumerBeltNeverFiresBehindTheClientsGate", "DirectGLES.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.PipeVerifyArmingScenario.Armed", "DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -1876,7 +1871,6 @@ "DirectVulkan.P4aSeamAuditScenario.ATextureRespecifiedWhileAttachedReachesTheFramebufferRecord", "DirectVulkan.PartialUploadOverGpuContentScenario.OneDimensionalArraySubImageKeepsTheGpuClearedLayer", "DirectVulkan.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.PipeVerifyArmingScenario.Armed", "DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -2484,7 +2478,6 @@ "DirectGLES.ObjectSubsystemControlScenario.TheAppliersNoConsumerBeltNeverFiresBehindTheClientsGate", "DirectGLES.PackBufferReadbackScenario.APackBufferReadPostsNoReplyAndMarksTheBuffer", "DirectGLES.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.PipeVerifyArmingScenario.Armed", "DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -2736,7 +2729,6 @@ "DirectVulkan.PackBufferReadbackScenario.APackBufferReadPostsNoReplyAndMarksTheBuffer", "DirectVulkan.PartialUploadOverGpuContentScenario.OneDimensionalArraySubImageKeepsTheGpuClearedLayer", "DirectVulkan.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.PipeVerifyArmingScenario.Armed", "DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -3318,7 +3310,6 @@ "DirectGLES.PartialUploadOverGpuContentScenario.TwoDistantSubImagesKeepTheGpuClearBetweenThem", "DirectGLES.PersistentCoherentMapScenario.AWriteAfterAFrameBoundaryReachesTheNextFramesDraw", "DirectGLES.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.PersistentCoherentMapScenario.TwoWritesThroughTheCoherentPointerEachReachTheirOwnDraw", "DirectGLES.PersistentMapArm.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", "DirectGLES.PipeVerifyArmingScenario.Armed", @@ -6144,7 +6135,6 @@ "DirectVulkan.PartialUploadOverGpuContentScenario.TwoDistantSubImagesKeepTheGpuClearBetweenThem", "DirectVulkan.PersistentCoherentMapScenario.AWriteAfterAFrameBoundaryReachesTheNextFramesDraw", "DirectVulkan.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.PersistentCoherentMapScenario.TwoWritesThroughTheCoherentPointerEachReachTheirOwnDraw", "DirectVulkan.PipeVerifyArmingScenario.Armed", "DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReported", @@ -12344,7 +12334,6 @@ "DirectGLES.ObjectSubsystemControlScenario.ClearingTheP4aBitsStopsTheEmissionsAndNotThePixels", "DirectGLES.ObjectSubsystemControlScenario.TheAppliersNoConsumerBeltNeverFiresBehindTheClientsGate", "DirectGLES.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.PipeVerifyArmingScenario.Armed", "DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -12519,7 +12508,6 @@ "DirectVulkan.P4aSeamAuditScenario.ATextureRespecifiedWhileAttachedReachesTheFramebufferRecord", "DirectVulkan.PartialUploadOverGpuContentScenario.OneDimensionalArraySubImageKeepsTheGpuClearedLayer", "DirectVulkan.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.PipeVerifyArmingScenario.Armed", "DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -12695,7 +12683,6 @@ "DirectGLES.ObjectSubsystemControlScenario.TheAppliersNoConsumerBeltNeverFiresBehindTheClientsGate", "DirectGLES.PackBufferReadbackScenario.APackBufferReadPostsNoReplyAndMarksTheBuffer", "DirectGLES.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.PipeVerifyArmingScenario.Armed", "DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -12947,7 +12934,6 @@ "DirectVulkan.PackBufferReadbackScenario.APackBufferReadPostsNoReplyAndMarksTheBuffer", "DirectVulkan.PartialUploadOverGpuContentScenario.OneDimensionalArraySubImageKeepsTheGpuClearedLayer", "DirectVulkan.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.PipeVerifyArmingScenario.Armed", "DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -14438,7 +14424,6 @@ "DirectGLES.VerifySplit.MagmaWireReclaimScenario.RespecifiesWithNoDrawBetweenKeepTheLiveStoreCountBounded", "DirectGLES.VerifySplit.MagmaWireReclaimScenario.RespecifyAndDrawEachStoreInOneFrameStaysWithinTheDeferredBudget", "DirectGLES.VerifySplit.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.VerifySplit.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.VerifySplit.PointSizeDemotionScenario.ACaptureSurvivesAStageThatOnlyReadsThePointSize", "DirectGLES.VerifySplit.PointSizeDemotionScenario.TheDemotionIsActuallyArmedWhenTheEnvironmentPinsItOn", "DirectGLES.VerifySplit.PrimitivesGeneratedNoXfbScenario.APausedSpanCountsACpuPricedDrawExactlyOnce", @@ -14513,7 +14498,6 @@ "DirectVulkan.VerifySplit.P4aSeamAuditScenario.ATextureRespecifiedWhileAttachedReachesTheFramebufferRecord", "DirectVulkan.VerifySplit.PartialUploadOverGpuContentScenario.OneDimensionalArraySubImageKeepsTheGpuClearedLayer", "DirectVulkan.VerifySplit.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.VerifySplit.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.VerifySplit.PointSizeDemotionScenario.TheDemotionIsActuallyArmedWhenTheEnvironmentPinsItOn", "DirectVulkan.VerifySplit.PrimitivesGeneratedNoXfbScenario.TheRerouteIsActuallyArmedWhenTheEnvironmentPinsItOn", "DirectVulkan.VerifySplit.SnormAttachmentScenario.SignedNormalizedAttachmentsRoundTripTheirChannelValues", @@ -14997,7 +14981,6 @@ "DirectGLES.VerifySplit.PartialUploadOverGpuContentScenario.TwoDistantSubImagesKeepTheGpuClearBetweenThem", "DirectGLES.VerifySplit.PersistentCoherentMapScenario.AWriteAfterAFrameBoundaryReachesTheNextFramesDraw", "DirectGLES.VerifySplit.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.VerifySplit.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.VerifySplit.PersistentCoherentMapScenario.TwoWritesThroughTheCoherentPointerEachReachTheirOwnDraw", "DirectGLES.VerifySplit.PipelineFailureScenario.SamplerArrayInAStructDrawsWithoutKillingTheProcess", "DirectGLES.VerifySplit.PipelineFailureScenario.TheSameDrawRepeatsIdenticallyWithNoPoisonedPipelineCache", @@ -15684,7 +15667,6 @@ "DirectVulkan.VerifySplit.PartialUploadOverGpuContentScenario.TwoDistantSubImagesKeepTheGpuClearBetweenThem", "DirectVulkan.VerifySplit.PersistentCoherentMapScenario.AWriteAfterAFrameBoundaryReachesTheNextFramesDraw", "DirectVulkan.VerifySplit.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.VerifySplit.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.VerifySplit.PersistentCoherentMapScenario.TwoWritesThroughTheCoherentPointerEachReachTheirOwnDraw", "DirectVulkan.VerifySplit.PipelineFailureScenario.SamplerArrayInAStructDrawsWithoutKillingTheProcess", "DirectVulkan.VerifySplit.PipelineFailureScenario.TheSameDrawRepeatsIdenticallyWithNoPoisonedPipelineCache", @@ -18030,7 +18012,6 @@ "DirectGLES.Verify.ObjectSubsystemControlScenario.TheAppliersNoConsumerBeltNeverFiresBehindTheClientsGate", "DirectGLES.Verify.PackBufferReadbackScenario.APackBufferReadPostsNoReplyAndMarksTheBuffer", "DirectGLES.Verify.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.Verify.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.Verify.PipeVerifyArmingScenario.Armed", "DirectGLES.Verify.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectGLES.Verify.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -18130,7 +18111,6 @@ "DirectVulkan.Verify.PackBufferReadbackScenario.APackBufferReadPostsNoReplyAndMarksTheBuffer", "DirectVulkan.Verify.PartialUploadOverGpuContentScenario.OneDimensionalArraySubImageKeepsTheGpuClearedLayer", "DirectVulkan.Verify.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.Verify.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.Verify.PipeVerifyArmingScenario.Armed", "DirectVulkan.Verify.PipeVerifyArmingScenario.CorruptedFieldIsReported", "DirectVulkan.Verify.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead", @@ -18570,7 +18550,6 @@ "DirectGLES.Verify.PartialUploadOverGpuContentScenario.TwoDistantSubImagesKeepTheGpuClearBetweenThem", "DirectGLES.Verify.PersistentCoherentMapScenario.AWriteAfterAFrameBoundaryReachesTheNextFramesDraw", "DirectGLES.Verify.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectGLES.Verify.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectGLES.Verify.PersistentCoherentMapScenario.TwoWritesThroughTheCoherentPointerEachReachTheirOwnDraw", "DirectGLES.Verify.PipeVerifyArmingScenario.Armed", "DirectGLES.Verify.PipeVerifyArmingScenario.CorruptedFieldIsReported", @@ -19204,7 +19183,6 @@ "DirectVulkan.Verify.PartialUploadOverGpuContentScenario.TwoDistantSubImagesKeepTheGpuClearBetweenThem", "DirectVulkan.Verify.PersistentCoherentMapScenario.AWriteAfterAFrameBoundaryReachesTheNextFramesDraw", "DirectVulkan.Verify.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares", - "DirectVulkan.Verify.PersistentCoherentMapScenario.ThePushIsTheOnlyRouteAWriteTakesToTheServer", "DirectVulkan.Verify.PersistentCoherentMapScenario.TwoWritesThroughTheCoherentPointerEachReachTheirOwnDraw", "DirectVulkan.Verify.PipeVerifyArmingScenario.Armed", "DirectVulkan.Verify.PipeVerifyArmingScenario.CorruptedFieldIsReported",