DDX、DRM和DRI是什麼

1. DDX

Device Dependent X

DDX是X服務器的2D驅動模塊, 2D的顯示加速,包括xvideo也是由它負責。
它會初始化硬件,設置屏幕分辨率,色深,刷新頻率等。在屏幕分辨率改變這樣的操作,也是通過它去調用BIOS功能加以實現的。

2. DRM

Direct Rendering Manager

DRM是內核提供的模塊。所有對應某個顯卡的內核模塊都有一個父親,是drm.ko。

DRM作用很大,它可以知道顯卡的中斷以及DMA存取信息,並且能處理AGP和幀緩衝內存的分配。這個是核心和基礎,如果nvidia提供了nvidia.ko的源代碼,就公開了它所有的祕密了。

3. DRI
DRI的主要作用是讓X客戶機和X服務器直接控制硬件用的,爲了確定屏幕哪個位置不用畫圖,哪個位置要畫,DRI還提供了窗口位置大小盒怎樣疊加的信息。

因爲DRI的應用程序都會對硬件加鎖以獨佔的方式進行顯卡硬件的操作,所以一旦異常,整個系統就很有可能死鎖。

至於DRI的應用程序如何同DRM內核模塊進行通信,實際上是使用了libdrm庫。
上面提到的是DRI繞過X協議做了一些事情。其實DRI也提供了X協議,供X客戶機與X服務器通信使用。這點就和傳統的X應用程序架構類似了。(這個似乎就是glx,以及aiglx的基礎了。glx和alglx是實現類似vista 3D桌面所使用的基本技術。)
Linux OpenGL 3D的支持就是通過DRI實現的,最流行的就是Mesa了,是它提供了libGL.so給應用程序使用,使他們能夠實現3D加速。

=========================================================

這裏有一篇關於三者的詳細介紹的文章: http://yangman.ca/blog/2009/10/linux-graphics-driver-stack-explained/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章