# The Fatal{UnmigratedPipeInput} pairs the dual-block lane ACTUALLY PRODUCES under
# MOBILEGL_IPC_ROLE_SPLIT_STATE=1 + MOBILEGL_IPC_STRICT_ERRORS=1, one `<field>@<verb>` per line.
#
# P5f (f1), P5F-WIRE-COMPLETENESS.md §4. This is the strict-expected-markers.txt shape turned
# around: the strict lane ratchets ADMITTED pulls (debts a phase has agreed to leave standing);
# this file ratchets the FATAL census of the dual-block rehearsal, which is the full list of
# "this read only ever worked because both roles shared one gPipeInputs". Every entry in the
# census lane aborts on its FIRST such read, so the pairs below are first-blockers, and retiring
# one advances the entry to its next one - the file shrinks package by package (fm/fs/fr/fv)
# and P5f's exit is this file empty with the lane green.
#
# TWO-SIDED, same rule as the strict file (ID-119): split_log_paths.py's `expect-fatal` mode
# fails when a pair appears that is not listed here AND when a pair listed here no longer
# appears. Remove a row in the commit that retires it.
#
# HOW TO REFRESH (never by hand from a guess):
#   ctest --test-dir build-split -L 'integration-split|integration-magma-split' \
#       --show-only=json-v1 > lane.json
#   # reset the private logs, then:
#   MOBILEGL_IPC_ROLE_SPLIT_STATE=1 MOBILEGL_IPC_STRICT_ERRORS=1 \
#       ctest --test-dir build-split -L 'integration-split|integration-magma-split' -j 4 \
#       --output-junit dualblock.xml
#   python3 MobileGL/MG_IntegrationTest/Harness/split_log_paths.py expect-fatal \
#       lane.json dualblock.xml this-file
# and put the census it prints here.
#
# ---------------------------------------------------------------------------------------------
# INITIAL CENSUS (f1, measured on the WSL gate tree ~/w7/p5f-f1 at cfcc12f7, 2026-09-19:
# 181 lane entries [-L 'integration-split|integration-magma-split'], 155 red, EVERY red entry
# carrying one of the pairs below in its private log - zero unnamed crashes; 22 green entries
# are the monolith-arm and the no-pulled-read scenarios, 4 skips are the two PersistentMapArm-
# and two StrictArming-only cases skipping outside their own lanes, all by design).
# Entry counts are first-blocker counts: an entry aborts on its FIRST pulled read, so retiring
# a row advances those entries to their next one. See docs/archive/notes/p5f/f1-report.md.
# ---------------------------------------------------------------------------------------------
#
# P5f wave 2: the expected set is empty after fc -> fe -> fm integration.
# fe retired five original first-blockers: ReadPixels framebuffer/pack readers,
# capture program/ranges, copy-image texture handles, copy destination unit,
# and storage-block program-name validation. fm retired Clear on Magma through
# server framebuffer/resource records. The shared copy-image seam also retires
# GetTextureObject in either package in isolation; it is one removal at integration.
# 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.
# 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.
