微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于显示的 Linux 设备驱动程序 |帧缓冲区

如何解决用于显示的 Linux 设备驱动程序 |帧缓冲区

我正在研究运行 TFT 显示器的 linux 显示设备驱动程序,现在帧缓冲区存储要显示的所有数据。

问题:显示驱动程序是否有自己的等效缓冲区来处理来自内核的帧缓冲区?

我担心的是,处理器必须从 GPU 获取输出生成要发送到显示驱动程序的帧缓冲区,但根据显示器的不同,可能存在一些延迟和其他问题,因此显示驱动程序直接访问帧缓冲区或者它也使用自己的缓冲区?

解决方法

这是一个兔子洞问题;表面上看起来很简单,但事实的答案必然会以分形复杂性结束。

要给出一个概括的答案几乎是不可能的。


悬崖笔记版本是:GPU有自己的内存,它以内存映射的形式直接对CPU可见(你可以从例如/sys/class/drm/card0/device/resource查询物理地址的实际范围)。在那里的某个地方,还有用于显示扫描输出缓冲区的内存。使用 GPU 加速图形时,GPU 将直接写入那些扫描输出缓冲区 - 可能写入不同显卡上的内存(例如混合图形的工作方式)。

我担心的是处理器必须从 GPU 获取输出并生成要发送给显示驱动程序的帧缓冲区

通常情况并非如此。然而,即使涉及复制,如今的总线带宽也足够大,复制操作无关紧要。

我正在研究运行 TFT 显示器的 linux 显示设备驱动程序

如果这是与 SPI 连接的 TFT 显示器或由 GPIO 制成的并行总线,那么是的,会保留一些内存供图像驻留。严格来说,这可以在 CPU 的 RAM 中,也可以在 GPU 的 VRAM 中(如果有的话)。但是,就延迟而言,现在扫描输出的复制操作并不重要。

20 年前,是的,即使在那时,通过巧妙的调度,您也可以避免延迟。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。