In this article, I test various graphics APIs and input event APIs on the stock OS of the 2025 batch: Debian trixie.
target triple: aarch64-linux-gnu
Graphics and input events
X11 works. xinput test-xi2 shows TouchStart TouchUpdate TouchEnd events. detail of these events is the touch point id.
Wayland works. libinput debug-events shows
# the `rotation` attr seem to work, but is garbage data
TABLET_TOOL_AXIS (tilt)
TABLET_TOOL_PROXIMITY (proximity-in/out)
TABLET_TOOL_TIP (up/down)
TOUCH_DOWN
TOUCH_FRAME
TOUCH_MOTION
TOUCH_UP
libinput record shows
# Event code 0 (ABS_X)
# Event code 1 (ABS_Y)
# Event code 2 (ABS_Z)
# Event code 24 (ABS_PRESSURE)
# Event code 26 (ABS_TILT_X)
# Event code 27 (ABS_TILT_Y)
# Event code 40 (ABS_MISC)
So there is no pen rotation at all.
Pen is RawMotion Motion. device: 2 (8) is pen tip. 2 (9) is pen end (“eraser”).
X11 patch (config.fish):
if status is-login
set -x XAUTHORITY /run/user/1000/.mutter-Xwaylandauth.*
if set -q XAUTHORITY[1]
set -x DISPLAY :0
end
end
Graphics driver
GPU: Mali-G52 r1. Is only OpenGL (ES) 3.1 conformant. Try with eglgears_wayland eglgears_x11.
Refresh rate is slow because e-ink.
Graphics library
Raylib+GLFW3: cmake -B build -DGRAPHICS=GRAPHICS_API_OPENGL_21 (default is 3.3, not available)
GLFW3+OpenGL+X11: YES
GLFW3+Wayland: the package from debian repo can’t use wayland. not even with libglfw3-wayland (it’s just a copyright file).
SDL3: YES
Cross-compile
Zig 0.15.1’s --sysroot is broken, because it will first use headers from local root directory, and then sysroot. (Github issue)