swayfx-mosaic/tooling/probes/step20c-optimized-blur-cache/README.md

78 lines
4.4 KiB
Markdown

# Optimized blur cache fixture
**EXPERIMENTAL / PARTIALLY_FEASIBLE; preserved evidence, campaign closed.** Read the
[protocol](../../../docs/design/STEP20C_OPTIMIZED_BLUR_CACHE_PROBE.md) before
running. Reconstruct pinned sources in one new LAB outside Git. Do not use
or reset a historical saved-buffer/effects ledger. No production source,
package, installed library, shader or clipping algorithm changes.
The preparation builds only; the locked ledger's offline tests must pass
before the three single-mode runs. All generated protocols, binaries,
private libraries, PNGs and raw logs remain in LAB. Record every failed
reserved launch/action; no retry for a consumed mode. Analyze offline after
owned-process/socket cleanup. The separate freeze ticket publishes this source-only historical evidence.
## Execution and reconstruction
The V1 campaign is closed in
`/home/fy59/swayfx-mosaic-optimized-blur-_ppdud_y`. C0 failed before captures
through duplicate same-size background configures, without a retry. Its
original `clients-c0-original.c` and `run-c0-original.py` are preserved as
failed fixture evidence. The current client ACKs background configures
without submitting pixels; all A/B images are runner-commanded after a
persistent reservation. C1/C2 completed central cache mutation, filtered
pixels, H2 stability and sampled cleanup; boundary differences remain.
The verdict is **PARTIALLY_FEASIBLE**, architecture **UNDECIDED**. The
freeze publishes this fixture/report without new graphical execution.
Build-only reconstruction in a fresh LAB requires the pinned project
commits in a full clone, Meson/Ninja/C17, installed compatible wlroots
0.20.2/SceneFX build dependencies, Wayland scanner, and network access to
the pinned SceneFX and protocol sources. No system install is used.
```sh
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-optimized-blur-cache/prepare.py
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-optimized-blur-cache/test-budget.py
```
The preparer prints LAB and builds only. It retains failed preflight source
copies/logs and supports a pre-graphics preparation continuation in that LAB;
Meson build continuation should use the existing build directories. The
new `scenefx-cache-trace.patch` and `sway-source-trace.patch` are passive
standalone deltas after the historical clip/timing/guard/presentation chain.
`instrument.py` deterministically generates them from those sources;
no preserved historical patch is rewritten. XML provenance is in
`protocol-provenance.json`: layer-shell is pinned to wlr-protocols
`b010a03648b88d143236de193bddbfea0c08bc84`; the retained XDG XML came from
wayland-protocols 1.49 and has a fixed checked digest. Generated files remain
in LAB. The current and original C clients compile separately with C17 and
fatal warnings.
The already-consumed graphic invocations were `run.py LAB C0`, `C1`, `C2`.
**Do not execute them again for this ticket.** The ledger at
`~/swayfx-mosaic-optimized-blur-v1-budget.json` is shared across clones and
LABs, locks atomically and refuses a second mode run or another LAB.
It has no reset/refund operation. C0's second unreserved initial image is
charged and documented as a reservation-protocol deviation; numerical
limits were not exceeded. A new authorized ticket must define its own
protocol/budget before new graphics, rather than reset this one.
Offline analysis remains repeatable:
```sh
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-optimized-blur-cache/edge-model.py "$LAB"
PYTHONDONTWRITEBYTECODE=1 python tooling/probes/step20c-optimized-blur-cache/analyze.py "$LAB"
```
These analyzers write derived results and manifests. Never target the closed
historical LAB: use a separate offline copy/output tree. The freeze audit
preserved the exact pre-freeze fixture in the external snapshot named in the
report; its README is the byte-identical source-manifest input. Raw logs/PNGs and per-run executed sources stay
immutable. The offline model is a hypothesis about reduced-domain sampling,
not native GPU readback or a shader fix. The complete source/evidence
manifest digests and validation are recorded in the report after the final
analysis. Full H1 differences are retained alongside the predefined ROIs;
no boundary anomaly is excluded to obtain a PASS. No PNG/native-buffer
identity, all-frame damage, GPU reference release or instrumentation
neutrality is claimed. Runtime directories are removed and all owned
processes reaped. No production patch, package or desktop change follows.