根据我的理解,他们是不同的。 Linux framebuffer是一个软件对象,GPU的内存是映射到GPU设备的物理内存。
我的问题如下:
1)我的理解是否正确?
2)如果是这样,以某种方式将两个东西合并为一个看起来可能会提高性能(我想有更多的技术细节为什么这是不可能的等等......)
3)如果没有,你能解释一下Linux帧缓冲和GPU如何协同工作吗?
答案 0 :(得分:1)
Linux framebuffer设备是一个虚拟设备,它将收到的数据包装起来显示。所以一般来说答案是否定的 - 它不是GPU内存。理论上,驱动程序可以将GPU内存映射到fbdev,但不太可能有人这样做。主要问题是可能存在许多虚拟控制台,但是例如只有一个监视器--fbdev必须处理这个。另外一点是GPU内存最近才变得虚拟化(可直接访问),在较旧的GPU上你不能只是把你喜欢的内容写入GPU内存。
除此之外,fbdev提供统一的界面,而直接访问GPU内存则需要特定于硬件的数据格式。当格式之间存在差异时,fbdev驱动程序会执行转换。
至于表现 - 它已经非常好了。提升它可能没什么好处。