基本概念

1.Wayland:显示服务器,是一种协议
2.Weston:是Wayland协议的的实现
3.drm又包括:
drm framebuffer:它是一块内存区域,我把它理解为一块画布,驱动和应用层都能访问它
plane:图层
crtc:读取当前扫描缓冲区的像素数据,生成视频模式定时信号.它对内连接 Framebuffer 地址,对外连接 Encoder。它会扫描你画布(Framebuffer)上的内容,叠加上 Planes 的内容,传给 Encoder。
encoder:将内存的 pixel 像素 编码(转换)为显示器所需要的信号,比如 DVID、VGA、YPbPr、CVBS、Mipi、eDP 等
connector:直译为 连接器。Connector 常常对应于物理连接器 (VGA, DVI, FPD-Link, HDMI, DisplayPort, S-Video …) 他会连接将一个物理显示输出设备 (monitor, laptop panel, …)基本流程:
app将画好的surface,通过wayland协议提供给compositor,compositor将来自各个应用的surface合成一帧,
通过drm接口最终画在Framebuffer上。
#运行的compositor
weston --tty=2 -B=drm-backend.so --idle-time=0&

Linux 图形栈概览:Wayland 协议, Compositor 和 DRM 子系统


在这个图形栈中,App 将画好的 surface,通过 Wayland 协议提交给 Compositor。Compositor 将来自各个应用的 surface(s) 合成为一帧,通过 DRM 接口最终画在 Frame Buffer
参考资料:Linux 图形栈一览:基于 DRM 和 Wayland

X11

x11是一个很古老的系统,有了几十年的历史,一开始设计之初,是受限于个人电脑的弱小,所以将所有渲染相关的计算都放在服务端,所谓的X Server. 所有的客户端可以试运行在本地的,也可以试运行在网络上的,称之为客户端XClient. X Server和XClient通信的手段就是X Protocol. 所有的客户端接收到鼠标、键盘等事件,都要通知Server,然后Server经过计算,通知Driver进行描画。

Wayland

所有的渲染都发生在客户端,简单来说,Wayland是一套display server与client间的通信协议,而Weston是Wayland的参考实现。其官网为:http://wayland.freedesktop.org/

学习记录-Linux图形栈:基于DRM和Wayland相关推荐

  1. webrtc学习记录三【创建基于RTCPeerConnection本机内的1v1音视频互通】

    系列文章目录 webrtc学习记录一[媒体录制MediaRecorder] webrtc学习记录二[基于socket.io创建信令服务器聊天室] 目录 系列文章目录 前言 一.媒体能力的协商过程 1. ...

  2. 学习记录:图形界面系列教材

    学习内容:图形界面系列教材 学习关于多线程的内容(一) ## 按钮监听 创建一个匿名类实现ActionListener接口,当按钮被点击时,actionPerformed方法就会被调用 b.addAc ...

  3. 如何学习修改linux系统固件,基于Linux的固件,如何实现更新的好方法?

    我正在使用alix 2d13开发基于linux的设备. 我开发了一个脚本,负责创建映像文件,创建分区,安装引导加载程序(syslinux),内核和initrd,并注意将根文件系统文件放入正确的分区. ...

  4. 学习记录-Linux内核模块查看命令

    概述 内核模块是Linux提供的一种机制,允许在内核运行时动态加载进内核中,具有两个特点: 内核模块本身不编译入内核映像,有效控制缩减内核镜像的大小 内核模块一旦被加载,就和内核中的其他部分完全一样 ...

  5. 项目学习记录(四)--基于图像检测的AR语文识字应用

    前言: 之前做了ARFoundation的项目,想做利用Vuforia进行一个对比,简单记录下我的编写流程 项目构思: 利用AR技术开发一个有助于小学生学习汉字的读音.字意.字形,了解相似字和偏旁部首 ...

  6. GEE学习记录(一)基于GEE利用LANDSAT 8数据计算遥感生态指数(RSEI)

    最近老师让看一下关于GEE的东西,实现大面积的反演.计算地表温度等,也算熟悉一下.参考网上很多大佬的文章,按照自己的思路和想法算出了RSEI,参考的文章都有列出来. 目录 所用数据集 影像数据 矢量数 ...

  7. git学习记录/菜鸟教程(基于Gitcode)

    首先说明下为何使用Gitcode而不是hub或lab:只是因为国外的网站访问太慢了,而且还要翻译 从初次使用开始说: 首先安装Git,一路next就可以,安装好后打开,输入git version如果有 ...

  8. 基于全志A33开发板linux系统移植学习记录(Boot0)

    基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...

  9. 《SysML精粹》学习记录--第一章

    <SysML精粹>学习记录 第一章:基于模型的系统工程(MBSE)概览 MBSE简单介绍 MBSE的三大支柱 小结 第一章:基于模型的系统工程(MBSE)概览 MBSE简单介绍   基于模 ...

最新文章

  1. 在阿里云ECS服务器上面开启tomcat服务并且正常后,无法访问怎么办?原来是没有开通外网访问的端口
  2. CRF算法中辅助概念 团 极大团 最大团
  3. apache2 的https配置和代理https后端nodejs配置
  4. 从客户端检测到有潜在危险的Request.Form 值
  5. 【CodeForces - 298C】Parity Game (思维,有坑)
  6. Author Topic Model[ATM理解及公式推导]
  7. [转]史上最全最强SpringMVC详细示例实战教程
  8. 百度贴吧 2017 前贴子无法访问;网易腾讯游戏获批;苹果反垄断案败诉 | 极客头条...
  9. 小爱同学app安卓版_小爱同学app下载安卓版|语音助手下载_最火软件站
  10. amd支持服务器内存,AMD专用内存和普通内存的区别是什么?
  11. 从源代码开始构建Ogre图文教程(Ogre 1.8 Source + VS2010)
  12. 如何配置一台台式计算机,一台主机两个显示器,教您电脑两个显示器怎么设置...
  13. jsjsjsjsjssjsjsjs
  14. 为什么不建议轻行量玩频
  15. 充满希望的新的一年!
  16. 【Python】flask框架学习 flask框架的基本使用
  17. 项目实战!用爬虫和Flask打造属于自己的电影网站
  18. 磊科路由器信号按键_磊科路由器按了后面的默认设置按钮后,怎么配置路由上网?...
  19. Python知识体系-Python工具大全
  20. 专升本第六讲 (世界的“小伙伴儿”都认识了)

热门文章

  1. [网络安全自学篇] 七十.WannaCry勒索病毒复现及分析(三)蠕虫传播机制分析及IDA和OD逆向
  2. [网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站防护
  3. 【python数据挖掘课程】十.Pandas、Matplotlib、PCA绘图实用代码补充
  4. C# 连接SQLServer数据库及登录验证知识
  5. 【数据结构与算法】之深入解析“TinyURL加密与解密”的求解思路与算法示例
  6. Git之深入解析工作流程、常用命令与Reset模式分析
  7. Git之深入解析如何在应用中嵌入Git
  8. 【数据结构与算法】之给Nx3网格图涂色的方案数的求解算法
  9. 64. Minimum Path Sum 最小路径和
  10. 312. Burst Balloons 戳气球