美文网首页
【转】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