Repository navigation
Implement Wipe transitions with a 3D blade - #24
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wipe reveals the destination with a straight, eased sweep in all four cardinal directions. The blade has a rubber contact lip, bowed pressure spine, raised brackets, beveled matte surfaces, metal pivot, contact shadow and subtle deterministic flex. Independently fitted pages and letterboxes stay exact outside the moving edge; endpoints render the exact static pages.
Updates PDF metadata/program dispatch, CLI help, roadmap, README, manual, four diagnostic PDFs, Beamer showcase and rendered contact sheets. The fixed-capacity blade mesh has no per-frame heap allocation. Only visible page regions are shaded, and lighting is computed once per quad instead of per vertex.
1080p profiling on this machine: llvmpipe median 10.4 → 8.1 ms, p95 14.1 → 12.0 ms. RTX 3060 median 0.65 → 0.52 ms in the first comparison; a repeat gave 0.68 → 0.63 ms with worse p95, so GPU tail-latency improvement is not established. Cold PDF preparation remains 190–249 ms. Measurements include glFinish and exclude the compositor; method and repeat variability are documented.
Validation: all 225 regression tests pass; 26 Wipe sanitizer tests pass. Latest full-run 500 ms SLO misses: two Wipe checkpoints 507/527 ms and web recording 596 ms. Twelve sanitizer cases missed the SLO at 519–661 ms. Endpoint, metadata, aspect-ratio, determinism, optional rendering and GL-state checks remain. Existing 10-second hang watchdogs remain.
The Linux CI RSS failure on the preceding head included ASan quarantine retention. The RSS-only replay now disables freed-block quarantine, retaining the existing 4 MiB growth bound, three warmup and five measured cycles. Other frame sanitizer cases keep their ordinary quarantine. CI is rerunning on the optimized head.