- All about accelerated video on the Raspberry Pi - my notes
- kernel.org: V3D Graphics Driver - RPi 4 GPU kernel driver docs
- rpi kernel source: drivers/gpu/drm/vc4 - RPi 2D GPU kernel driver
- rpi kernel source: drivers/gpu/drm/v3d - RPi 4 3D GPU kernel driver
- rpi kernel source: include/uapi/v3d_drm.h - ioctls for RPi 3D driver
- Blog post: Exploring Hardware Compositing With the Raspberry Pi - nice hardware video scaler walkthrough
- Wikipedia: Direct Rendering Manager - a decent overview
- Blog post: "From pre-history to beyond the global thermonuclear war" - Linux graphics history
- LWN article: Atomic mode setting design overview - the current KMS API
- Man page: Direct Rendering Manager - Kernel Mode-Setting - incomplete but helpful
- Man page: Direct Rendering Manager - Memory Management - incomplete but helpful
- kernel.org: Linux GPU Driver Userland Interfaces - basic notes on the kernel/user interface
- kernel.org: KMS Properties - exhaustive object property list
- kernel source: include/uapi/drm/drm.h and drm_mode.h - kernel/user headers
- kernel source: include/drm/drm_print.h - debugging definitions
- ST Micro: DRM/KMS Overview - decent general docs from a chip vendor
- ST Micro: How to trace and debug the framework - an especially useful section
- libdrm - library wrapper; see xf86drm.h and xf86drmMode.h (not X-specific despite "xf86")
- libgbm - GPU allocation helper library; see gbm.h
- modetest - command line tool (in the libdrm-tests Debian package)
- kmscube - oft-referenced KMS/GL example program
- kms++ - C++ KMS wrapper & utilities
- kernel.org: Buffer Sharing and Synchronization - kernel buffer management (and user interface)
- kernel.org: Linux GPU Memory Management - PRIME buffer sharing - exporting GPU buffers as "dma-bufs"
- kernel.org: Video for Linux - Streaming I/O (DMA buffer importing) - using "dma-buf" objects in V4L2
- hello_drmprime - nice example of hardware H.264/H.265 sending to DRM/KMS with zero copy
- libav - video processing libraries ffmpeg, including encoding and decoding
- rpi-ffmpeg - branch of ffmpeg and libav with Raspberry Pi hardware support (via V4L2)
- kernel.org: Video for Linux API - kernel/user interface
- github issue: Keeping buffers allocated by h264_v4l2m2m - issues with "buffer stealing" from libav decoders
- One Dimensional Cubic Bezier Curve - interactive explorer for 1-D cubic Beziers