1、DRM介紹
在Linux內核中,可以使用fbdev的API管理圖形適配器的幀緩衝區,可是它沒法處理基於GPU的現代顯卡的3D加速功能。DRM是Linux內核的一個子系統,最初是做爲X Server DRI的內核空間組件開發的,後續也被用於其它圖形棧(如Wayland)。DRM負責與現代顯卡的GPU接口交互,用戶程序能夠使用DRM提供的API,向GPU發送命令和數據,實現類顯示模式設置的操做、GPU硬件加速的3D渲染、視頻解碼和GPGPU(通用GPU)計算。linux
2、名詞介紹
下表介紹了DRM框架中涉及到的部分名詞:網絡
縮寫 | 全稱 | 解釋 |
---|---|---|
DRI | Direct Rendering Infrastructure | 基層直接渲染 |
DRM | Direct Rendering Manager | 直接渲染管理器 |
FBDEV | Framebuffer Device | 幀緩衝設備 |
GEM | Graphics Execution Manager | 圖形執行管理器 |
KMS | Kernel Mode Setting | 內核顯示模式設置 |
UMS | User-space Mode Setting | 用戶空間顯示模式設置 |
V4L2 | Video For Linux 2 | linux視頻設備驅動 |
3、DRM框架
Linux DM框架包括兩部分:DRM core和DRM driver。DRM core實現了DRM的基本框架,能夠註冊DRM driver,同時爲用戶空間提供了一組ioctl。DRM driver主要實現它所支持的CPU/GPU等硬件部分驅動,提供DRM core未涵蓋的或擴展(僅在此類硬件上可用)的ioctl實現。用戶空間程序能夠使用libdrm訪問DRM框架的各類接口。框架
因爲在實際項目中只調試過libdrm和Linux DRM,後續先介紹這兩部分。下圖摘抄自網絡,介紹了DRM框架。ide
參考:https://encyclopedia.thefreedictionary.com/Direct+Rendering+Managerurl