Hands On Projects For The Linux Graphics Subsystem Link
"Hands-on Projects for the Linux Graphics Subsystem" by Christos Karayiannis provides structured exercises for understanding the Linux graphics stack, including PCI configuration access, framebuffer manipulation, and request analysis. The guide covers essential topics for developers, ranging from user-space interaction to modern DRM/KMS drivers. For a detailed, project-based introduction, see this Amazon listing for the eBook . Hands-on Projects for the Linux Graphics Subsystem eBook
wlr_cursor with wlr_input_device (libinput) for mouse.wl_display_run(display).- Clone Mesa:
git clone https://gitlab.freedesktop.org/mesa/mesa.git cd mesa - Find the shader compilation path: For i965 (Intel) or AMDGPU (radeonsi), look in
src/mesa/drivers/dri/i965/brw_program.cforbrw_link_shader(). - Add your hook:
static void brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg) fprintf(stderr, "[HANDS-ON] Shader %s compiled at %lld\n", shProg->Name, (long long)time(NULL)); // original code continues...Implementation Steps
Use atomic DRM APIs to set a display mode on a connector and flip between two framebuffers. Hands On Projects For The Linux Graphics Subsystem