Hands On Projects For The Linux Graphics Subsystem [work] (2027)

Attach a video stream to an "overlay plane" and a UI to the "primary plane."

sudo modetest -M i915 -s 42@33:1920x1080 -P 79@33:1920x1080@XR24

# List all resources modetest -M amdgpu # or i915, or vc4 Hands On Projects For The Linux Graphics Subsystem

// Rendering loop vkQueuePresentKHR(present_queue, &present_info);

library to open a DRM device and set up a basic display mode (KMS). This project teaches how to allocate a frame buffer and perform page flipping Attach a video stream to an "overlay plane"

: Graphics are useless without interaction. Build a "touchscreen drawing" app that runs purely on the console. It should read touch/mouse events from /dev/input/eventX (using the evdev subsystem) and update the DRM framebuffer in real-time. 3. Advanced: Driver and Subsystem Development

Implement a simple dumb_create function to allocate memory for framebuffers. Use vblank interrupts to simulate display refresh cycles. Use vblank interrupts to simulate display refresh cycles

Before diving into specific projects, it's essential to have a basic understanding of the Linux graphics subsystem and its components. Here are some key concepts and tools to familiarize yourself with:

Combine everything from Projects 2, 3, and 4. Write a :

Before 3D or compositing, there is the framebuffer . The kernel exposes a linear chunk of memory representing your display.