Linux显示子系统之Framebuffer 与 DRM



By
jonson
29 1 月 24
0
comment
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

发表回复