從我的理解他們是不同的。 Linux framebuffer是一個軟件對象,GPU的內存是映射到GPU設備的物理內存。他們是同一件事情:Linux的幀緩衝區和GPU的內存
我的問題有以下幾點:
1)我的理解是否正確?
2)如果是這樣,不知何故合併兩個東西變成一個貌似可以提高性能(我想有更多的技術細節,爲什麼這是不可能的,等等...)
3)不,你能解釋一下Linux的幀緩存和GPU如何協同工作嗎?
從我的理解他們是不同的。 Linux framebuffer是一個軟件對象,GPU的內存是映射到GPU設備的物理內存。他們是同一件事情:Linux的幀緩衝區和GPU的內存
我的問題有以下幾點:
1)我的理解是否正確?
2)如果是這樣,不知何故合併兩個東西變成一個貌似可以提高性能(我想有更多的技術細節,爲什麼這是不可能的,等等...)
3)不,你能解釋一下Linux的幀緩存和GPU如何協同工作嗎?
Linux framebuffer設備是一種虛擬設備,它將接收到的數據進行包裝顯示。所以一般來說答案是否定的 - 它不是GPU內存。理論上驅動程序可以將GPU內存映射到fbdev,但不太可能有人這樣做。主要問題是可能有許多虛擬控制檯,但例如只有一個監視器 - fbdev必須處理這個。另一件事是,GPU內存最近才變得虛擬化(可直接訪問),在較老的GPU上,您不能只將任何內容寫入GPU內存。除此之外,fbdev提供了統一接口,而直接訪問GPU內存將需要硬件特定的數據格式。當格式有差異時,fbdev驅動程序執行轉換。
至於性能 - 它已經非常好。進一步提高它可能沒有太大的好處。
這通常很困難,因爲許多GPU驅動程序都是專有軟件(但情況正在緩慢改善,還有更多免費軟件)。 –