Linux 的帧缓冲区和 GPU 的内存是同一件事吗?

jae*_*ong 5 linux gpu framebuffer

根据我的理解,它们是不同的。Linux 帧缓冲区是一个软件对象,GPU 的内存是映射到 GPU 设备的物理内存。

我的问题如下:

1)我的理解正确吗?

2)如果是这样,以某种方式将两个东西合并成一个看起来可能会提高性能(我猜还有更多的技术细节为什么这是不可能的等等......)

3)如果没有,你能解释一下 Linux 帧缓冲区和 GPU 是如何协同工作的吗?

kel*_*tar 3

Linux 帧缓冲设备是一种虚拟设备,用于包装接收到的数据以进行显示。所以一般来说答案是否定的——它不是 GPU 内存。理论上驱动程序可以将 GPU 内存映射到 fbdev,但不太可能有人这样做。主要问题是可能有许多虚拟控制台,但例如只有一个监视器 - fbdev 必须处理这个问题。另一件事是 GPU 内存最近才被虚拟化(可直接访问),在较旧的 GPU 上,您不能将任何您喜欢的内容写入 GPU 内存。

除此之外,fbdev 提供统一的接口,而直接访问 GPU 内存将需要特定于硬件的数据格式。当格式之间存在差异时,fbdev 驱动程序会执行转换。

至于性能——已经非常好了。进一步提高它可能没有多大好处。