mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 18:13:23 +09:00
[CI] (Disaggregated): P7's packed-float mip gate flips to green, by name
5310ff62 generates the R11F_G11F_B10F chain with a real GPU shader blit and gives
F1WireScenario.GenerateMipmapPackedFloatPixels pixel assertions, so the entry now
passes under strict split state and `Magma:mipmap-native-format@P7` survives in no
source file. The old arm would therefore have failed its own `test rc -ne 0`.
Both halves of the arm are retired in one commit, because either alone is a lie:
CMakeLists' fm loop drops the special case that gave this slot the
`integration-magma-p7-known-red` label, so the entry is discovered by the ordinary
`integration-magma-split` lane - the same label, environment and pixels assertion
as GenerateMipmapPixels and GenerateMipmapDepthPixels next to it, and the same
label the dual-block census lane already re-runs.
The lane membership alone would not be the old gate's equal: a lane counts its
entries' exit codes, not their absence. So the CI step keeps its shape and inverts
its expectation - the same single named entry, discovered and run by name under
MOBILEGL_IPC_STRICT_ERRORS=1 and MOBILEGL_IPC_ROLE_SPLIT_STATE=1, now asserted
through split_log_paths.py's require_green, which rejects a skip, a missing entry
and a failure alike. No assertion is skipped away or weakened: the pixels are
checked by the test, and the named-refusal check the log carried is what the GPU
blit retired.
This commit is contained in:
+17
-16
@@ -1638,7 +1638,12 @@ jobs:
|
||||
${{ runner.temp }}/magma-cache-syncval
|
||||
if-no-files-found: ignore
|
||||
|
||||
- name: Magma P7 native mip format debt stays a named refusal
|
||||
# The packed-float chain is generated by a real GPU shader blit, so this entry sits in the
|
||||
# integration-magma-split lane with its siblings (CMakeLists.txt's fm loop) and carries
|
||||
# their pixels assertion. Its named check survives the flip in the only direction that has
|
||||
# evidence behind it: the case must EXECUTE, PASS, and never skip - a lane-level exit code
|
||||
# alone would not separate "generated" from "quietly absent".
|
||||
- name: Magma P7 packed-float mip generation executes green under strict split state
|
||||
working-directory: build-split
|
||||
env:
|
||||
MOBILEGL_ITEST_REQUIRE_GPU: "1"
|
||||
@@ -1646,21 +1651,17 @@ jobs:
|
||||
MOBILEGL_IPC_ROLE_SPLIT_STATE: "1"
|
||||
MOBILEGL_TRANSPORT: "inproc"
|
||||
run: |
|
||||
private_log=MobileGL/MG_IntegrationTest/p5f-fm-GenerateMipmapPackedFloatPixels.log
|
||||
rm -f "${private_log}"
|
||||
rc=0
|
||||
ctest -L integration-magma-p7-known-red --no-tests=error --output-on-failure \
|
||||
--output-junit "${RUNNER_TEMP}/magma-p7.xml" || rc=$?
|
||||
test "${rc}" -ne 0
|
||||
python3 - "${RUNNER_TEMP}/magma-p7.xml" "${private_log}" <<'PY'
|
||||
import pathlib, sys, xml.etree.ElementTree as ET
|
||||
cases = list(ET.parse(sys.argv[1]).getroot().iter("testcase"))
|
||||
assert len(cases) == 1, "the P7 probe must execute exactly one named case"
|
||||
case = cases[0]
|
||||
assert case.get("name", "").endswith("GenerateMipmapPackedFloatPixels"), case.attrib
|
||||
assert case.find("skipped") is None and case.find("failure") is not None, "the P7 probe must fail, never skip"
|
||||
log = pathlib.Path(sys.argv[2]).read_text()
|
||||
assert 'Fatal{UnmigratedVerb, "Magma:mipmap-native-format@P7"}' in log, "missing named native-format refusal"
|
||||
p7_case='^DirectVulkan\.Split\.Fm\.F1WireScenario\.GenerateMipmapPackedFloatPixels$'
|
||||
ctest -R "${p7_case}" --show-only=json-v1 > "${RUNNER_TEMP}/magma-p7-lane.json"
|
||||
ctest -R "${p7_case}" --no-tests=error --output-on-failure \
|
||||
--output-junit "${RUNNER_TEMP}/magma-p7.xml"
|
||||
python3 - "${GITHUB_WORKSPACE}/MobileGL/MG_IntegrationTest/Harness/split_log_paths.py" \
|
||||
"${RUNNER_TEMP}/magma-p7-lane.json" "${RUNNER_TEMP}/magma-p7.xml" <<'PY'
|
||||
import importlib.util, json, sys
|
||||
spec = importlib.util.spec_from_file_location("slp", sys.argv[1])
|
||||
slp = importlib.util.module_from_spec(spec); spec.loader.exec_module(slp)
|
||||
name = "DirectVulkan.Split.Fm.F1WireScenario.GenerateMipmapPackedFloatPixels"
|
||||
slp.require_green(json.load(open(sys.argv[2])), sys.argv[3], [name])
|
||||
PY
|
||||
|
||||
# Client vertex/index inputs are copied into owned wire buffer resources.
|
||||
|
||||
@@ -2433,19 +2433,16 @@ if (MOBILEGL_BUILD_DISAGGREGATED)
|
||||
"MOBILEGL_BACKEND_TYPE=DirectVulkan" "MOBILEGL_TRANSPORT=inproc"
|
||||
"MOBILEGL_ITEST_REQUIRE_GPU=1" "MGITEST_SPLIT_LANE=1"
|
||||
${MGL_ITEST_CAPABILITY_ENV} ${MGL_ITEST_COMMON_ENV})
|
||||
# Every entry here is green, R11F_G11F_B10F packed-float mip generation included: the GPU
|
||||
# shader blit retires the named native-format refusal, so GenerateMipmapPackedFloatPixels
|
||||
# carries its siblings' label and their pixels assertion.
|
||||
foreach(fmSlot ComputeImageStoreThroughViewPreservesOtherRootLayer EnabledVertexBufferDrawKeepsNamedP7Fatal SrgbDrawTracksFramebufferConversion Texture1DFramebufferClearPixels VertexIdSamplerAndScalarUniformPixels ComputeImageStoreFramebufferPixels PartialTextureUploadPreservesGpuClearPixels TextureViewClearTargetsItsRootMipAndLayer ClearBufferfiPixels ClearBufferfvPixels ClearBufferivPixels ClearBufferuivPixels ClearNamedFramebufferfiPixels ClearNamedFramebufferfvPixels ClearNamedFramebufferivPixels ClearNamedFramebufferuivPixels CopyTexImage2DPixels CopyTexSubImage2DPixels GenerateMipmapPixels GenerateMipmapPackedFloatPixels GenerateMipmapDepthPixels)
|
||||
set(MGL_ITEST_FM_LABEL "integration-magma-split")
|
||||
if (fmSlot STREQUAL "GenerateMipmapPackedFloatPixels")
|
||||
# R11F_G11F_B10F mip blits already fail on the baseline Magma lane.
|
||||
# Preserve a separately named negative probe for this P7 native-format debt.
|
||||
set(MGL_ITEST_FM_LABEL "integration-magma-p7-known-red")
|
||||
endif()
|
||||
gtest_discover_tests(MobileGLIntegrationTest
|
||||
TEST_PREFIX "DirectVulkan.Split.Fm."
|
||||
TEST_FILTER "F1WireScenario.${fmSlot}"
|
||||
DISCOVERY_TIMEOUT 30
|
||||
PROPERTIES
|
||||
LABELS "${MGL_ITEST_FM_LABEL}"
|
||||
LABELS "integration-magma-split"
|
||||
TIMEOUT ${MGL_ITEST_TIMEOUT}
|
||||
ENVIRONMENT "${MGL_ITEST_MAGMA_WIRE_ENVIRONMENT}\;MOBILEGL_LOG_FILE_PATH=${CMAKE_CURRENT_BINARY_DIR}/p5f-fm-${fmSlot}.log")
|
||||
endforeach()
|
||||
|
||||
@@ -43,5 +43,7 @@
|
||||
# The expanded Magma lane also covers application VBO/EBO/UBO/SSBO and persistent
|
||||
# map consumers. The former VBO fatal case now asserts rendered pixels; no new
|
||||
# field-Fatal expectations or skip exemptions accompany that retirement.
|
||||
# Its named P7 native-format probe has a separate, enforced known-red CI lane.
|
||||
# The former P7 native-format probe now asserts generated pixels too: R11F_G11F_B10F mip
|
||||
# generation goes through the GPU shader blit, so that entry carries the ordinary Magma
|
||||
# lane label and the lane's named green step, not a known-red arm.
|
||||
# Every new Fatal or Admitted in this census remains a regression.
|
||||
|
||||
Reference in New Issue
Block a user