而详细了解下Plane的概念,即DRM中的Plane和我们常见的YUV/YCbCr图形格式中的Plane完全是两个不同的概念。YUV图形格式中的Plane指的是图像数据在内存中的排列形式,一般Y通道占一段连续的内存块,UV通道占另一段连续的内存块,称之为YUV-2Plane (也叫YUV 2平面),属于软件层面。而DRM中的Plane指的是Display C
c) DRM中的Plane和我们常说的YUV/YCbCr图形格式中的plane完全是两个不同的概念。YUV图形格式中的plane指的是图 像数据在内存中的排列形式,一般Y通道占一段连续的内存块,UV通道占另一段连续的内存块,我们称之为YUV-2plane (也叫YUV 2平面),属于软件层面。而DRM中的Plane指的是Display Controller中用于多层合成...
简单描述Plane的概念,即硬件图层。而详细了解下Plane的概念,即DRM中的Plane和我们常见的YUV/YCbCr图形格式中的Plane完全是两个不同的概念。YUV图形格式中的Plane指的是图像数据在内存中的排列形式,一般Y通道占一段连续的内存块,UV通道占另一段连续的内存块,称之为YUV-2Plane (也叫YUV 2平面),属于软件层面。而DR...
只有当 xxx_funcs 采用 DRM 标准的 helper 函数实现时,才有可能 需要定义 xxx_helper_funcs 接口。 drmModeSetCrtc() ===> crtc_funcs.set_config();drmModePageFlip() ===> crtc_funcs.page_flip();drmModeSetPlane() ===> plane_funcs.update_plane();drmModeGetConnector() ===> connector_funcs....
因为并不是所有的 Display 硬件都能很好的对应上 plane/crtc/encoder/connector 这些 objects。下面我们就来一起学习,如何去抽象显示硬件到具体的 DRM object。 MIPI DSI 接口 下图为一个典型的 MIPI DSI 接口屏的硬件连接框图: 它在软件架构上与 DRM object 的对应关系如下图: 多余的细节不做介绍,这里只说明...
KMS:CRTC,ENCODER,CONNECTOR,PLANE,FB,VBLANK,property GEM:DUMB、PRIME、fence 学习DRM 驱动其实就是学习上面各个元素的实现及用法,如果你能掌握这些知识点,那么在编写 DRM 驱动的时候就能游刃有余。 为了更好理解 DRM 当中的概念,从应用层开始是个不错的方向。
关键词:DRM、CRTC、Plane、Framebuffer、Encoder、Connector、Bridge、Panel、Backlight、GEM、TTM、KMS等等。 DRM(Direct Rendering Manager)是Linux内核中负责与显卡交互的管理架构,用户空间很方便的利用DRM提供的API,实现3D渲染、视频解码和GPU计算等工作。
我们在文章《Rockchip RK3399 - DRM子系统》和《Rockchip RK3399 - DRM驱动程序》中介绍了RM子系统的整体框架,并对DRM各个模块进行了简单的介绍,本节我们将会详细介绍framebuffer、plane。 回到顶部 一、显示处理器 我们知道一个显示子系统由显示处理器(vop,video output processor)、接口控制器(mipi,lvds,hdmi、...
其中有些图层由硬件加速模块生成,每个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...