• Android图形系统之X11、Weston、Wayland、Mesa3D、ANGLE、SwiftShader介绍(十五)


    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

    优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

    人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

    更多原创,欢迎关注:Android系统攻城狮

    欢迎关注Android系统攻城狮

    1.前言

    本篇目的:理解X11、Weston、Wayland、Mesa3D、ANGLE、SwiftShader框架和协议。

    2.X11、Weston、Wayland、Mesa3D、ANGLE、SwiftShader功能介绍

    • X11

    X11是一种计算机图形显示协议,也被称为X Window System。它是最早的用于Linux和类Unix系统上的图形用户界面的协议,负责管理图形显示和用户输入设备,以及提供窗口管理和图形效果等功能。

    • Wayland

    Wayland是一个新一代的图形显示协议,旨在替代X Window System(即X11)。它提供了更直接、更高效、更安全的图形处理,能够实现基于内核的窗口管理和更好的触摸屏支持。

    • Weston

    Weston是一个开源的以Wayland协议为基础的窗口管理器(compositor),用于管理应用程序窗口、输入设备和图形显示。它是Wayland项目的参考实现之一,旨在提供现代的、灵活的、可扩展的图形显示架构。

    • Mesa3D

    Mesa3D是一个开源的图形库软件堆栈,用于在软件和硬件之间提供OpenGL和其他图形API的实现。它提供了一系列的图形驱动程序,包括软件渲染器和硬件加速的驱动程序,可以在不同的操作系统和图形显示系统上使用。

    • ANGLE

    ANGLE 是一个开源的跨平台的 OpenGL ES 到 OpenGL 的翻译器,它允许使用 OpenGL ES 的应用程序在 Windows 平台上运行,通过将 OpenGL ES API 调用转换为相应的 OpenGL API 调用。
    ANGLE 的目标是提供一个与标准 OpenGL ES 2.0 和 3.0 兼容的实现,并且可在 Windows 上运行,从而使得开发者可以在 Windows 平台上开发和测试 OpenGL ES 应用程序。

    • SwiftShader

    SwiftShader是一个跨平台的高性能软件渲染器,用于在不支持硬件加速的设备上进行图形渲染。它模拟了图形硬件的功能,包括OpenGL ES和Direct3D,以提供流畅的图形渲染和高效的图形处理。

    2.X11、Weston、Wayland、Mesa3D、SwiftShader区别

    • 1.X11和Wayland

    X11和Wayland都是用于图形显示的协议或系统,但它们有不同的设计理念和实现方式。
    X11采用了客户端-服务器模型,而Wayland更加直接和高效。

    • 2.Weston是Wayland协议

    Weston是Wayland协议的一个实现,用于窗口管理,与X11和Mesa3D配合使用来实现图形显示和渲染。

    • 3.Mesa3D与X11和Wayland

    Mesa3D与X11和Wayland都相关联,它提供了OpenGL等图形API的实现,可以与不同的图形显示系统配合使用。

    • 4.SwiftShader

    SwiftShader可以被用于在不支持硬件加速的设备上进行图形渲染,它在某种程度上可以替代Mesa3D的部分功能,但更专注于软件渲染和跨平台性能。

    3.总结

    1.X11是传统的Unix图形系统。

    2.Wayland是X11的替代方案。

    3.Weston是Wayland协议的实现。

    4.Mesa3D提供了OpenGL、Vulkan API的软件实现。

    5.SwiftShader是用于不支持硬件加速设备上的软件渲染。

    4.查看Linux主机是X11协议?还是Wayland协议?

    # echo $XDG_SESSION_TYPE
    x11
    
    • 1
    • 2

    我的主机是XUbuntu22.04,可知还是用的旧的显示协议X11,而不是Wayland协议。

  • 相关阅读:
    【发表案例】智能物联网类SCI&EI,仅25天录用,计算机领域必投SCI快刊,12月截稿
    YOLOv5配置文件之 - yaml
    【线性表】—不带头单向非循环链表的增删查改
    Flink1.12.7 Standalone版本安装
    Redis 的三种部署模式
    TCP协议_三次握手与四次挥手
    Java二十三种设计模式-观察者模式(15/23)
    电子学会2021年6月青少年软件编程(图形化)等级考试试卷(四级)答案解析
    RISC-V Linux内核编译报错extension zicsr required
    【python】python中字典的用法记录
  • 原文地址:https://blog.csdn.net/u010164190/article/details/134371908