
framebuffer是驱动和应用层都能访问的一块内存区域。
可以把它理解为一块画布。画画之前需要将它格式化,指定是画油画,还是国画(色彩模式,比如 RGB24,YUV 等),画布需要多大(分辨率)。
直译为阴极摄像管上下文。它读取当前扫描缓冲区的像素数据,借助于PLL电路,生成视频模式定时信号。
简单来说,它就是显示输出的上下文,对内连接 Framebuffer ,对外连接 Encoder。
可以把它理解为扫描仪。它扫描画布(framebuffer)上的内容,叠加 planes 的内容,传给 encoder。
直译为 编码器。它将内存的像素编码转换为显示器所需要的信号。
可以想象成,它将你的画在不同类型、型号的显示设备上显示,将其转换成不同的电信号,比如 DVID、VGA、YPbPr、CVBS、Mipi、eDP 等。
直译为 连接器。它常常对应于物理连接器 (VGA、DVI、FPD-Link、HDMI、DisplayPort、S-Video …) ,连接到一个显示输出设备 (monitor、laptop panel …) 。
与输出设备相关的信息(如连接状态、EDID数据、DPMS状态或支持的视频模式),也存储在 Connector 内。
直译为 平面。Plane和 framebuffer 一样是内存地址。
它的作用是干什么呢?想象这样一个场景,笔者正在很不专心地一边看动作大片,一边写文章。动作大片每一帧的变化都很大,需要全幅更新。写文章则可能半天挤不出一个字,基本上不需要更新。这是显卡使用的两个极端。一个是全幅高速更新的 Video Mode,一个是文字交互这种小范围更新的 Graphics Mode。此时轮到 Planes 出马,它给 Video 刷新提供了高速通道,使 Video 单独为一个图层,可以叠加在 Graphic 上面或下面,并具有缩放等功能。
Planes可以有多个。最后扫描仪(CRTC)扫描的画,实际上是framebuffer 和 若干planes 的组合(Blending)。
厂商可能会对planes的类型、用途做出规范。比如,
DRM_PLANE_TYPE_PRIMARY: 一定要有,由于显示背景或者图像内容
DRM_PLANE_TYPE_OVERLAY: 用于显示Overlay
DRM_PLANE_TYPE_CURSOR: 用于显示鼠标
Linux DRM(二)基本概念和特性
Display中的DRM模块介绍
DRM/KMS 基本组件介绍
DRM,英文全称Digital Rights Management, 可以翻译为:数字版权管理。 由于数字化信息的特点决定了必须有另一种独特的技术,来加强保护这些数字化的音视频节目内容的版权,该技术就是数字权限管理技术---DRM(digital right management)。DRM的位置:
1、因为Linux内核内部接口和数据结构随时可能改变,因此DRI内核模块对于特殊内核版本必须特别编译。DRI【Direct Rendering Infrastructure 可翻译为:直接着色基础结构(基层直接渲染);DRI是一个安全且有效率的直接对显示硬件存取的方法。它包含对X server,一些client函数库、以及对内核的变更;DRI的一个主要目的就是提供高效能的OpenGL支持】内核模块防止目录为/lib/modules/.../kernel/drivers/gpu/drm,一般情况下,不管DRI模是否需要,X服务都自动加载.[1]
2、DRI:Direct Rendering Infrastructure 可翻译为:直接着色基础结构(基层直接渲染);DRI是一个安全且有效率的直接对显示硬件存取的方法。它包含对X server,一些client函数库、以及对内核的变更;DRI的一个主要目的就是提供高效能的OpenGL支持。
DRM以如下三种主要方式支持DRI
(1)DRM提供图形硬件的同步访问
(2)DRM强制使用DRI安全规则访问图形硬件
(3)DRM提供通用的DMA引擎
1. 将关键的图形卡初始化放在内核,如上传固件,设置DMA区域
2. 在多个用户态组件间共享渲染硬件,调度访问
3. 控制用户态程序对DMA的使用,以防读写了不该动的数据,
4. 通过提供显示内存alloc,管理图形卡内存
5. 实现modesetting,FB放在了DRM内
modsetting是设置图形卡上的显示模式,从VGA中断或VESA调用,到直接 *** 作图形卡寄存器;具体的比如 *** 作Crtc(管理读FB内存并转到Encoder)、Encoder(编码像素数据到Connector)、Connector(卡上的物理输出,DVI啥的)
libdrm是用户态与DRM内核模块的接口,DRM管理一切图形活动,提供基本图形功能:modsetting、FB驱动、内存管理。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)