Graphic Stack in Linux - sharmasadhna/mylearnings GitHub Wiki

How to display things in the Linux world: Different solutions, provided by different subsystems:

  • FBDEV: Framebuffer Device
  • DRM/KMS: Direct Rendering Manager / Kernel Mode Setting
  • V4L2: Video For Linux 2

How to choose one: it depends on your needs

  • Each subsytem provides its own set of features
  • Different levels of complexity
  • Different levels of activity

Why choosing DRM/KMS ?

  • Actively maintained
  • Provides fine grained control on the display pipeline
  • Widely used by user-space graphic stacks
  • Provides a full set of advanced features

Why not FBDEV ?

  • Less actively maintained
  • Does not provides all the features we needed (overlays, hw cursor, ...)
  • Developers are now encouraged to move to DRM/KMS

Why not V4L2 ? Well suited for video capture and specific video output devices but not for "complex" display controllers

Source : https://events.static.linuxfound.org/sites/events/files/slides/brezillon-drm-kms.pdf

https://elinux.org/images/7/71/Elce11_dae.pdf