美文网首页
【转】DRM (一)历史

【转】DRM (一)历史

作者: RonZheng2010 | 来源:发表于2020-10-21 14:57 被阅读0次

1. 背景

1.1. XClient / XServer

X Windows窗口系统提供GUI环境的基本框架:在显示设备上绘制和移动窗口,并与鼠标和键盘进行交互。

XWindows 基于Client / Server网络模型。如下是X Windows架构图。

这样做的缺点是:

  • XClient - XServer - Compositor三者的交互耗时,效率较低。
  • XServer不得不做一些重复无意义的工作

1.2. Wayland

Wayland颠覆了 XServer / XClient的概念,以Compositor/Client结构取而代之。

它的架构图如下:

Wayland效率较高的原因是,去除了XWindows中不必要的设计,充分利用了现代Linux内核图形技术的显示机制,如DRM子系统的KMS、GEM和DRM等。

传统的X Window应用,以Wayland Client的形式,跑在Wayland Compositor上,在相当长一段时间内继续得到支持。

2. 显示卡访问与管理

2.1. fbdev

fbdev在Linux中早已存在,它管理显卡的framebuffer。它的缺点是:

  • 不能处理视频卡GPU的3D加速需求
  • Video Card负责设置、管理Video RAM中的命令序列,还需要管理Video RAM的Buffer、Free Space。 用户空间的程序可以直接管理这些资源,但程序之间没有协同访问的支持。当多个程序同时控制Video Card时,就会崩溃。

2.2. DRM

DRM的首要目的,是处理多个程序对Video Card资源的协同使用。

DRM独占VideoCard的访问权限。使用GPU的程序将请求发送给DRM,由DRM仲裁以避免冲突。

  • DRM负责初始化命令队列、Video RAM以及其他相关硬件资源。
  • 涵盖帧缓存区的管理、模式设置、内存共享对象、内存同步等,这些以前由用户空间的程序处理。
  • 负责GPUs切换。

参考资料

Linux DRM (一) Display Server 历史

相关文章

网友评论

      本文标题:【转】DRM (一)历史

      本文链接:https://www.haomeiwen.com/subject/gbusmktx.html