40 lines
2.2 KiB
Markdown
40 lines
2.2 KiB
Markdown
# STEP20C pending-input event-loop fixture — EXPERIMENTAL
|
|
|
|
See the [protocol](../../../docs/design/STEP20C_EVENT_LOOP_PENDING_INPUT_PROBE.md).
|
|
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.
|
|
|
|
```sh
|
|
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`.
|