QA 10 — Scroll & copy_region
- How to run
- Checklist
- 10.1 Scroll down — no artifacts on new content
- 10.2 Scroll up — same as above but reversed
- 10.3 Auto-scroll — smooth and continuous
- 10.4 Horizontal scroll — hscroll, C-e to a long line
- 10.5 [Metal] Scroll easing — EASE_OUT_QUAD
- 10.6 [Metal] Scroll easing — SPRING
- 10.7 Overlapping copy_region — 1-line scroll
- 10.8 Shift on insert — glyph shift correct
How to run
emacs --no-init-file -l qa/10-scroll/test.el EMACS_GPU_DISABLE=1 emacs --no-init-file -l qa/10-scroll/test.el
Press s to start the auto-scroll demo, S to stop.
Checklist
TODO 10.1 Scroll down — no artifacts on new content
Press C-v or C-n repeatedly. The text that slides up must not leave
ghost pixels. New content at the bottom must appear cleanly.
Failure: horizontal bands of garbage at the scroll boundary.
TODO 10.2 Scroll up — same as above but reversed
Press M-v or C-p. New content at the top must appear without artifacts.
Failure: garbage lines appear at the top when new content is drawn.
TODO 10.3 Auto-scroll — smooth and continuous
Press s to start the timer-based auto-scroll (1 line per 60ms).
The text must slide smoothly without jumps or blank frames.
Failure: text jumps 2–3 lines at a time, or a blank frame flashes.
TODO 10.4 Horizontal scroll — hscroll, C-e to a long line
Press C-e on the long-line section to hscroll to the end.
The content must slide horizontally without artifacts.
Failure: garbled characters or wrong content visible after hscroll.
TODO 10.5 [Metal] Scroll easing — EASE_OUT_QUAD
Run with: (setq gpu-scroll-easing 'ease-out-quad) then scroll.
The scroll must decelerate smoothly near the target.
Failure: scroll is instant (easing not applied) or overshoots.
TODO 10.6 [Metal] Scroll easing — SPRING
Run with: (setq gpu-scroll-easing 'spring) then scroll.
The scroll must overshoot slightly and bounce back.
Failure: no overshoot visible, or motion never settles.
TODO 10.7 Overlapping copy_region — 1-line scroll
Scrolling by exactly one line means src and dst regions overlap. Content must move correctly (scratch-texture bounce path used internally). Failure: the overlapping region shows corrupted or wrong content.
TODO 10.8 Shift on insert — glyph shift correct
Go to the middle of a content line and insert a character. Text to the right must shift exactly one character width. Failure: text after the insertion point overlaps, or a gap appears.