v0.4.0
emacs-gpu 0.4.0
The GNU/Linux backend arrives, and both backends get a much faster draw path.
GNU/Linux (OpenGL ES / EGL) — new
- Full OpenGL backend behind the same neutral driver layer as Metal:
text (CJK/BiDi/compositions/emoji), faces and decorations, fringes,
images (PNG/JPEG/SVG/GIF), mode/tab lines, the four cursor types —
pixel-accurate against the stock GTK/cairo renderer across a
22-scenario parity suite. - Inline video via GStreamer (
gpu-video-insert,gpu-video-mode). - Buffer-switch cross-fade and all the animated cursor effects
(sonicboom, torpedo, spring, ripple, pixiedust, hollow, beam). - Build from source on any X11 distro:
./configure --with-gpu
(Debian/Ubuntu package list in the README).
Performance (both backends)
- Glyphs and solid fills now share one batched draw call, clipped on
the CPU: full-frame redraws on Linux are now faster than the cairo
backend (1.19x) on the integrated-GPU test machine; page scroll is
at parity. At 4K the GPU leads every motion workload (1.8x-11.5x). - The OpenGL present blits only the damaged region, driven by
EGL_EXT_buffer_age + eglSwapBuffersWithDamage (on by default,
correct under any compositor). - Metal gets the same batched draw path (byte-identical output) plus a
fringe-bitmap texture cache that also fixes a small memory leak.
Downloads
emacs-gpu-0.4.0-macos-arm64.zip: macOS app (arm64, macOS 13+),
signed and notarized. Unzip and double-click, or
brew install tanrax/tap/emacs-gpu.emacs-gpu_0.4.0_amd64.ubuntu24.04.deb: Ubuntu 24.04+ / Mint 22+
(and derivatives).sudo apt install ./emacs-gpu_0.4.0_amd64.ubuntu24.04.debemacs-gpu_0.4.0_amd64.debian12.deb: Debian 12 (bookworm).
Same command. (Two .debs because Debian and Ubuntu ship incompatible
libjpeg sonames.)
Both .debs are built --with-gpu --with-tree-sitter --with-native-compilation=aot, install as /usr/bin/emacs (they
conflict with the distro emacs packages) and include the GStreamer
video path; the GPU backend enables itself on X11, with
EMACS_GPU_DISABLE=1 as the opt-out.
macOS app
Universal feature set as 0.3.x (native-comp AOT + tree-sitter +
video player), rebuilt from the 0.4.0 tree. arm64, macOS 13+.
Unzip and double-click; or brew install tanrax/tap/emacs-gpu.