[tools] (P7): a split retrace reds on any MGWIRE-FLOOR unsound-serial-complete line, so the frame-serial floor clamp has a lane

Review ID-P7-34, item 2. The primary B3 fix - the clamp in
VulkanRenderer::OnSubmitsCompletedUpTo that raises the completed-frame-
serial floor only to a serial no in-flight submission still carries - had
nothing behind it: deleting the clamp loop left every lane green and the
OpenRA picture gold on lavapipe (the host's barriers hide the tear). Its
only observable was the per-event MGLOG_W "MGWIRE-FLOOR
unsound-serial-complete".

run_trace_case.cmake now reads that line out of both roles' logs on every
split run, exactly as it already reads Fatal{: the count is printed pass
or fail and any nonzero count is a FATAL_ERROR. The R-16 counter (26 -> 0
on the OpenRA retrace) is thereby a gate.

Red/green on MobileGLTraceReplay.OpenRA.DirectVulkan.SPLIT / .SPAWN:
  clamp loop deleted -> both FAIL at ssim 1.000000 / 0 px:
    MGPipe split: OpenRA DirectVulkan transport=inproc, MGWIRE-FLOOR
    unsound-serial-complete lines: 26
    [mgl-srv-apply/WARN]: MGWIRE-FLOOR unsound-serial-complete #1: advancing
    the completed frame-serial floor to 3, which submission 3 (serial 3)
    still carries
    (spawn: identical, 26)
  clamp restored -> both PASS, 0 lines.
This commit is contained in:
2026-09-22 20:25:11 -04:00
parent cba0c3a110
commit 80b91346d1
+32
View File
@@ -394,5 +394,37 @@ if(DEFINED ENV{MOBILEGL_TRANSPORT} AND NOT "$ENV{MOBILEGL_TRANSPORT}" STREQUAL "
"them is silenced here: this log is the only place they appear, because the console sink "
"is compiled out of the configurations this lane runs.")
endif()
# P7 B3 (review ID-P7-34): THE COMPLETED-FRAME-SERIAL FLOOR'S LANE, read exactly like the
# Fatal census above - both roles' logs, every split run, counted even when zero.
#
# VulkanRenderer::OnSubmitsCompletedUpTo logs one "MGWIRE-FLOOR unsound-serial-complete"
# line (MGLOG_W, unconditional, disaggregated builds only) each time it would raise the
# floor to a frame serial that a submission still in flight carries - the defect behind
# the OpenRA device divergence, where a mid-frame pooled-fence submission retiring
# declared its whole serial complete while the Present submission of the same serial was
# still copying. The clamp there makes the line unreachable, and without this red the
# clamp had no lane: deleting it left every lane green and the picture on lavapipe gold,
# because the host's barriers happen to hide the tear. The count was 26 per OpenRA replay
# before the fix and 0 after; any nonzero count is the floor asserting a completion it
# never waited for, whether or not this driver's timing turned it into pixels.
file(STRINGS "${mobilegl_log}" split_floor REGEX "MGWIRE-FLOOR unsound-serial-complete")
if(EXISTS "${mobilegl_server_log}")
file(STRINGS "${mobilegl_server_log}" split_server_floor REGEX "MGWIRE-FLOOR unsound-serial-complete")
list(APPEND split_floor ${split_server_floor})
endif()
list(LENGTH split_floor split_floor_count)
message(STATUS "MGPipe split: ${split_case} transport=$ENV{MOBILEGL_TRANSPORT}, "
"MGWIRE-FLOOR unsound-serial-complete lines: ${split_floor_count}")
if(split_floor)
list(GET split_floor 0 split_floor_first)
message(STATUS "${split_floor_first}")
message(FATAL_ERROR
"${split_case}: ${split_floor_count} MGWIRE-FLOOR unsound-serial-complete line(s) under "
"MOBILEGL_TRANSPORT=$ENV{MOBILEGL_TRANSPORT}. The completed-frame-serial floor was "
"raised to a serial an in-flight submission still carries, so a streamed buffer write "
"can take the unsynchronised host path over bytes that submission is still copying "
"(magma-b3.md §2). The clamp in VulkanRenderer::OnSubmitsCompletedUpTo is what makes "
"this unreachable; a line here means it was removed or bypassed.")
endif()
endif()
endif()