Skip to content

v0.4.2

Latest

Choose a tag to compare

@tanrax tanrax released this 12 Jun 19:56
· 16 commits to main since this release

emacs-gpu 0.4.2

Stability release for the GNU/Linux OpenGL backend: the buffer-switch
flicker is gone and all continuous animation now runs off a single,
bounded pump.

Fixed

  • One-frame flashes of old content when switching buffers. The
    flashed frame turned out not to come from the GL swapchain at all:
    it was the frame's XDBE back buffer, which keeps the last core-X
    render (the half-painted startup frame) forever once the GPU path
    takes over, and which an Expose event could swap on screen for one
    vblank. The backend now drops the back buffer when it owns the frame.
    Verified against the actual monitor scanout (kmsgrab at 60fps, 152
    buffer switches with cross-fades): zero anomalous frames, where the
    same soak previously detected dozens.

Changed

  • Single animation pump. Cursor effects, buffer cross-fades and
    inline video used to run on separate timers, each presenting on its
    own; together they could push presents well above the refresh rate,
    starving the Lisp timers and provoking driver-level stale-buffer
    glitches. One pump now advances everything and presents at most once
    per tick (60Hz while a fade runs, 30Hz otherwise, idle when nothing
    animates). Inline video plays at its native frame rate again (tick
    median 33.0ms; it used to slip to ~49ms under load).
  • The old per-subsystem primitives (gpu-anim-tick,
    gpu-transition-tick, gpu-video-tick) keep working; gpu-video-tick
    now only presents when there is a fresh frame or the rectangle moved.

The Metal (macOS) driver shares the pump consolidation; the XDBE fix is
X11-specific.

Downloads

  • emacs-gpu-0.4.2-macos-arm64.zip: macOS 13+ (Apple Silicon), signed
    and notarized, with native compilation (AOT) and tree-sitter. Unzip
    and drag to Applications, or brew install --cask tanrax/tap/emacs-gpu.
  • emacs-gpu_0.4.2_amd64.ubuntu24.04.deb: Ubuntu 24.04+ / Mint 22+.
  • emacs-gpu_0.4.2_amd64.debian12.deb: Debian 12 (bookworm).

Both include tree-sitter, native compilation (AOT) and the GStreamer
video path; they install as /usr/bin/emacs and conflict with the
distro emacs packages. EMACS_GPU_DISABLE=1 starts with the stock CPU
renderer.

Compared to the v0.4.0 macOS app, this build also picks up the image
texture-cache validation fix (cached textures are revalidated by image
spec, not pointer identity).