GPU/DRM 简介
DRM - Direct Rendering Manager
DRM是一個內核級的設備驅動,既可以編譯到內核中也可以作為標準模塊進行加載。DRM最初是在FreeBSD中出現的,后來被移植到Linux系統中,并成為Linux系統的標準部分。
DRM可以直接訪問DRM clients的硬件。DRM驅動用來處理DMA,內存管理,資源鎖以及安全硬件訪問。為了同時支持多個3D應用,3D圖形卡硬件必須作為一個共享資源,因此需要鎖來提供互斥訪問。DMA傳輸和AGP接口用來發送圖形操作的buffers到顯卡硬件,因此要防止客戶端越權訪問顯卡硬件。
?
Linux DRM層用來支持那些復雜的顯卡設備,這些顯卡設備通常都包含可編程的流水線,非常適合3D圖像加速。內核中的DRM層,使得這些顯卡驅動在進行內存管理,中斷處理和DMA操作中變得更容易,并且可以為上層應用提供統一的接口。
DRM代碼位置
因為Linux kernel內部接口和數據結構可能隨時發生變化,所以DRI模塊要針對特定的內核版本進行編譯。kernel 2.6.26之后的版本,DRM(DRI kernel模塊)源碼存放在kernel/drivers/gpu/drm中;在這之前的版本,源碼在kernel/drivers/char/drm目錄中。
每一個3D硬件加速驅動都包含一個內核模塊,并且都需要使用DRM支持代碼。
?
DRI - Direct Rendering Infrastructure
DRI并不是一個軟件模塊。相反DRI是由一系列的軟件模塊組成。引入DRI的目的是為了3D圖形加速,DRI是一個軟件架構,用來協調linux kernel,X windows系統,3D圖形硬件以及OpenGL渲染引擎之間的工作。
?
DRM支持DRI的方式
DRM以三種方式支持DRI
DRM和DRI關系
早期的Direct Rendering Infrastructure
?
當前的Direct Rendering Infrastructure
?
我們可以看出DRM是DRI的一個組成部分,DRI同時還包含kms以及OPenGLES DRI driver部分。
?
轉載鏈接:http://blog.csdn.net/kickxxx/article/details/19188711
總結
以上是生活随笔為你收集整理的GPU/DRM 简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 终极解决方案:Emacs+Slime+L
- 下一篇: mysql配置