struct drm_plane表示一个输入到CRTC的图像源,上游是drm_framebuffer,下游是drm_crtc。 structdrm_plane {structdrm_device *dev;structlist_head head;char*name;structdrm_modeset_lock mutex;structdrm_mode_objectbase;uint32_t possible_crtcs;uint32_t*format_types;unsignedintformat_count;boolformat_default...
drm_universal_plane_init(&drm, &primary, 0, &vkms_plane_funcs, vkms_formats, ARRAY_SIZE(vkms_formats), NULL, DRM_PLANE_TYPE_PRIMARY, NULL); drm_plane_helper_add(&primary, &vkms_plane_helper_funcs); drm_crtc_init_with_planes(&drm, &crtc, &primary, NULL, &vkms_crtc_funcs, NULL...
基本DRM 程序可以使用drmModeSetCrtc或者drmModeSetPlane的方法显示画面,但是在现在的 drm 架构中,这些接口被标记为 Legacy(过时的),目前DRM 主要推荐的是 atomic(原子接口), Property(属性)是Atomic 操作必须依赖的基本元素,所谓的Property,就是将Legacy 接口传入的参数单独抽出来,抽象成一个个独立的属性,应用可以设...
libdrm与内核的交互涉及参数填充,如alloc_arg.handle, alloc_arg.pitch和alloc_arg.size,以及mmap_arg.offset。这些信息会被传递给v4l2插件,用于相机数据输入。值得注意的是,crtc_id和fb_id不是指针,意味着每个plane只能对应单一的fb_id和crtc_id。最后,DMA-buf机制在DRM中也扮演重要角色,如export...
c) DRM中的Plane和我们常说的YUV/YCbCr图形格式中的plane完全是两个不同的概念。YUV图形格式中的plane指的是图 像数据在内存中的排列形式,一般Y通道占一段连续的内存块,UV通道占另一段连续的内存块,我们称之为YUV-2plane (也叫YUV 2平面),属于软件层面。而DRM中的Plane指的是Display Controller中用于多层合成...
size; bo->handle = bo->create.handle; drmModeAddFB(fd, bo->width, bo->height, 24, 32, bo->pitch, bo->handle, &bo->fb_id); //每行占用字节数,共占用字节数,MAP_DUMB的句柄 printf("pitch = %d ,size = %d, handle = %d \n",bo->pitch,bo->size,bo->handle); /* map the ...
PLANE CONNECTOR Property Type Property 的类型分为如下几种: enum bitmask range signed range object blob 以上类型中需要着重介绍的是 object 和 blob 类型,其它类型看名字就知道什么意思,所以就不做介绍了。 object Object 类型的 property,它的值用 drm_mode_object ID来表示。目前的 DRM 架构中仅用到 2 个...
Plane其实就是图层,实际输出的图像往往由多个图层叠加而成(想象一下photoshop的过程),比如主图层,显示光标的图层,其中有些图层由硬件加速模块生成,本例中不涉及,因此所有plane的相关操作都由软件实现,不涉及到任何硬件结构。 Framebuffer Framebuffer对应着存储空间中的图像数据,此处对应硬件为DDR。
Hello. I have problem with DRM overlay scaling. If I use "drmModeSetPlane(fd, plane_id, crtc_id, fb_id, 0, fb_x, fb_y, fb_width, fb_height, 0, 0, width << 16, height << 16);" and (height == fb_height*2) or (height == fb_height*4) the dis...
就是图层,比如视频层在plane2,UI在plane1,视频在UI上面; 2、通过modetest查看系统DRM的情况 例如在RV1109的开发板端执行modetest,我们可以看到以下输出信息: [root@RV1126_RV1109:/oem]# modetestEncoders:idcrtctypepossiblecrtcspossibleclones5553DSI0x000000010x00000000Connectors:idencoderstatusnamesize(mm)modesen...