Wayland窗口系统

参考资料

  • (Wiki)GLX、DRI、Free and Open-Source Graphics Device Driver

窗口系统、图形API的演化

  • 帧缓冲
    • 应用程序 –> 帧缓冲驱动 –> GPU
  • X窗口系统
    • 应用程序 –> X –> X服务器 –> 2D驱动 –> GPU
    • X服务器
      • 设备无关的X(Device-Independent X,DIX)
      • XFree86加速架构(XFree86 Acceleration Architecture,XAA)
      • 设备相关的X(Device-Dependent X,DDX)
  • OpenGL图形API
    • (间接渲染,经过X)应用程序 –> GLX –> X服务器 –> Utah GLX驱动 –> GPU
    • (直接渲染,不经过X)应用程序 –> OpenGL DRI驱动 –> GPU
  • Linux内核,直接渲染管理器(Direct Rendering Manager,DRM)
    • (桌面端渲染)应用程序 –> OpenGL DRI驱动 –> DRM –> GPU
    • (移动端渲染)应用程序 –> OpenGLES DRI驱动 –> DRM –> GPU
  • Wayland窗口系统
    • 应用程序 –> EGL –> OpenGLES DRI驱动 –> DRM –> GPU
    • 应用程序 –> Wayland合成器 –> EGL –> OpenGLES DRI驱动 –> DRM –> GPU
  • Linux内核,内核态设置(Kernel Mode Setting,KMS)
    • 应用程序 –> Wayland合成器 –> ioctl –> KMS –> GPU