2014-05-14 93 views
1

我正在通過我的Linux內核源drm radeon驅動程序。在那裏我有一些理解上的困難,在我的顯示器實際工作的設置/模式上。 (我從內核消息中可以知道使用了什麼微代碼,我的屏幕正在處理什麼連接器和編碼器,但是這並不能提示圖形內容來自哪裏以及它的存儲位置,理解它正確的方式)。Radeon環緩衝區的使用和modesetting

首先 - 環緩衝區是一個潛在的必要性總體上讓我的gfx卡工作,或者是環形緩衝區建議建立一些3D圖形功能?

在內核模式設置中,環形緩衝區是唯一的用戶模式設置工具還是環形緩衝區可以工作(在後臺或目標中)?環形緩衝區在啓動過程中被初始化(我可以在內核消息中看到環地址) - 但是實際使用它的應用程序,我無法說清楚。它是顯示管理器,例如X11(如果是的話 - 顯示管理器使用環形緩衝區是什麼 - 正常顯示或在Xlib中某些奇特的3D功能)?

總的來說,顯示管理器(比如說X11)是否在用戶模式設置下工作,控制檯幀緩衝區是以千位爲單位工作的?是否有以kms爲單位使用radeon驅動程序的圖形性能限制?

謝謝!

回答

0

關於環,這些基本上是一個優化來處理您的圖形卡的狀態變化。基本上,顯卡所做的一切都是由一系列寄存器(如程序中的變量)控制的。這些寄存器可以直接由內核寫入,但是這很慢。所以圖形卡暴露出來。不同的環有不同的目的,所以一個可以用於圖形,另一個用於視頻解碼。內核管理環本身,應用程序提供一系列命令來放入環中。顯卡也可以讓你把命令放在另一個緩衝區,然後指向那裏的環執行這些命令,然後再回到環。

關於KMS,如果您使用KMS,則內核直接管理圖形卡本身。 X或任何其他用戶空間應用程序都不會應用您所看到的模式。相反,X向內核驅動程序發送請求以調整模式,並且內核執行更改。假設您的系統安全設置,在內核中安裝驅動程序應該沒有任何開銷。