c) DRM中的Plane和我们常说的YUV/YCbCr图形格式中的plane完全是两个不同的概念。YUV图形格式中的plane指的是图 像数据在内存中的排列形式,一般Y通道占一段连续的内存块,UV通道占另一段连续的内存块,我们称之为YUV-2plane (也叫YUV 2平面),属于软件层面。而DRM中的Plane指的是Display Controller中用于多层合成...
而详细了解下Plane的概念,即DRM中的Plane和我们常见的YUV/YCbCr图形格式中的Plane完全是两个不同的概念。YUV图形格式中的Plane指的是图像数据在内存中的排列形式,一般Y通道占一段连续的内存块,UV通道占另一段连续的内存块,称之为YUV-2Plane (也叫YUV 2平面),属于软件层面。而DRM中的Plane指的是Display Controlle...
简单描述Plane的概念,即硬件图层。而详细了解下Plane的概念,即DRM中的Plane和我们常见的YUV/YCbCr图形格式中的Plane完全是两个不同的概念。YUV图形格式中的Plane指的是图像数据在内存中的排列形式,一般Y通道占一段连续的内存块,UV通道占另一段连续的内存块,称之为YUV-2Plane (也叫YUV 2平面),属于软件层面。而DR...
图层,实际输出的图像是多个图层叠加而成的,比如主图层、光标图层。其中有些图层由硬件加速模块生成,每个crtc至少一个plane。plane一共有三种,分别是:DRM_PLANE_TYPE_PRIMARY、DRM_PLANE_TYPE_OVERLAY、DRM_PLANE_TYPE_CURSOR。这是配置plane的三个枚举,标注主图层、覆盖图层、光标图层(自己翻译的,跟标准翻译可能有出入...
drmModePlaneRes -结构体原型: 1 2 3 4 typedef struct _drmModePlaneRes { uint32_t count_planes; //planes的数量 uint32_t *planes; //指向planes-id数组的结构体指针 } drmModePlaneRes, *drmModePlaneResPtr; drmSetClientCap(fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1); 设置这个的话,可以让DRM...
关键词:DRM、CRTC、Plane、Framebuffer、Encoder、Connector、Bridge、Panel、Backlight、GEM、TTM、KMS等等。 DRM(Direct Rendering Manager)是Linux内核中负责与显卡交互的管理架构,用户空间很方便的利用DRM提供的API,实现3D渲染、视频解码和GPU计算等工作。
其中有些图层由硬件加速模块生成,每个crtc至少一个plane。plane一共有三种,分别是:DRM_PLANE_TYPE_PRIMARY、DRM_PLANE_TYPE_OVERLAY、DRM_PLANE_TYPE_CURSOR。这是配置plane的三个枚举,标注主图层、覆盖图层、光标图层(自己翻译的,跟标准翻译可能有出入)。
KMS:CRTC,ENCODER,CONNECTOR,PLANE,FB,VBLANK,property GEM:DUMB、PRIME、fence 学习DRM 驱动其实就是学习上面各个元素的实现及用法,如果你能掌握这些知识点,那么在编写 DRM 驱动的时候就能游刃有余。 为了更好理解 DRM 当中的概念,从应用层开始是个不错的方向。
我们在文章《Rockchip RK3399 - DRM子系统》和《Rockchip RK3399 - DRM驱动程序》中介绍了RM子系统的整体框架,并对DRM各个模块进行了简单的介绍,本节我们将会详细介绍framebuffer、plane。 回到顶部 一、显示处理器 我们知道一个显示子系统由显示处理器(vop,video output processor)、接口控制器(mipi,lvds,hdmi、...
drm_xxx_init() 则分别用于创建 plane、crtc、encoder、connector 这4个 drm_mode_object。 由于上面4个 objects 在创建时,它们的 callback funcs 没有赋初值,所以真正的 modeset 操作目前还无法正常执行,不过我们至少可以使用下面这些只读的 modeset IOCTL 了: ...