mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
[CI] (.github/workflows, docs/ci, scripts/ci, scripts/data): keep the census green on the pinned fallback
- when transport_pinned.py cannot prove the exclusion, the inproc-acceptance leg runs every entry under its own JUnit stems, integration-all and integration-staged-copy-all - skip_census.py: an optional row with "instead_of" stands in for a trimmed lane; when it ran, that lane may be absent, and it is required otherwise; self-test on a fallback-shaped directory (green, and red on a vanished name, a new skip or neither lane); write from a fallback run keeps the row of the lane the fallback stood in for - skip census: two optional -all rows for the inproc-acceptance leg, names borrowed from the monolith-control rows and skip lists equal to the old inproc-acceptance lists (285 and 49) - the integration legs compute the ctest selection only on the disaggregation branches, which are the only ones that read it
This commit is contained in:
+17
-10
@@ -498,11 +498,16 @@ jobs:
|
||||
ulimit -c unlimited
|
||||
# An entry whose own ENVIRONMENT sets MOBILEGL_TRANSPORT overrides the one variable the two
|
||||
# legs differ in, so it runs identically in both; the inproc leg leaves those entries (and
|
||||
# the fixtures only they need) to the monolith-control leg, which every branch runs.
|
||||
# transport_pinned.py proves the trimmed selection lost exactly them, or this leg runs
|
||||
# them all as before; the monolith-control leg proves it ran every one of them.
|
||||
ctest -L integration-gpu --show-only=json-v1 > "${RUNNER_TEMP}/all.json"
|
||||
# the fixtures only they need) to the monolith-control leg, which every branch runs, and
|
||||
# that leg proves it ran every one of them. When transport_pinned.py cannot prove the
|
||||
# trimmed selection lost exactly them, this leg runs every entry and writes its JUnits
|
||||
# under -all stems, which the skip census holds to the full name lists.
|
||||
EXCLUDE=()
|
||||
MAIN_JUNIT=integration
|
||||
STAGED_JUNIT=integration-staged-copy
|
||||
if [ "${MOBILEGL_CI_DISAGGREGATED}" = ON ]; then
|
||||
ctest -L integration-gpu --show-only=json-v1 > "${RUNNER_TEMP}/all.json"
|
||||
fi
|
||||
if [ "${MOBILEGL_TRANSPORT}" = inproc ]; then
|
||||
if python3 ../scripts/ci/transport_pinned.py select "${RUNNER_TEMP}/all.json" --out "${RUNNER_TEMP}/transport-pinned.txt" \
|
||||
&& ctest -L integration-gpu --exclude-from-file "${RUNNER_TEMP}/transport-pinned.txt" --show-only=json-v1 \
|
||||
@@ -511,7 +516,9 @@ jobs:
|
||||
"${RUNNER_TEMP}/trimmed.json" --out "${RUNNER_TEMP}/transport-pinned.json"; then
|
||||
EXCLUDE=(--exclude-from-file "${RUNNER_TEMP}/transport-pinned.txt")
|
||||
else
|
||||
echo "::warning::the transport-pinned exclusion did not prove itself, so this leg runs every integration-gpu entry"
|
||||
echo "::warning::the transport-pinned exclusion did not prove itself, so this leg runs every integration-gpu entry (integration-all.xml, integration-staged-copy-all.xml)"
|
||||
MAIN_JUNIT=integration-all
|
||||
STAGED_JUNIT=integration-staged-copy-all
|
||||
fi
|
||||
fi
|
||||
# Second, filtered pass: with the range-invalidating map flush disabled,
|
||||
@@ -521,16 +528,16 @@ jobs:
|
||||
# coverage. The flag is NOT baked into the ctest ENVIRONMENT properties,
|
||||
# so an inline env reaches the test processes (unlike the ICD pin above).
|
||||
if [ "${{ secrets.ACTIONS_STEP_DEBUG }}" = "true" ]; then
|
||||
ctest -V -L integration-gpu "${EXCLUDE[@]}" --no-tests=error -j "$(nproc)" --output-junit "${RUNNER_TEMP}/integration.xml"
|
||||
ctest -V -L integration-gpu "${EXCLUDE[@]}" --no-tests=error -j "$(nproc)" --output-junit "${RUNNER_TEMP}/${MAIN_JUNIT}.xml"
|
||||
MOBILEGL_ESPRYT_DISABLE_INVALIDATE_FLUSH=1 ctest -V -L integration-gpu "${EXCLUDE[@]}" -j "$(nproc)" \
|
||||
-R 'Buffer|Readback|Atomic|Ssbo|Arena' --no-tests=error --output-junit "${RUNNER_TEMP}/integration-staged-copy.xml"
|
||||
-R 'Buffer|Readback|Atomic|Ssbo|Arena' --no-tests=error --output-junit "${RUNNER_TEMP}/${STAGED_JUNIT}.xml"
|
||||
else
|
||||
ctest --output-on-failure -L integration-gpu "${EXCLUDE[@]}" --no-tests=error -j "$(nproc)" --output-junit "${RUNNER_TEMP}/integration.xml"
|
||||
ctest --output-on-failure -L integration-gpu "${EXCLUDE[@]}" --no-tests=error -j "$(nproc)" --output-junit "${RUNNER_TEMP}/${MAIN_JUNIT}.xml"
|
||||
MOBILEGL_ESPRYT_DISABLE_INVALIDATE_FLUSH=1 ctest --output-on-failure -L integration-gpu "${EXCLUDE[@]}" -j "$(nproc)" \
|
||||
-R 'Buffer|Readback|Atomic|Ssbo|Arena' --no-tests=error --output-junit "${RUNNER_TEMP}/integration-staged-copy.xml"
|
||||
-R 'Buffer|Readback|Atomic|Ssbo|Arena' --no-tests=error --output-junit "${RUNNER_TEMP}/${STAGED_JUNIT}.xml"
|
||||
fi
|
||||
if [ "${MOBILEGL_TRANSPORT}" = monolith ] && [ "${MOBILEGL_CI_DISAGGREGATED}" = ON ]; then
|
||||
python3 ../scripts/ci/transport_pinned.py require-ran "${RUNNER_TEMP}/all.json" "${RUNNER_TEMP}/integration.xml"
|
||||
python3 ../scripts/ci/transport_pinned.py require-ran "${RUNNER_TEMP}/all.json" "${RUNNER_TEMP}/${MAIN_JUNIT}.xml"
|
||||
fi
|
||||
|
||||
# Both backend roles must execute inproc in the primary artifact.
|
||||
|
||||
@@ -49,7 +49,7 @@ them wrong.
|
||||
| 2026-10-17 | the compile of `build-linux-split` on the disaggregation branches (when `build-guard` proves the configurations identical) | Test / `build-linux-split` | it built the library `build-linux` builds there, from a configuration that differs only by the benchmarks (211 paired runs never disagreed); it delayed every split consumer by up to 9 minutes | the `build-guard` job configures both lines on one runner and compares them with `build_fingerprint.py` (cache, compile commands, link statements, CTest files; benchmarks excluded; one shared FetchContent directory, a failed configure or one killed after 10 minutes retried once) and records its image and compiler; only the verdict `identical` lets the consumers take `build-linux`'s artifacts, and only a Release one, while `different` (annotated as a warning) and `unknown` (a configure that failed twice, any error, too little evidence; a notice) keep both builds and the full split lanes; the guard job's own failure never fails the run; `build-linux` runs the link ratchet on every disaggregation build (artifact `link-ratchet-primary`) and integration-split reds on it when it takes that build; dev runs no guard and always builds |
|
||||
| 2026-10-17 | `Transport A/B (monolith vs inproc)` (skip-census lanes `arm-monolith`, `arm-inproc` now optional) | Test / `integration-split` | with `build-linux` reused it repeats the integration job's two legs on the same library (79 paired runs, no one-sided red) | the integration legs; `Default-knob resolution check` (disaggregation branches) reads 'Split lanes' own run and proves, from every passed entry's client log, strict=0, role-split-state=1 and run-ahead=1 unless pinned (`split_log_paths.py ipc-config`); A/B still runs when a default differs or the build is not reused |
|
||||
| 2026-10-17 | `Unit tests on the split runtime` (skip-census lane `unit-split` now optional) | Test / `integration-split` | with `build-linux` reused the test job runs the same unit lane on the same build (182 paired runs; the one recurring one-sided red was a fixed test race) | the test job, which now carries `MOBILEGL_ITEST_REQUIRE_GPU=1` and `libegl-mesa0` on the three branches; the strict unit step is unchanged |
|
||||
| 2026-10-17 | the integration-gpu entries that pin their own `MOBILEGL_TRANSPORT` (804 inproc, 1446 spawn, 131 monolith) and the 12 `TcpServer` fixture entries only they need, in the inproc-acceptance leg (both passes) | Test / `integration` (inproc-acceptance) | their pin overrides the only variable the two legs differ in, so they ran identically in both (173 paired runs; the one one-sided red was a port bind fixed by cde6512b) | the monolith-control leg, which runs them on every branch; `transport_pinned.py` proves per run that the trimmed selection lost exactly that population (else the leg runs everything) and that the monolith-control leg ran every one; skip census: the monolith-control lanes list their own names and the inproc-acceptance lanes drop the pinned ones |
|
||||
| 2026-10-17 | the integration-gpu entries that pin their own `MOBILEGL_TRANSPORT` (804 inproc, 1446 spawn, 131 monolith) and the 12 `TcpServer` fixture entries only they need, in the inproc-acceptance leg (both passes) | Test / `integration` (inproc-acceptance) | their pin overrides the only variable the two legs differ in, so they ran identically in both (173 paired runs; the one one-sided red was a port bind fixed by cde6512b) | the monolith-control leg, which runs them on every branch; `transport_pinned.py` proves per run that the trimmed selection lost exactly that population and that the monolith-control leg ran every one; when it cannot, the leg runs everything under the JUnit stems `integration-all` and `integration-staged-copy-all`; skip census: the monolith-control lanes list their own names, the inproc-acceptance lanes drop the pinned ones, and two optional `-all` rows (the full names, the old skip lists) stand in for them on that fallback |
|
||||
| 2026-10-17 | `Strict split lane` on the disaggregation branches (dev keeps it) | Test / `integration-split-strict` | with the role-split state defaulting on, its environment equals the dual-block census lane's, whose entries are a superset (31 paired runs after the flip, never red only in the strict lane) | the dual-block step's first run leaves the knob at its default, proves per entry from its client log that strict, the dual block and run-ahead resolved on (`ipc-config`), writes the integration-split part of its JUnit as `strict-split.xml` (every name exactly once, `junit_tally.py --select-from`), and makes the strict lane's checks on it (hard green, two-sided marker census, StrictArming ran); a default that changed reruns the census with the knob set |
|
||||
| 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 |
|
||||
|
||||
@@ -24,7 +24,9 @@ into the tree (scripts/data/skip_census_baseline.json):
|
||||
* new lanes and new names are reported, never red;
|
||||
* a lane whose row carries "optional": "<reason>" runs only on some paths (for example only when
|
||||
a build-equality guard falls back); its absence is a note, and when it runs it is checked
|
||||
like any other lane.
|
||||
like any other lane;
|
||||
* an optional row that also carries "instead_of": "<lane>" is that lane's whole-run fallback:
|
||||
when it ran, the lane it stands in for may be absent (a note), and is required otherwise.
|
||||
|
||||
A deliberate retirement edits the baseline in the same commit and names the cases in the commit
|
||||
message (PLAN-P13 §4.2).
|
||||
@@ -113,31 +115,45 @@ def resolve_baseline(baseline):
|
||||
names = row['names'] if 'names' in row else baseline[row['names_from']]['names']
|
||||
resolved[lane] = {'names': sorted({normalize_name(n) for n in names}),
|
||||
'skipped': sorted({normalize_name(n) for n in row['skipped']})}
|
||||
if row.get('optional'):
|
||||
resolved[lane]['optional'] = row['optional']
|
||||
for key in ('optional', 'instead_of'):
|
||||
if row.get(key):
|
||||
resolved[lane][key] = row[key]
|
||||
return resolved
|
||||
|
||||
|
||||
def keep_optional_rows(written, previous):
|
||||
"""`write` from a run that did not run an optional lane keeps that lane's row, with its names
|
||||
resolved, and every optional row keeps its reason."""
|
||||
resolved, and every optional row keeps its reason. A run where an `instead_of` row stood in
|
||||
did not run the lane it replaces, so that lane keeps its previous row too."""
|
||||
resolved = resolve_baseline(previous)
|
||||
|
||||
def keep(lane):
|
||||
written[lane] = {'skipped': resolved[lane]['skipped'], 'names': resolved[lane]['names']}
|
||||
for lane, row in previous.items():
|
||||
if not row.get('optional'):
|
||||
continue
|
||||
if lane in written:
|
||||
written[lane]['optional'] = row['optional']
|
||||
else:
|
||||
written[lane] = {'skipped': resolved[lane]['skipped'], 'names': resolved[lane]['names'],
|
||||
'optional': row['optional']}
|
||||
if lane not in written:
|
||||
keep(lane)
|
||||
for key in ('optional', 'instead_of'):
|
||||
if row.get(key):
|
||||
written[lane][key] = row[key]
|
||||
for lane, row in list(written.items()):
|
||||
stood_in = row.get('instead_of')
|
||||
if stood_in and stood_in not in written and stood_in in previous:
|
||||
keep(stood_in)
|
||||
return dict(sorted(written.items()))
|
||||
|
||||
|
||||
def compare(lanes, baseline):
|
||||
red, info = [], []
|
||||
stood_in = {row['instead_of']: lane for lane, row in baseline.items()
|
||||
if row.get('optional') and row.get('instead_of') and lane in lanes}
|
||||
for lane, known in sorted(baseline.items()):
|
||||
current = lanes.get(lane)
|
||||
if current is None:
|
||||
if lane in stood_in:
|
||||
info.append(f'lane {lane}: not run ({stood_in[lane]} ran instead)')
|
||||
continue
|
||||
if known.get('optional'):
|
||||
info.append(f"lane {lane}: not run (optional: {known['optional']})")
|
||||
continue
|
||||
@@ -254,6 +270,49 @@ def self_test():
|
||||
assert quiet(['check', str(lost), '--baseline', str(optional)]) == 1, 'a plain lane is still required'
|
||||
kept = keep_optional_rows(to_baseline(collect(good)), rows)
|
||||
assert kept['junit-other/other'] == rows['junit-other/other'], 'write keeps an absent optional row'
|
||||
# A whole-run fallback lane stands in for a trimmed one: the leg ran everything under its
|
||||
# own stem, so the trimmed lane is absent and the full one is held to the full names.
|
||||
trimmed = tmp / 'trimmed.json'
|
||||
rows = json.loads(base.read_text())
|
||||
rows['junit-leg/full'] = {'skipped': ['B'], 'names_from': 'junit-unit/unit'}
|
||||
rows['junit-leg/trimmed'] = {'skipped': [], 'names': ['A']}
|
||||
rows['junit-leg/trimmed-all'] = {'skipped': ['B'], 'names_from': 'junit-unit/unit',
|
||||
'optional': 'the fallback', 'instead_of': 'junit-leg/trimmed'}
|
||||
trimmed.write_text(json.dumps(rows))
|
||||
|
||||
def leg(name, trimmed_cases=None, all_cases=None):
|
||||
d = tmp / name
|
||||
junit(d / 'junit-unit' / 'unit.xml', [('A', 'pass'), ('B', 'skip'), ('C', 'pass')])
|
||||
junit(d / 'junit-leg' / 'full.xml', [('A', 'pass'), ('B', 'skip'), ('C', 'pass')])
|
||||
if trimmed_cases is not None:
|
||||
junit(d / 'junit-leg' / 'trimmed.xml', trimmed_cases)
|
||||
if all_cases is not None:
|
||||
junit(d / 'junit-leg' / 'trimmed-all.xml', all_cases)
|
||||
return str(d)
|
||||
full_run = [('A', 'pass'), ('B', 'skip'), ('C', 'pass')]
|
||||
assert quiet(['check', leg('trim-ok', [('A', 'pass')]), '--baseline', str(trimmed)]) == 0, \
|
||||
'the trimmed lane alone is green'
|
||||
assert quiet(['check', leg('fallback-ok', None, full_run), '--baseline', str(trimmed)]) == 0, \
|
||||
'the fallback lane in place of the trimmed one is green'
|
||||
assert quiet(['check', leg('fallback-lost', None, full_run[:2]), '--baseline', str(trimmed)]) == 1, \
|
||||
'a name that disappeared from the fallback lane is red'
|
||||
assert quiet(['check', leg('fallback-skip', None, [('A', 'skip')] + full_run[1:]),
|
||||
'--baseline', str(trimmed)]) == 1, 'a new skip in the fallback lane is red'
|
||||
assert quiet(['check', leg('neither'), '--baseline', str(trimmed)]) == 1, \
|
||||
'with neither lane the trimmed one is still required'
|
||||
assert keep_optional_rows({}, rows)['junit-leg/trimmed-all']['instead_of'] == 'junit-leg/trimmed', \
|
||||
'write keeps instead_of'
|
||||
rewritten = tmp / 'rewritten.json'
|
||||
rewritten.write_text(trimmed.read_text())
|
||||
assert quiet(['write', leg('rewrite-fallback', None, full_run), '--baseline', str(rewritten)]) == 0
|
||||
kept = json.loads(rewritten.read_text())
|
||||
assert kept.get('junit-leg/trimmed') == {'skipped': [], 'names': ['A']}, \
|
||||
'write from a fallback run keeps the row of the lane the fallback stood in for'
|
||||
assert kept['junit-leg/trimmed-all']['instead_of'] == 'junit-leg/trimmed'
|
||||
assert quiet(['check', leg('rewrite-trim-ok', [('A', 'pass')]), '--baseline', str(rewritten)]) == 0, \
|
||||
'the rewritten baseline still passes a normal run'
|
||||
assert quiet(['check', leg('rewrite-trim-lost', [('B', 'skip')]), '--baseline', str(rewritten)]) == 1, \
|
||||
'the rewritten baseline still reds a name gone from the trimmed lane'
|
||||
assert quiet(['check', str(good), '--baseline', str(tmp / 'none.json')]) == 1, 'no baseline must be red'
|
||||
assert normalize_name('S/T.Case/Leaf # GetParam() = 64-byte object <46-CA 08-EB>') == 'S/T.Case/Leaf'
|
||||
assert normalize_name('T.Plain') == 'T.Plain'
|
||||
|
||||
@@ -1610,6 +1610,298 @@
|
||||
"DirectVulkan.XfbRepeatedCaptureScenario.AVertexOnlyAdjacencyCaptureRecords"
|
||||
]
|
||||
},
|
||||
"junit-integration-inproc-acceptance-inproc/integration-all": {
|
||||
"skipped": [
|
||||
"DirectGLES.AsyncCompileScenario.ExtensionStringMatchesTheConfiguration",
|
||||
"DirectGLES.AsyncCompileScenario.IrisShapedTwoPhaseBatchRendersCorrectly",
|
||||
"DirectGLES.AsyncOn.AsyncCompileScenario.IrisShapedTwoPhaseBatchRendersCorrectly",
|
||||
"DirectGLES.ClipDistanceScenario.ADisabledClipDistanceRemovesNothing",
|
||||
"DirectGLES.ClipDistanceScenario.TheEnablesAreIndependentPerDistance",
|
||||
"DirectGLES.CsoContentAddressingScenario.TheBlendToggleMintsBoundedlyWithContentAddressingAndPerBindWithout",
|
||||
"DirectGLES.CubeFaceReadbackScenario.CubeMapViewOfAnArrayReadsTheFaceEachZOffsetNames",
|
||||
"DirectGLES.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.F1WireScenario.CopyImageInPlaceOverlapDeclinesAndLeavesTheLevelAlone",
|
||||
"DirectGLES.F1WireScenario.EachWireFrameHasZeroResidualPulls",
|
||||
"DirectGLES.F1WireScenario.GenerateMipmapDepthStencilDeclinesAndKeepsTheSession",
|
||||
"DirectGLES.F1WireScenario.GenerateMipmapDepthWithoutNativeBlitPixels",
|
||||
"DirectGLES.F1WireScenario.GenerateMipmapWithoutAShaderArmShapeDeclinesAndKeepsTheSession",
|
||||
"DirectGLES.F1WireScenario.GenerateMipmapWithoutNativeBlitPixels",
|
||||
"DirectGLES.F1WireScenario.MultisampleBlitFromASingleSampleSourceDeclinesAndKeepsTheSession",
|
||||
"DirectGLES.F1WireScenario.MultisampleBlitOntoAMultisampleDestinationDeclinesAndKeepsTheSession",
|
||||
"DirectGLES.F1WireScenario.ShortUniformBufferRangePadsMissingBytes",
|
||||
"DirectGLES.F1WireScenario.SubWordUniformBufferRangePadsMissingBytes",
|
||||
"DirectGLES.F1WireScenario.UnalignedAtomicCounterRangeDeclinesAndTheSessionLives",
|
||||
"DirectGLES.FencePollScenario.PacedFrameFenceWaitsBench",
|
||||
"DirectGLES.ForcedDepthStencilEmulation.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.ForcedDepthStencilEmulation.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.GenerateMipmapServerScenario.Rgb16fDrawnBaseWithARefusedReadbackDeclinesByName",
|
||||
"DirectGLES.GenerateMipmapServerScenario.Rgb16fUploadedBaseWithARefusedReadbackIsFilteredFromTheStore",
|
||||
"DirectGLES.Glsl420DeclarationScenario.AnArrayOfSamplerArraysIsHonouredOrDeclinedCleanly",
|
||||
"DirectGLES.HandleRecycleScenario.ABufferAtARecycledAddressDoesNotInheritItsPredecessorsContents",
|
||||
"DirectGLES.HandleRecycleScenario.AFramebufferAtARecycledAddressDoesNotInheritItsPredecessorsTwin",
|
||||
"DirectGLES.HandleRecycleScenario.AProgramAtARecycledAddressDoesNotInheritItsPredecessorsShaderCso",
|
||||
"DirectGLES.HandleRecycleScenario.ARenderbufferAtARecycledAddressDoesNotInheritItsPredecessorsStorage",
|
||||
"DirectGLES.HandleRecycleScenario.ASamplerAtARecycledAddressDoesNotInheritItsPredecessorsParameters",
|
||||
"DirectGLES.HandleRecycleScenario.ATextureAtARecycledAddressDoesNotInheritItsPredecessorsSamplerView",
|
||||
"DirectGLES.HandleRecycleScenario.ATextureAtARecycledAddressDoesNotInheritItsPredecessorsTwin",
|
||||
"DirectGLES.HandleRecycleScenario.AVertexArrayAtARecycledAddressDoesNotInheritItsPredecessorsVertexBufferSet",
|
||||
"DirectGLES.HandleRecycleScenario.AVertexArrayAtARecycledAddressDoesNotInheritItsPredecessorsVertexInput",
|
||||
"DirectGLES.HandleRecycleScenario.DestroyedFramebuffersReturnTheirFramebufferSlots",
|
||||
"DirectGLES.HandleRecycleScenario.DestroyedProgramsReturnTheirShaderCsoSlots",
|
||||
"DirectGLES.HandleRecycleScenario.DestroyedRenderbuffersReturnTheirRenderbufferSlots",
|
||||
"DirectGLES.HandleRecycleScenario.DestroyedSamplersReturnTheirSamplerCsoSlots",
|
||||
"DirectGLES.HandleRecycleScenario.DestroyedTexturesReturnTheirSamplerViewSlots",
|
||||
"DirectGLES.HandleRecycleScenario.DestroyedTexturesReturnTheirTextureSlots",
|
||||
"DirectGLES.HandleRecycleScenario.DestroyedVertexArraysReturnTheirVertexElementsSlots",
|
||||
"DirectGLES.HandleRecycleScenario.EvictedPipelineCompositesReturnTheirShaderCsoSlots",
|
||||
"DirectGLES.ImageBindableRemintScenario.GpuClearSurvivesTheFirstImageBindingOfAView",
|
||||
"DirectGLES.ImageLoadStoreSsoScenario.AnImageArrayAlongsideAnotherDescriptorKeepsBothBindings",
|
||||
"DirectGLES.ImageTargetKindScenario.IgnoresLayerForTexture2DMultisample",
|
||||
"DirectGLES.ImageTargetKindScenario.LoadsTexture2DMultisample",
|
||||
"DirectGLES.ImageTargetKindScenario.LoadsTexture2DMultisampleArray",
|
||||
"DirectGLES.ImageTargetKindScenario.StoresTexture2DMultisample",
|
||||
"DirectGLES.ImageTargetKindScenario.StoresTexture2DMultisampleArray",
|
||||
"DirectGLES.IterationRPFirstReductionScenario.IndexedInputTopologyAndReduction",
|
||||
"DirectGLES.IterationRPFirstReductionScenario.SampledRgba32fFirstAverage",
|
||||
"DirectGLES.IterationRPProgram203Scenario.FixedCompleteInputProducesFixedCompleteGoldenOutput",
|
||||
"DirectGLES.IterationRPScratchFixScenario.FixtureShapedReductionSumsEveryInvocation",
|
||||
"DirectGLES.IterationRPScratchFixScenario.WideFixtureShapedReductionSumsEveryInvocation",
|
||||
"DirectGLES.LargeArenaAdoptionScenario.ASessionThatCannotRunT0FallsBackToT2OnceByName",
|
||||
"DirectGLES.LargeArenaAdoptionScenario.AStreamSessionRefusesTheAdoptTierOnceByName",
|
||||
"DirectGLES.LargeArenaAdoptionScenario.AnAdoptionCostsExactlyOneMapPersistentRoundtrip",
|
||||
"DirectGLES.LargeArenaAdoptionScenario.TheArenaLandsInTheTierItsLaneDeclares",
|
||||
"DirectGLES.MagmaRunAheadScenario.GpuClearSurvivesTheFirstStorageImageUpgrade",
|
||||
"DirectGLES.MagmaRunAheadScenario.MixedNativeAndConvertedGpuVertexStreamsKeepTheirReservation",
|
||||
"DirectGLES.MagmaRunAheadScenario.PresentCreditActuallyParksTheClientAtItsConfiguredLimit",
|
||||
"DirectGLES.MagmaRunAheadScenario.QueuedBufferVersionsAndDeletedNameReuseKeepTheirPixels",
|
||||
"DirectGLES.MagmaRunAheadScenario.QueuedGpuWritesReadBackTheLastDispatchBytes",
|
||||
"DirectGLES.MagmaRunAheadScenario.QueuedProgramRebindsKeepEachUniformSnapshot",
|
||||
"DirectGLES.MagmaRunAheadScenario.TextureUploadCannotOvertakeThePreviouslyQueuedDraw",
|
||||
"DirectGLES.MagmaVertexLayoutScenario.AnUnmappableVertexFormatDeclinesTheDrawInsteadOfEndingTheSession",
|
||||
"DirectGLES.MagmaVertexLayoutScenario.AnUnreadUnmappableArrayDoesNotStopTheRestOfTheDraw",
|
||||
"DirectGLES.MagmaWireCacheScenario.FramebufferReattachmentDistinguishesMipAndLayer",
|
||||
"DirectGLES.MagmaWireCacheScenario.FramebufferRespecifyRebindsTheNewNativeImage",
|
||||
"DirectGLES.MagmaWireCacheScenario.FramebufferSrgbPolicyAtoBtoAUsesDistinctFormats",
|
||||
"DirectGLES.MagmaWireCacheScenario.FramebuffersAtoBtoAKeepDistinctAttachments",
|
||||
"DirectGLES.MagmaWireCacheScenario.SamplerRespecifyKeepsOldAndNewNativeImages",
|
||||
"DirectGLES.MagmaWireCacheScenario.SamplerSwizzleAtoBtoAKeepsEachQueuedPixel",
|
||||
"DirectGLES.MagmaWireCacheScenario.SamplerViewsDistinguishMipLayerAndViewType",
|
||||
"DirectGLES.MagmaWireReclaimScenario.ADrawAfterTheEarlyReclaimFollowsTheNewStoreNotTheMemoizedHandle",
|
||||
"DirectGLES.MagmaWireReclaimScenario.DescriptorSetsRewindInsideOneLongFrameAfterTheirSubmitRetires",
|
||||
"DirectGLES.MagmaWireReclaimScenario.ManySmallRespecifyAndDrawRoundsStayUnderTheStoreCountCeiling",
|
||||
"DirectGLES.MagmaWireReclaimScenario.RespecifiesWithNoDrawBetweenKeepTheLiveStoreCountBounded",
|
||||
"DirectGLES.MagmaWireReclaimScenario.RespecifyAndDrawEachStoreInOneFrameStaysWithinTheDeferredBudget",
|
||||
"DirectGLES.ObjectSubsystemControlScenario.ASamplerBitWithoutTheTextureBitIsRefusedAndNamed",
|
||||
"DirectGLES.ObjectSubsystemControlScenario.ATextureBitWithoutTheSamplerBitIsRefusedAndNamed",
|
||||
"DirectGLES.ObjectSubsystemControlScenario.ClearingTheP4aBitsStopsTheEmissionsAndNotThePixels",
|
||||
"DirectGLES.ObjectSubsystemControlScenario.TheAppliersNoConsumerBeltNeverFiresBehindTheClientsGate",
|
||||
"DirectGLES.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares",
|
||||
"DirectGLES.PipeVerifyArmingScenario.Armed",
|
||||
"DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReported",
|
||||
"DirectGLES.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead",
|
||||
"DirectGLES.PointSizeDemotionScenario.ACaptureSurvivesAStageThatOnlyReadsThePointSize",
|
||||
"DirectGLES.PointSizeDemotionScenario.TheDemotionIsActuallyArmedWhenTheEnvironmentPinsItOn",
|
||||
"DirectGLES.PoisonOmissionScenario.OmittedFieldAbortsOnThatVerb",
|
||||
"DirectGLES.PoisonOmissionScenario.TheSequenceThePoisonControlsRun",
|
||||
"DirectGLES.PoisonOmissionScenario.WithoutOmissionCompletes",
|
||||
"DirectGLES.PrimitivesGeneratedNoXfbScenario.APausedSpanCountsACpuPricedDrawExactlyOnce",
|
||||
"DirectGLES.PrimitivesGeneratedNoXfbScenario.APausedSpanCountsATessellatedPatchExactlyOnce",
|
||||
"DirectGLES.PrimitivesGeneratedNoXfbScenario.APausedSpanCountsAnInstancedDrawExactlyOnce",
|
||||
"DirectGLES.PrimitivesGeneratedNoXfbScenario.ASpanMixingActiveAndInactiveDrawsAccumulatesBoth",
|
||||
"DirectGLES.PrimitivesGeneratedNoXfbScenario.CountsADrawMadeWithNoCaptureSpan",
|
||||
"DirectGLES.PrimitivesGeneratedNoXfbScenario.CountsATessellatedPatchWithNoCaptureSpan",
|
||||
"DirectGLES.PrimitivesGeneratedNoXfbScenario.CountsUnderRasterizerDiscardWithNoCaptureSpan",
|
||||
"DirectGLES.PrimitivesGeneratedNoXfbScenario.TheRerouteIsActuallyArmedWhenTheEnvironmentPinsItOn",
|
||||
"DirectGLES.ResourceSubsystemControlScenario.ClearingTheP3aBitsStopsTheEmissionsAndNotThePixels",
|
||||
"DirectGLES.ResourceSubsystemOn.LargeArenaAdoptionScenario.ASessionThatCannotRunT0FallsBackToT2OnceByName",
|
||||
"DirectGLES.ResourceSubsystemOn.LargeArenaAdoptionScenario.AStreamSessionRefusesTheAdoptTierOnceByName",
|
||||
"DirectGLES.ResourceSubsystemOn.LargeArenaAdoptionScenario.AnAdoptionCostsExactlyOneMapPersistentRoundtrip",
|
||||
"DirectGLES.Spawn.ClipDistanceScenario.ADisabledClipDistanceRemovesNothing",
|
||||
"DirectGLES.Spawn.ClipDistanceScenario.TheEnablesAreIndependentPerDistance",
|
||||
"DirectGLES.Spawn.ForcedDs.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.Spawn.ForcedDs.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.Spawn.Glsl420DeclarationScenario.AnArrayOfSamplerArraysIsHonouredOrDeclinedCleanly",
|
||||
"DirectGLES.Spawn.ImageTargetKindScenario.IgnoresLayerForTexture2DMultisample",
|
||||
"DirectGLES.Spawn.ImageTargetKindScenario.LoadsTexture2DMultisample",
|
||||
"DirectGLES.Spawn.ImageTargetKindScenario.LoadsTexture2DMultisampleArray",
|
||||
"DirectGLES.Spawn.ImageTargetKindScenario.StoresTexture2DMultisample",
|
||||
"DirectGLES.Spawn.ImageTargetKindScenario.StoresTexture2DMultisampleArray",
|
||||
"DirectGLES.Spawn.IterationRPFirstReductionScenario.IndexedInputTopologyAndReduction",
|
||||
"DirectGLES.Spawn.IterationRPFirstReductionScenario.SampledRgba32fFirstAverage",
|
||||
"DirectGLES.Spawn.IterationRPProgram203Scenario.FixedCompleteInputProducesFixedCompleteGoldenOutput",
|
||||
"DirectGLES.Spawn.IterationRPScratchFixScenario.FixtureShapedReductionSumsEveryInvocation",
|
||||
"DirectGLES.Spawn.IterationRPScratchFixScenario.WideFixtureShapedReductionSumsEveryInvocation",
|
||||
"DirectGLES.Spawn.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectGLES.Spawn.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectGLES.Spawn.Xfb.XfbRepeatedCaptureScenario.AVertexOnlyAdjacencyCaptureRecords",
|
||||
"DirectGLES.Split.ClipDistanceScenario.ADisabledClipDistanceRemovesNothing",
|
||||
"DirectGLES.Split.ClipDistanceScenario.TheEnablesAreIndependentPerDistance",
|
||||
"DirectGLES.Split.ForcedDs.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.Split.ForcedDs.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.Split.Glsl420DeclarationScenario.AnArrayOfSamplerArraysIsHonouredOrDeclinedCleanly",
|
||||
"DirectGLES.Split.ImageTargetKindScenario.IgnoresLayerForTexture2DMultisample",
|
||||
"DirectGLES.Split.ImageTargetKindScenario.LoadsTexture2DMultisample",
|
||||
"DirectGLES.Split.ImageTargetKindScenario.LoadsTexture2DMultisampleArray",
|
||||
"DirectGLES.Split.ImageTargetKindScenario.StoresTexture2DMultisample",
|
||||
"DirectGLES.Split.ImageTargetKindScenario.StoresTexture2DMultisampleArray",
|
||||
"DirectGLES.Split.IterationRPFirstReductionScenario.IndexedInputTopologyAndReduction",
|
||||
"DirectGLES.Split.IterationRPFirstReductionScenario.SampledRgba32fFirstAverage",
|
||||
"DirectGLES.Split.IterationRPProgram203Scenario.FixedCompleteInputProducesFixedCompleteGoldenOutput",
|
||||
"DirectGLES.Split.IterationRPScratchFixScenario.FixtureShapedReductionSumsEveryInvocation",
|
||||
"DirectGLES.Split.IterationRPScratchFixScenario.WideFixtureShapedReductionSumsEveryInvocation",
|
||||
"DirectGLES.Split.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectGLES.Split.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectGLES.Split.Xfb.XfbRepeatedCaptureScenario.AVertexOnlyAdjacencyCaptureRecords",
|
||||
"DirectGLES.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectGLES.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectGLES.StorageBufferRegrowScenario.NStorageDefinitionsCostNMapPersistentRoundtripsNotOnePerDraw",
|
||||
"DirectGLES.Tcp.ClipDistanceScenario.ADisabledClipDistanceRemovesNothing",
|
||||
"DirectGLES.Tcp.ClipDistanceScenario.TheEnablesAreIndependentPerDistance",
|
||||
"DirectGLES.Tcp.ForcedDs.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.Tcp.ForcedDs.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.Tcp.Glsl420DeclarationScenario.AnArrayOfSamplerArraysIsHonouredOrDeclinedCleanly",
|
||||
"DirectGLES.Tcp.ImageTargetKindScenario.IgnoresLayerForTexture2DMultisample",
|
||||
"DirectGLES.Tcp.ImageTargetKindScenario.LoadsTexture2DMultisample",
|
||||
"DirectGLES.Tcp.ImageTargetKindScenario.LoadsTexture2DMultisampleArray",
|
||||
"DirectGLES.Tcp.ImageTargetKindScenario.StoresTexture2DMultisample",
|
||||
"DirectGLES.Tcp.ImageTargetKindScenario.StoresTexture2DMultisampleArray",
|
||||
"DirectGLES.Tcp.IterationRPFirstReductionScenario.IndexedInputTopologyAndReduction",
|
||||
"DirectGLES.Tcp.IterationRPFirstReductionScenario.SampledRgba32fFirstAverage",
|
||||
"DirectGLES.Tcp.IterationRPProgram203Scenario.FixedCompleteInputProducesFixedCompleteGoldenOutput",
|
||||
"DirectGLES.Tcp.IterationRPScratchFixScenario.FixtureShapedReductionSumsEveryInvocation",
|
||||
"DirectGLES.Tcp.IterationRPScratchFixScenario.WideFixtureShapedReductionSumsEveryInvocation",
|
||||
"DirectGLES.Tcp.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectGLES.Tcp.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectGLES.Tcp.Xfb.XfbRepeatedCaptureScenario.AVertexOnlyAdjacencyCaptureRecords",
|
||||
"DirectGLES.TextureUploadShapeScenario.TheEmittedUploadShapeIsRecordedAndTheTwoSidesAgree",
|
||||
"DirectGLES.TriangleScenario.TheServerStampedAVerbBoundaryOnThisDrawingFrame",
|
||||
"DirectGLES.UnlocatedIoBlockScenario.TheEmulationIsActuallyArmedWhenTheEnvironmentPinsItOn",
|
||||
"DirectGLES.UnwrittenPositionOutputScenario.CapturingAnUnwrittenPositionStillDraws",
|
||||
"DirectGLES.ViewportArrayScenario.WithoutTheEmulationEveryIndexCollapsesOntoViewportZero",
|
||||
"DirectGLES.WireIndirectDispatchScenario.ShaderWrittenGroupCountsWithoutAnApplicationBarrierAreOrdered",
|
||||
"DirectGLES.WireIndirectDrawScenario.ShaderWrittenCommandsWithoutAnApplicationBarrierAreOrdered",
|
||||
"DirectGLES.WireMipShapeScenario.Depth1DChainWithoutANativeBlitDeclinesByName",
|
||||
"DirectGLES.XfbRepeatedCaptureScenario.AVertexOnlyAdjacencyCaptureRecords",
|
||||
"DirectVulkan.AsyncCompileScenario.ExtensionStringMatchesTheConfiguration",
|
||||
"DirectVulkan.AsyncCompileScenario.IrisShapedTwoPhaseBatchRendersCorrectly",
|
||||
"DirectVulkan.AsyncOn.AsyncCompileScenario.IrisShapedTwoPhaseBatchRendersCorrectly",
|
||||
"DirectVulkan.ClipDistanceScenario.ADisabledClipDistanceRemovesNothing",
|
||||
"DirectVulkan.ClipDistanceScenario.TheEnablesAreIndependentPerDistance",
|
||||
"DirectVulkan.CsoContentAddressingScenario.TheBlendToggleMintsBoundedlyWithContentAddressingAndPerBindWithout",
|
||||
"DirectVulkan.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectVulkan.F1WireScenario.EachWireFrameHasZeroResidualPulls",
|
||||
"DirectVulkan.F1WireScenario.GenerateMipmapDepthWithoutNativeBlitPixels",
|
||||
"DirectVulkan.F1WireScenario.GenerateMipmapWithoutAShaderArmShapeDeclinesAndKeepsTheSession",
|
||||
"DirectVulkan.F1WireScenario.GenerateMipmapWithoutNativeBlitPixels",
|
||||
"DirectVulkan.FencePollScenario.PacedFrameFenceWaitsBench",
|
||||
"DirectVulkan.GenerateMipmapServerScenario.Rgb16fDrawnBaseWithARefusedReadbackDeclinesByName",
|
||||
"DirectVulkan.GenerateMipmapServerScenario.Rgb16fUploadedBaseWithARefusedReadbackIsFilteredFromTheStore",
|
||||
"DirectVulkan.Glsl420DeclarationScenario.AnAtomicCounterCompilesWithoutTheSsboExtension",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.AFramebufferAtARecycledAddressDoesNotInheritItsPredecessorsTwin",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.AProgramAtARecycledAddressDoesNotInheritItsPredecessorsShaderCso",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.ARenderbufferAtARecycledAddressDoesNotInheritItsPredecessorsStorage",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.ASamplerAtARecycledAddressDoesNotInheritItsPredecessorsParameters",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.ATextureAtARecycledAddressDoesNotInheritItsPredecessorsSamplerView",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.ATextureAtARecycledAddressDoesNotInheritItsPredecessorsTwin",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.DestroyedFramebuffersReturnTheirFramebufferSlots",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.DestroyedProgramsReturnTheirShaderCsoSlots",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.DestroyedSamplersReturnTheirSamplerCsoSlots",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.DestroyedTexturesReturnTheirSamplerViewSlots",
|
||||
"DirectVulkan.HandleRecycle.Handles.HandleRecycleScenario.EvictedPipelineCompositesReturnTheirShaderCsoSlots",
|
||||
"DirectVulkan.HandleRecycleScenario.ABufferAtARecycledAddressDoesNotInheritItsPredecessorsContents",
|
||||
"DirectVulkan.HandleRecycleScenario.AFramebufferAtARecycledAddressDoesNotInheritItsPredecessorsTwin",
|
||||
"DirectVulkan.HandleRecycleScenario.AProgramAtARecycledAddressDoesNotInheritItsPredecessorsShaderCso",
|
||||
"DirectVulkan.HandleRecycleScenario.ARenderbufferAtARecycledAddressDoesNotInheritItsPredecessorsStorage",
|
||||
"DirectVulkan.HandleRecycleScenario.ASamplerAtARecycledAddressDoesNotInheritItsPredecessorsParameters",
|
||||
"DirectVulkan.HandleRecycleScenario.ATextureAtARecycledAddressDoesNotInheritItsPredecessorsSamplerView",
|
||||
"DirectVulkan.HandleRecycleScenario.ATextureAtARecycledAddressDoesNotInheritItsPredecessorsTwin",
|
||||
"DirectVulkan.HandleRecycleScenario.AVertexArrayAtARecycledAddressDoesNotInheritItsPredecessorsVertexBufferSet",
|
||||
"DirectVulkan.HandleRecycleScenario.AVertexArrayAtARecycledAddressDoesNotInheritItsPredecessorsVertexInput",
|
||||
"DirectVulkan.HandleRecycleScenario.DestroyedFramebuffersReturnTheirFramebufferSlots",
|
||||
"DirectVulkan.HandleRecycleScenario.DestroyedProgramsReturnTheirShaderCsoSlots",
|
||||
"DirectVulkan.HandleRecycleScenario.DestroyedRenderbuffersReturnTheirRenderbufferSlots",
|
||||
"DirectVulkan.HandleRecycleScenario.DestroyedSamplersReturnTheirSamplerCsoSlots",
|
||||
"DirectVulkan.HandleRecycleScenario.DestroyedTexturesReturnTheirSamplerViewSlots",
|
||||
"DirectVulkan.HandleRecycleScenario.DestroyedTexturesReturnTheirTextureSlots",
|
||||
"DirectVulkan.HandleRecycleScenario.DestroyedVertexArraysReturnTheirVertexElementsSlots",
|
||||
"DirectVulkan.HandleRecycleScenario.EvictedPipelineCompositesReturnTheirShaderCsoSlots",
|
||||
"DirectVulkan.ImageTargetKindScenario.IgnoresLayerForTexture2DMultisample",
|
||||
"DirectVulkan.ImageTargetKindScenario.LoadsTexture2DMultisample",
|
||||
"DirectVulkan.ImageTargetKindScenario.LoadsTexture2DMultisampleArray",
|
||||
"DirectVulkan.ImageTargetKindScenario.StoresTexture2DMultisample",
|
||||
"DirectVulkan.ImageTargetKindScenario.StoresTexture2DMultisampleArray",
|
||||
"DirectVulkan.IterationRPFirstReductionScenario.IndexedInputTopologyAndReduction",
|
||||
"DirectVulkan.IterationRPFirstReductionScenario.SampledRgba32fFirstAverage",
|
||||
"DirectVulkan.LargeArenaAdoptionScenario.ASessionThatCannotRunT0FallsBackToT2OnceByName",
|
||||
"DirectVulkan.LargeArenaAdoptionScenario.AStreamSessionRefusesTheAdoptTierOnceByName",
|
||||
"DirectVulkan.LargeArenaAdoptionScenario.AnAdoptionCostsExactlyOneMapPersistentRoundtrip",
|
||||
"DirectVulkan.LargeArenaAdoptionScenario.TheArenaLandsInTheTierItsLaneDeclares",
|
||||
"DirectVulkan.MagmaRunAheadScenario.GpuClearSurvivesTheFirstStorageImageUpgrade",
|
||||
"DirectVulkan.MagmaRunAheadScenario.MixedNativeAndConvertedGpuVertexStreamsKeepTheirReservation",
|
||||
"DirectVulkan.MagmaRunAheadScenario.PresentCreditActuallyParksTheClientAtItsConfiguredLimit",
|
||||
"DirectVulkan.MagmaRunAheadScenario.QueuedBufferVersionsAndDeletedNameReuseKeepTheirPixels",
|
||||
"DirectVulkan.MagmaRunAheadScenario.QueuedGpuWritesReadBackTheLastDispatchBytes",
|
||||
"DirectVulkan.MagmaRunAheadScenario.QueuedProgramRebindsKeepEachUniformSnapshot",
|
||||
"DirectVulkan.MagmaRunAheadScenario.TextureUploadCannotOvertakeThePreviouslyQueuedDraw",
|
||||
"DirectVulkan.MagmaWireCacheScenario.FramebufferReattachmentDistinguishesMipAndLayer",
|
||||
"DirectVulkan.MagmaWireCacheScenario.FramebufferRespecifyRebindsTheNewNativeImage",
|
||||
"DirectVulkan.MagmaWireCacheScenario.FramebufferSrgbPolicyAtoBtoAUsesDistinctFormats",
|
||||
"DirectVulkan.MagmaWireCacheScenario.FramebuffersAtoBtoAKeepDistinctAttachments",
|
||||
"DirectVulkan.MagmaWireCacheScenario.SamplerRespecifyKeepsOldAndNewNativeImages",
|
||||
"DirectVulkan.MagmaWireCacheScenario.SamplerSwizzleAtoBtoAKeepsEachQueuedPixel",
|
||||
"DirectVulkan.MagmaWireCacheScenario.SamplerViewsDistinguishMipLayerAndViewType",
|
||||
"DirectVulkan.MagmaWireReclaimScenario.ADrawAfterTheEarlyReclaimFollowsTheNewStoreNotTheMemoizedHandle",
|
||||
"DirectVulkan.MagmaWireReclaimScenario.DescriptorSetsRewindInsideOneLongFrameAfterTheirSubmitRetires",
|
||||
"DirectVulkan.MagmaWireReclaimScenario.ManySmallRespecifyAndDrawRoundsStayUnderTheStoreCountCeiling",
|
||||
"DirectVulkan.MagmaWireReclaimScenario.RespecifiesWithNoDrawBetweenKeepTheLiveStoreCountBounded",
|
||||
"DirectVulkan.MagmaWireReclaimScenario.RespecifyAndDrawEachStoreInOneFrameStaysWithinTheDeferredBudget",
|
||||
"DirectVulkan.ObjectSubsystemControlScenario.ASamplerBitWithoutTheTextureBitIsRefusedAndNamed",
|
||||
"DirectVulkan.ObjectSubsystemControlScenario.ATextureBitWithoutTheSamplerBitIsRefusedAndNamed",
|
||||
"DirectVulkan.ObjectSubsystemControlScenario.ClearingTheP4aBitsStopsTheEmissionsAndNotThePixels",
|
||||
"DirectVulkan.ObjectSubsystemControlScenario.TheAppliersNoConsumerBeltNeverFiresBehindTheClientsGate",
|
||||
"DirectVulkan.P4aFinalFixScenario.AnImageBindAfterAllocationReachesTheApplierAsAMetadataRespecify",
|
||||
"DirectVulkan.P4aFinalFixScenario.ConsecutiveDefinitionsNoVerbBetween",
|
||||
"DirectVulkan.P4aFinalFixScenario.GenerateMipmapAcrossAnUnrelatedDraw",
|
||||
"DirectVulkan.P4aFinalFixScenario.GenerateMipmapImmediately",
|
||||
"DirectVulkan.P4aFinalFixScenario.LevelZeroConsumedBeforeLevelOne",
|
||||
"DirectVulkan.P4aFinalFixScenario.PerLevelDefinitionAcrossAnUnrelatedDraw",
|
||||
"DirectVulkan.P4aSeamAuditScenario.ARenderbufferRestoragedWhileAttachedReachesTheFramebufferRecord",
|
||||
"DirectVulkan.P4aSeamAuditScenario.ATextureRespecifiedToThreeChannelsWhileAttachedReachesTheFramebufferRecord",
|
||||
"DirectVulkan.P4aSeamAuditScenario.ATextureRespecifiedWhileAttachedReachesTheFramebufferRecord",
|
||||
"DirectVulkan.PartialUploadOverGpuContentScenario.OneDimensionalArraySubImageKeepsTheGpuClearedLayer",
|
||||
"DirectVulkan.PersistentCoherentMapScenario.TheMapLandsInTheArmItsLaneDeclares",
|
||||
"DirectVulkan.PipeVerifyArmingScenario.Armed",
|
||||
"DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReported",
|
||||
"DirectVulkan.PipeVerifyArmingScenario.CorruptedFieldIsReportedOnTheServerRead",
|
||||
"DirectVulkan.PointSizeDemotionScenario.TheDemotionIsActuallyArmedWhenTheEnvironmentPinsItOn",
|
||||
"DirectVulkan.PoisonOmissionScenario.OmittedFieldAbortsOnThatVerb",
|
||||
"DirectVulkan.PoisonOmissionScenario.TheSequenceThePoisonControlsRun",
|
||||
"DirectVulkan.PoisonOmissionScenario.WithoutOmissionCompletes",
|
||||
"DirectVulkan.PrimitivesGeneratedNoXfbScenario.TheRerouteIsActuallyArmedWhenTheEnvironmentPinsItOn",
|
||||
"DirectVulkan.ResourceSubsystemControlScenario.ClearingTheP3aBitsStopsTheEmissionsAndNotThePixels",
|
||||
"DirectVulkan.SnormAttachmentScenario.SignedNormalizedAttachmentsRoundTripTheirChannelValues",
|
||||
"DirectVulkan.SnormAttachmentScenario.SignedNormalizedColorAttachmentsReportComplete",
|
||||
"DirectVulkan.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectVulkan.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectVulkan.StorageBufferRegrowScenario.NStorageDefinitionsCostNMapPersistentRoundtripsNotOnePerDraw",
|
||||
"DirectVulkan.TextureParamsWithoutASamplerViewScenario.ACopyImageEndpointOnlyTexturesParamsReachTheDriver",
|
||||
"DirectVulkan.TextureParamsWithoutASamplerViewScenario.AReadAttachmentOnlyTexturesDepthStencilModeReachesTheDriver",
|
||||
"DirectVulkan.TextureParamsWithoutASamplerViewScenario.AnAttachmentOnlyTexturesSwizzleReachesTheDriver",
|
||||
"DirectVulkan.TextureParamsWithoutASamplerViewScenario.AnImageUnitOnlyTexturesSwizzleSurvivesARequireImageBindableStorageRemint",
|
||||
"DirectVulkan.TextureUploadShapeScenario.TheEmittedUploadShapeIsRecordedAndTheTwoSidesAgree",
|
||||
"DirectVulkan.ThreeChannelAttachmentScenario.DstAlphaBlendingSeesOneInAWidenedAttachment",
|
||||
"DirectVulkan.ThreeChannelAttachmentScenario.ThreeChannelColorAttachmentsReportComplete",
|
||||
"DirectVulkan.ThreeChannelAttachmentScenario.WidenedAttachmentReadsBackOpaqueWhileItsNeighbourKeepsItsAlpha",
|
||||
"DirectVulkan.TriangleScenario.TheServerStampedAVerbBoundaryOnThisDrawingFrame",
|
||||
"DirectVulkan.UnlocatedIoBlockScenario.TheEmulationIsActuallyArmedWhenTheEnvironmentPinsItOn",
|
||||
"DirectVulkan.ViewportArrayScenario.WithoutTheEmulationEveryIndexCollapsesOntoViewportZero",
|
||||
"DirectVulkan.WireMipShapeScenario.Depth1DChainWithoutANativeBlitDeclinesByName"
|
||||
],
|
||||
"names_from": "junit-integration-monolith-control-monolith/integration",
|
||||
"optional": "runs only when transport_pinned.py cannot prove the exclusion; the inproc-acceptance leg then runs every integration-gpu entry under this stem instead",
|
||||
"instead_of": "junit-integration-inproc-acceptance-inproc/integration"
|
||||
},
|
||||
"junit-integration-inproc-acceptance-inproc/integration-staged-copy": {
|
||||
"skipped": [
|
||||
"DirectGLES.CubeFaceReadbackScenario.CubeMapViewOfAnArrayReadsTheFaceEachZOffsetNames",
|
||||
@@ -1978,6 +2270,62 @@
|
||||
"DirectVulkan.XfbRepeatedCaptureScenario.ASpanThatNeverDrawsLeavesTheCaptureBufferAlone"
|
||||
]
|
||||
},
|
||||
"junit-integration-inproc-acceptance-inproc/integration-staged-copy-all": {
|
||||
"skipped": [
|
||||
"DirectGLES.CubeFaceReadbackScenario.CubeMapViewOfAnArrayReadsTheFaceEachZOffsetNames",
|
||||
"DirectGLES.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.F1WireScenario.ShortUniformBufferRangePadsMissingBytes",
|
||||
"DirectGLES.F1WireScenario.SubWordUniformBufferRangePadsMissingBytes",
|
||||
"DirectGLES.F1WireScenario.UnalignedAtomicCounterRangeDeclinesAndTheSessionLives",
|
||||
"DirectGLES.ForcedDepthStencilEmulation.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.ForcedDepthStencilEmulation.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.GenerateMipmapServerScenario.Rgb16fDrawnBaseWithARefusedReadbackDeclinesByName",
|
||||
"DirectGLES.GenerateMipmapServerScenario.Rgb16fUploadedBaseWithARefusedReadbackIsFilteredFromTheStore",
|
||||
"DirectGLES.HandleRecycleScenario.ABufferAtARecycledAddressDoesNotInheritItsPredecessorsContents",
|
||||
"DirectGLES.HandleRecycleScenario.AVertexArrayAtARecycledAddressDoesNotInheritItsPredecessorsVertexBufferSet",
|
||||
"DirectGLES.LargeArenaAdoptionScenario.ASessionThatCannotRunT0FallsBackToT2OnceByName",
|
||||
"DirectGLES.LargeArenaAdoptionScenario.AStreamSessionRefusesTheAdoptTierOnceByName",
|
||||
"DirectGLES.LargeArenaAdoptionScenario.AnAdoptionCostsExactlyOneMapPersistentRoundtrip",
|
||||
"DirectGLES.LargeArenaAdoptionScenario.TheArenaLandsInTheTierItsLaneDeclares",
|
||||
"DirectGLES.MagmaRunAheadScenario.QueuedBufferVersionsAndDeletedNameReuseKeepTheirPixels",
|
||||
"DirectGLES.ResourceSubsystemOn.LargeArenaAdoptionScenario.ASessionThatCannotRunT0FallsBackToT2OnceByName",
|
||||
"DirectGLES.ResourceSubsystemOn.LargeArenaAdoptionScenario.AStreamSessionRefusesTheAdoptTierOnceByName",
|
||||
"DirectGLES.ResourceSubsystemOn.LargeArenaAdoptionScenario.AnAdoptionCostsExactlyOneMapPersistentRoundtrip",
|
||||
"DirectGLES.Spawn.ForcedDs.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.Spawn.ForcedDs.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.Spawn.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectGLES.Spawn.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectGLES.Split.ForcedDs.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.Split.ForcedDs.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.Split.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectGLES.Split.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectGLES.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectGLES.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectGLES.StorageBufferRegrowScenario.NStorageDefinitionsCostNMapPersistentRoundtripsNotOnePerDraw",
|
||||
"DirectGLES.Tcp.ForcedDs.DepthStencilReadbackMatrixScenario.AFlippedMultisampleResolveMirrorsTheBandsAndAScaleDeclines",
|
||||
"DirectGLES.Tcp.ForcedDs.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectGLES.Tcp.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectGLES.Tcp.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectVulkan.DepthStencilReadbackMatrixScenario.SeparateDepthAndStencilAttachmentsAreBothReadable",
|
||||
"DirectVulkan.GenerateMipmapServerScenario.Rgb16fDrawnBaseWithARefusedReadbackDeclinesByName",
|
||||
"DirectVulkan.GenerateMipmapServerScenario.Rgb16fUploadedBaseWithARefusedReadbackIsFilteredFromTheStore",
|
||||
"DirectVulkan.Glsl420DeclarationScenario.AnAtomicCounterCompilesWithoutTheSsboExtension",
|
||||
"DirectVulkan.HandleRecycleScenario.ABufferAtARecycledAddressDoesNotInheritItsPredecessorsContents",
|
||||
"DirectVulkan.HandleRecycleScenario.AVertexArrayAtARecycledAddressDoesNotInheritItsPredecessorsVertexBufferSet",
|
||||
"DirectVulkan.LargeArenaAdoptionScenario.ASessionThatCannotRunT0FallsBackToT2OnceByName",
|
||||
"DirectVulkan.LargeArenaAdoptionScenario.AStreamSessionRefusesTheAdoptTierOnceByName",
|
||||
"DirectVulkan.LargeArenaAdoptionScenario.AnAdoptionCostsExactlyOneMapPersistentRoundtrip",
|
||||
"DirectVulkan.LargeArenaAdoptionScenario.TheArenaLandsInTheTierItsLaneDeclares",
|
||||
"DirectVulkan.MagmaRunAheadScenario.QueuedBufferVersionsAndDeletedNameReuseKeepTheirPixels",
|
||||
"DirectVulkan.SsboDeclarationFormScenario.PackedBlockWithAnUnsizedArrayBeforeAnotherMember",
|
||||
"DirectVulkan.SsboDeclarationFormScenario.TwoUnsizedArraysInOneBlock",
|
||||
"DirectVulkan.StorageBufferRegrowScenario.NStorageDefinitionsCostNMapPersistentRoundtripsNotOnePerDraw"
|
||||
],
|
||||
"names_from": "junit-integration-monolith-control-monolith/integration-staged-copy",
|
||||
"optional": "runs only when transport_pinned.py cannot prove the exclusion; the inproc-acceptance leg then runs every integration-gpu entry under this stem instead",
|
||||
"instead_of": "junit-integration-inproc-acceptance-inproc/integration-staged-copy"
|
||||
},
|
||||
"junit-integration-inproc-acceptance-inproc/primary-inproc": {
|
||||
"skipped": [],
|
||||
"names": [
|
||||
|
||||
Reference in New Issue
Block a user