Framebuffer
DRM:Direct Rendering Manager
Framebuffer 和 DRM 都是 Linux Kernel 中的显示子系统,它们有不同的作用和定位。
FrameBuffer 是一个基础的图形子系统,它为用户空间提供了一种在显示器上绘制像素的方式,通过一个简单的缓冲区来实现帧的绘制和显示。
DRM 是一个高级的图形子系统。它提供了许多高级的功能,如硬件加速、3D 图形渲染、视频解码等。支持多个用户空间客户端同时访问图形硬件。DRM 还提供了复杂的内存管理和 DMA 机制,以便更好地管理系统中的显存。
DRM 更能适应当前日益更新的显示硬件。DRM 原生支持多层合成,支持 VSYNC,支持 DMA-BUF,支持异步更新,支持 fence 机制等。DRM 可以统一管理 GPU 和 Display 驱动,使得软件架构更为统一,方便管理和维护。
两者 flow 对比:
DRM 图形显示框架
DRM Stack: GPUs
DRM Stack: GPU
DRM 学习参考:
https://en.wikipedia.org/wiki/Direct_Rendering_Manager#
https://doc.embedfire.com/linux/rk356x/linux_base/zh/latest/linux_app/drm/drm.html
https://doc.embedfire.com/linux/stm32mp1/driver/zh/latest/linux_driver/framework_drm.html
https://blog.deepin.org/posts/drm/
https://zhuanlan.zhihu.com/p/589367143
https://zhuanlan.zhihu.com/p/615289041