2.2 KiB
STEP20C pending-input event-loop fixture — EXPERIMENTAL
See the protocol.
This fixture rebuilds the pinned private compositor and the same T4 client
in a disposable laboratory. client-flush.patch adds a client-side
wl_display_flush result and monotonic timestamp after each normal
input-region commit. It changes no server handler or scheduler. The existing
private commit, present, surface, hit and delivery traces remain in use.
prep=$(sh tooling/probes/step20c-event-loop-pending-input/prepare.sh)
LAB=$(printf '%s\n' "$prep" | sed -n 's/^LAB=//p')
for mode in control private_standard private_mosaic; do
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-event-loop-pending-input/run.py \
"$LAB" "$mode" --cycles 5
done
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-event-loop-pending-input/analyze.py "$LAB"
The default runner submits an ordinary IPC rendering/camera request and a
normal client region request before waiting for both results. --sequential
keeps the earlier wait-after-each-operation control. --surface-trace 0
disables only the additional private surface log site for a limited timing
comparison. The control SwayFX is not instrumented. Up to five cycles per
mode are allowed. The runner logs submission and completion separately;
the client logs its flush result, and server traces determine application.
The lab contains runtime-private sockets, process-owned logs, captures,
generated runner, builds and binaries; none belongs in Git. A manifest
should hash all regular files under the run and structured result directories,
excluding the manifest itself. Never target the daily Sway IPC socket. Stop
after five unsuccessful interleaving attempts; report
INCONCLUSIVE / NOT EXERCISED and leave the popup variant untested.
The frozen five-cycle campaign is described in the protocol. A later
independent clone replay used one sequential and one asynchronous private
Mosaic cycle only. It confirmed two applied mutations per run, native
commit/present traces and restored client delivery without reopening the
timing search; its 56-file raw manifest hash is
f8b54f2ef7f9caca3837e956341ddb5a62f261d0115840d6fd8b0b3540c1e8b9.