Framebuffer
DRM:Direct Rendering Manager
Framebuffer 和 DRM 都是 Linux Kernel 中的顯示子系統(tǒng),它們有不同的作用和定位。
FrameBuffer 是一個(gè)基礎(chǔ)的圖形子系統(tǒng),它為用戶空間提供了一種在顯示器上繪制像素的方式,通過一個(gè)簡(jiǎn)單的緩沖區(qū)來實(shí)現(xiàn)幀的繪制和顯示。
DRM 是一個(gè)高級(jí)的圖形子系統(tǒng)。它提供了許多高級(jí)的功能,如硬件加速、3D 圖形渲染、視頻解碼等。支持多個(gè)用戶空間客戶端同時(shí)訪問圖形硬件。DRM 還提供了復(fù)雜的內(nèi)存管理和 DMA 機(jī)制,以便更好地管理系統(tǒng)中的顯存。
DRM 更能適應(yīng)當(dāng)前日益更新的顯示硬件。DRM 原生支持多層合成,支持 VSYNC,支持 DMA-BUF,支持異步更新,支持 fence 機(jī)制等。DRM 可以統(tǒng)一管理 GPU 和 Display 驅(qū)動(dòng),使得軟件架構(gòu)更為統(tǒng)一,方便管理和維護(hù)。
兩者 flow 對(duì)比:
DRM 圖形顯示框架
DRM Stack: GPUs
DRM Stack: GPU
DRM 學(xué)習(xí)參考:
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