2014-04-02 14 views
1

從我的理解他們是不同的。 Linux framebuffer是一個軟件對象,GPU的內存是映射到GPU設備的物理內存。他們是同一件事情:Linux的幀緩衝區和GPU的內存

我的問題有以下幾點:

1)我的理解是否正確?

2)如果是這樣,不知何故合併兩個東西變成一個貌似可以提高性能(我想有更多的技術細節,爲什麼這是不可能的,等等...)

3)不,你能解釋一下Linux的幀緩存和GPU如何協同工作嗎?

+0

這通常很困難,因爲許多GPU驅動程序都是專有軟件(但情況正在緩慢改善,還有更多免費軟件)。 –

回答

0

Linux framebuffer設備是一種虛擬設備,它將接收到的數據進行包裝顯示。所以一般來說答案是否定的 - 它不是GPU內存。理論上驅動程序可以將GPU內存映射到fbdev,但不太可能有人這樣做。主要問題是可能有許多虛擬控制檯,但例如只有一個監視器 - fbdev必須處理這個。另一件事是,GPU內存最近才變得虛擬化(可直接訪問),在較老的GPU上,您不能只將任何內容寫入GPU內存。除此之外,fbdev提供了統一接口,而直接訪問GPU內存將需要硬件特定的數據格式。當格式有差異時,fbdev驅動程序執行轉換。

至於性能 - 它已經非常好。進一步提高它可能沒有太大的好處。

+0

然後,這個數據流是否正確? x-server寫入fbdev(framebuffer),fbdev寫入GPU內存(使用GPU驅動程序)GPU將其顯示到顯示器中。 – jaeyong

+0

排序,如果您使用fbdev驅動程序的X.但它可以工作,即使沒有X. – keltar