首页 > 系统相关 >驱动开发系列11 - Linux Graphics 图形栈概述(二)

驱动开发系列11 - Linux Graphics 图形栈概述(二)

时间:2024-08-24 19:51:05浏览次数:9  
标签:11 XServer Linux Wayland Graphics 缓冲区 GPU 屏幕 CPU

目录

一:GPU 和 硬件

        现代 GPU 功能概览:

        硬件结构:

         屏幕驱动:

        屏幕连接器:

        屏幕 CRT 控制器:

        CPU与GPU通信:

        现代主机通信总线介绍:

        通信方法:

        GPU 编程:通过 MMIO 访问寄存器

         CPU 和 GPU 内存请求路由:

        GPU 可访问的内存区域:

        GTT/GART 是 CPU 与 GPU 共享的通信缓冲区:

        GTT/GART 的使用:

        事件报告:中断请求(IRQ):

二:GPU驱动:

        GPU 需要主机(Host)执行的操作:

        图形堆栈的组成部分:

        Linux 图形栈的组成部分:

三:DRM:

        直接渲染管理器(DRM)功能:

        libDRM功能:

        内核模式设置 (KMS):

        图形缓冲区管理器:

        缓冲区管理的约束条件:

        检测何时需要缓冲区:

        自动重新分配缓冲区:

        DMA-Buf:

四: Mesa:

        Mesa 功能概览:

        mesa 经典:

        Gallium3D:

五:X11 和 XServer: 

        X11:X 协议版本 11

        XLib: 使用 X11 绘制应用程序:

        XCB:X 协议 C 语言绑定:

        XServer 目标:

        XServer基本加速功能:

        XServer 结构:

        XServer 2D 加速:

        XRandR(X 大小调整、旋转)

        OpenGL X 扩展 (GLX)

        GLX 直接渲染:

        GLX 间接渲染:

        XServer事件处理流程:

六:Wayland:

        Wayland协议概述:

        Wayland 合成器:

        Wayland 缓冲区共享的实现:

        Wayland事件处理流程:


一:GPU 和 硬件

        现代 GPU 功能概览:

        1. 在屏幕上显示内容加速

        2. 2D 运算加速

        3. 3D 运算解码视频

        4. 加速科学计算

        硬件结构:

        硬件结构概览:
        1.  图形处理器: 进行所有计算的地方
        2. VRAM: 存储纹理或通用数据
        3. 视频输出: 连接屏幕
        4. 电源模块: 降低电压,调节电流
        5. 主机通信总线: 与 CPU 通信

标签:11,XServer,Linux,Wayland,Graphics,缓冲区,GPU,屏幕,CPU
From: https://blog.csdn.net/zg260/article/details/141441304

相关文章

  • [Ynoi2011] 初始化
    题目链接:[Ynoi2011]初始化神仙trick+卡常题,前缀后缀和根本没听过。根号分治+分块。对于修改操作,发现是跳着修改,考虑根号分治。若\(x\ge\sqrt{n}\),直接暴力更改,复杂度\(O(\sqrt{n})\)。反之,可以将序列抽象成一堆大小为\(x\)的段,如图,\(l,r\)是查询的区间。发现\(......
  • 《Programming from the Ground Up》阅读笔记:p103-p116
    《ProgrammingfromtheGroundUp》学习第7天,p103-p116总结,总计14页。一、技术总结1.读写文件(1)linux.slinux.s:#filename:linux.s#systemcallnumbers(按数字大小排列,方便查看).equSYS_READ,0.equSYS_WRITE,1.equSYS_OPEN,2.equSYS_CLOSE,3.equSYS_EXI......
  • linux: ipset命令
    一,ipset命令功能:1,ipset是一个用于管理IP地址集合的工具,主要用于‌Linux系统中高效处理大量IP地址。它提供了创建、添加、删除、查询和测试集合的操作 2,查看ipset的文件路径:[lhdop@blog~]$whereisipsetipset:/usr/sbin/ipset/usr/share/man/man8/ipset.8.gz查......
  • C++11
    类型推导类型推导是C++的一种特性,允许编译器自动推导变量的类型,而不需要显式地制定类型。autoauto用于让编译器自动推导变量类型,常见用法:基本示例:autox=10;与容器一起使用:vector<string>names={"Alice","Bob"};for(autoit=names.begin();it!=names.en......
  • 代码随想录第15天,110.平衡二叉树,257. 二叉树的所有路径, 404.左叶子之和, 222.完全二叉
    110.平衡二叉树//平衡二叉树,理解稍微有点难度#include<iostream>#include<algorithm>//Forstd::absandstd::maxfunctionsstructTreeNode{intval;TreeNode*left;TreeNode*right;TreeNode(intx):val(x),left(nullptr),right(nullptr......
  • 代码随想录第16天:513.找树左下角的值、112. 路径总和、106.从中序与后序遍历序列构造
    513.找树左下角的值,层序遍历//找树左下角的值,用层序遍历很容易实现#include<iostream>#include<queue>structTreeNode{intval;TreeNode*left;TreeNode*right;TreeNode(intx):val(x),left(nullptr),right(nullptr){}};//找到最底层......
  • 【Linux提权】check-system文件
    【此次省略一万字.........】成功突破边界!提权:看了sudo-l,发现一个shutdown命令可以,但是这名字应该是重启吧。。。先跑一跑linpeas.sh,试了一下跑出来的CVE,没有成功找一找具有root命令并且我们可以写权限的文件:find/-userroot-typef-perm-o=rw-ls2>/dev/null|grep......
  • <architecture>-linux-gnu-gcc
    ./configure--enable-win64yuminstalllibstdc++-*.i686yuminstallglibc-*.i686yuminstalllibgcc.i686sudodpkg--add-architecturei386sudoaptupdate安装相应的32位库,库名后面加上:i386,比如libc6:i386,libstdc++6:i386,libncurses5:i386sudodpkg--add-architec......
  • 【0316】Postgres内核之VACUUM (FULL)运行 portal multi query (11)
    上一篇文章:【0315】Postgres内核之VACUUM(FULL)运行portalquery(10)1.执行portalmultiquery在【0315】Postgres内核之VACUUM(FULL)运行portalquery(10)一文中讲解了Postgres内核运行portal查询的实现。之后通过判断portal->strategy的值(PORTAL_MULTI_QUERY)走到了Po......
  • 嵌入式Linux项目-电子产品量产工具
     声明:项目来自韦东山老师百问网嵌入式专家-韦东山嵌入式专注于嵌入式课程及硬件研发(100ask.net)https://www.100ask.net/video/detail/p_5f04515ce4b036f1c0cf4254GIT下载代码,如下所示:$gitclonehttps://e.coding.net/weidongshan/01_all_series_quickstart.git1.项......