凡是被 DRM_MODE_PROP_ATOMIC 修饰过的 property,只有在 drm 应用程序支持 Atomic 操作时才可见,否则该 property 对应用程序不可见。因此通过设置 DRM_CLIENT_CAP_ATOMIC 这个 flag,来告知 DRM 驱动该应用程序支持 Atomic 操作。 基于之前的 plane-test 的参考代码,我们使用 Atomic 接口来替代原来的 drmModeSetCrtc...
PRIME连续、非连续内存都支持基于DMA-BUF机制,实现buffer共享,用于大内存复杂场景基于DMA-BUF机制,实现buffer共享,用于大内存复杂场景DRM_IOCTL_PRIME_FD_TO_HANDLE FENCEbuffer同步机制基于内核基于内核dma_fence机制,防止显示内容不同步plane_wait_input_fencesignal_retire_fencesignal_release_fence 2 DRM驱动框架 2.1 ...
c) DRM中的Plane和我们常说的YUV/YCbCr图形格式中的plane完全是两个不同的概念。YUV图形格式中的plane指的是图 像数据在内存中的排列形式,一般Y通道占一段连续的内存块,UV通道占另一段连续的内存块,我们称之为YUV-2plane (也叫YUV 2平面),属于软件层面。而DRM中的Plane指的是Display Controller中用于多层合成...
drmModeObjectGetProperties 获取 CRTC,Connector 或者 Plane 的 Property id drmModeGetProperty 通过 Property ID 获取 Property 的Name 等信息 drmModeAtomicAddProperty 俩修改 property_id 对应的 value 注意:在初始化时需要先调用 drmSetClientCap 设置 DRM_CLIENT_CAP_ATOMIC 这个 capability,用于告知DRM驱动支持Atomi...
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...
KMS:CRTC,ENCODER,CONNECTOR,PLANE,FB,VBLANK,property GEM:DUMB、PRIME、fence 学习DRM驱动其实就是学习上面各个元素的实现及用法,如果你能掌握这些知识点,那么在编写DRM驱动的时候就能游刃有余。 目录 本篇博客将作为本人DRM学习教程的目录汇总,后续我会以示例代码的形式和大家分享上述知识点的学习过程,并不断更新目录...
│ ├── drm_plane_helper.c │ ├── drm_prime.c │ ├── drm_print.c │ ├── drm_probe_helper.c--探测connector的帮助函数。│ ├── drm_property.c │ ├── drm_rect.c │ ├── drm_scatter.c │ ├── drm_scdc_helper.c ...
DRM中的property大多以功能进行划分,并且还定义了一组Standard Properties,这些标准properties在任何平台上都会被创建。 下表列出了应用程序开发中,常用的property: CRTC (optional) PLANE (optional) CONNECTOR (optional) Property Type Property的类型分为如下几种: ...
为了创建 crtc/plane/encoder/connector objects,需要调用 drm_xxx_init()。 为了创建 framebuffer object,需要实现 fb_create() callback。 为了创建 gem object,需要实现 dumb_create() callback。 为了创建 property objects,需要调用 drm_mode_config_init()。
Property:任何可设置的参数均可做成property,是DRM驱动中最灵活的部分。以HDMI接口为例,Soc内部通常包含Display模块,通过总线连接到HDMI接口上。则Display模块对应CRTC,HDMI接口对应Connector,Framebuffer对应显存部分,Plane用于描述Framebuffer,Encoder将像素转化为HDMI接口所需的信号。通常,Encoder和Connector...