drm

2024/4/11 20:37:26

Linux内核4.14版本——drm框架分析(14)——Atomic KMS 架构(struct drm_atomic_state)

目录 1. drm_atomic_state_alloc创建drm_atomic_state 1.1 drm_atomic_state_init 2. 各个drm object对应的state 2.1 drm_atomic_get_crtc_state 2.2 drm_atomic_get_plane_state 2.3 drm_atomic_get_connector_state 2.4 struct __drm_{object}_state 我们从前面两篇文…

DRM全解析 —— CRTC详解(1)

本文参考以下博文: Linux内核4.14版本——drm框架分析(4)——crtc分析 特此致谢! 1. 简介 CRTC实际上可以拆分为CRTC。CRT的中文意思是阴极摄像管,就是当初老电视上普遍使用的显像管(老电视之所以都很厚,就是因为它…

libdrm全解析四十 —— 源码全解析(37)

接前一篇文章:libdrm全解析三十九 —— 源码全解析(36) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 前一篇文章讲解完了资源的释放流程中的munmap()和drmIoctl(DRM_IOCTL_MODE_DEST…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(2)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(1) 上回书说到drmModeAddFB、drmModeAddFB2和drmModeAddFB2WithModifiers函数最终“三分归一统”,在内核层统一调用到drm_mode_addfb2函数。 这里我们先不急…

DRM全解析 —— ADD_FB(1)

本文参考以下博文: DRM驱动(四)之ADD_FB 特此致谢! 在笔者之前的libdrm全解析系列文章中,讲到了drmIoctl(fd, DRM_IOCTL_MODE_ADDFB, &f)以及其封装函数drmModeAddFB。对应的文章链接为: libdrm全解…

DRM全解析 —— encoder详解(1)

本文参考以下博文: Linux内核4.14版本——drm框架分析(3)——encoder分析 特此致谢! 1. 简介 encoder是编码器/输出转换器,负责将CRTC输出的timing时序转换成外部设备所需要的信号,如HDMI转换器或DSI Controller。 具体来讲&a…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(31)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(30) 上回书解析了drm_gem_open函数的两个参数struct drm_device *dev和struct drm_file *file_private(所对应的实参),本回开始解析drm_gem_open函数的内容。为了便于理解和加深印象,再次贴出drm_ge…

libdrm全解析三十八 —— 源码全解析(35)

接前一篇文章:libdrm全解析三十七 —— 源码全解析(34) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 前一篇文章讲解完了drmModeSetCrtc(crtc_id, fb_id, connector_id, mode)&#…

DRM全解析 —— CREATE_DUMB(2)

接前一篇文章:DRM全解析 —— CREATE_DUMB(1) 本文参考以下博文: DRM驱动(三)之CREATE_DUMB 特此致谢! 上一回围绕libdrm与DRM在Linux内核中的接口: DRM_IOCTL_DEF(DRM_IOCTL_MOD…

DRM全解析 —— CRTC详解(4)

接前一篇文章:DRM全解析 —— CRTC详解(3) 本文继续对DRM中CRTC的核心结构struct drm_crtc的成员进行释义。 3. drm_crtc结构释义 (21)struct drm_object_properties properties /** properties: property tracking …

xf86-video-intel源码分析7 —— intel_device.c和intel_driver.h(2)

接上一篇文章《xf86-video-intel源码分析6 —— intel_device.c和intel_driver.h(1)》,链接为: xf86-video-intel源码分析6 —— intel_device.c和intel_driver.h(1)_蓝天居士的博客-CSDN博客 上一篇文章…

DRM全解析 —— CRTC详解(3)

接前一篇文章:DRM全解析 —— CRTC详解(2) 本文继续对DRM中CRTC的核心结构struct drm_crtc的成员进行释义。 3. drm_crtc结构释义 (13)struct drm_display_mode mode /*** mode:** Current mode timings. Should onl…

Linux drm内存管理(二) TTM内存管理基础概念

正文 通过之前的文章Linux drm内存管理(一) 浅谈TTM与GEM,为什么我们需要TTM和GEM?   我们知道了TTM是在GEM的基础上实现的一套GPU内存管理框架,所以这篇文章介绍的侧重点是TTM是如何实现管理GPU内存的分配与释放,先了解TTM的思…

DRM全解析 —— ADD_FB(6)

接前一篇文章:DRM全解析 —— ADD_FB(5) 本文参考以下博文: DRM驱动(四)之ADD_FB 特此致谢! 上回说到Intel i915、AMD Raedon和AMDGP三类显卡驱动中均调用了drm_framebuffer_init函数。本回就…

DRM全解析 —— framebuffer详解(2)

接前一篇文章:DRM全解析 —— framebuffer详解(1) 本文继续对DRM中framebuffer的核心结构struct drm_framebuffer的成员进行释义。 3. drm_framebuffer结构释义 (8)unsigned int offsets[DRM_FORMAT_MAX_PLANES] /**…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(33)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(32) 上一回了开始对于drm_gem_handle_create_tail函数的解析,对于函数的注释和第一段代码进行了讲解,本回开始对于drm_gem_handle_create_tail函数的核心功能代码进行解析。为了便于理解,再次贴出drm…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(18)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(17) 上一回在讲解了intel_user_framebuffer_create函数中的第一个函数i915_gem_object_lookup()时,围绕传给i915_gem_object_lookup函数的实参都是什么展开了深入解析,并且借此机会将之前一直没有探明…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(13)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(12) 上一回补讲了drivers/gpu/drm/drm_framebuffer.c中的framebuffer_check函数中for (i = 0; i < info->num_planes; i++)中的第4个赋值语句,本回继续接着KWin、libdrm、DRM从上到下全过程 ——…

DRM全解析 —— CRTC详解(2)

接前一篇文章:DRM全解析 —— CRTC详解(1) 本文继续对DRM中CRTC的核心结构struct drm_crtc的成员进行释义。 3. drm_crtc结构释义 (5)struct drm_modeset_lock mutex /*** @mutex:** This provides a read lock for the overall CRTC state (mode, dpms* state, ...) an…

DRM全解析 —— ADD_FB2(2)

接前一篇文章&#xff1a;DRM全解析 —— ADD_FB2&#xff08;1&#xff09; 本文参考以下博文&#xff1a; DRM驱动&#xff08;四&#xff09;之ADD_FB 特此致谢&#xff01; 本回对于DRM_IOCTL_MODE_ADDFB2的ioctl系统调用进行深入分析。 众所周知&#xff0c;ioctl系统调…

DRM全解析 —— ADD_FB2(0)

本文参考以下博文&#xff1a; DRM驱动&#xff08;四&#xff09;之ADD_FB 特此致谢&#xff01; 在笔者之前的libdrm全解析系列文章中&#xff0c;讲到了drmIoctl(fd, DRM_IOCTL_MODE_ADDFB, &f)以及其封装函数drmModeAddFB。对应的文章链接为&#xff1a; libdrm全解…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(9)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(8) 上一回讲完了drm_internal_framebuffer_create函数中的framebuffer_check函数中的drm_get_format_info函数,本文继续讲解framebuffer_check函数中的余下步骤。为了便于理解,再次贴出framebuffer_ch…

直播系统源码平台内容安全与版权维护技术:DRM

在数字化的时代&#xff0c;人们的生活中已深入到网络中来&#xff0c;许多人加入了直播系统源码平台中来&#xff0c;直播系统源码平台为用户们提供了一个发布图文短视频、开启直播、获取最新资讯的地方&#xff0c;这也衍生出了许多网红、主播等用户&#xff0c;他们会在直播…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(12)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(11) 上一回讲解了drivers/gpu/drm/drm_framebuffer.c中的framebuffer_check函数中for (i = 0; i < info->num_planes; i++)中的前两个参数检查,本回按说应该继续往下讲解,但由于上一回距离再前一…

Linux内核4.14版本——drm框架分析(3)——encoder分析

目录 1. struct drm_encoder结构体 1.1 struct list_head head 1.2 struct drm_mode_object base 1.3 encoder_type 1.4 struct drm_encoder_funcs 1.5 const struct drm_encoder_helper_funcs *helper_private 2. encoider的API 2.1 drm_encoder_init 2.2 drm_mode_g…

DRM全解析 —— encoder详解(2)

接前一篇文章&#xff1a;DRM全解析 —— encoder详解&#xff08;1&#xff09; 本文继续对DRM中encoder的核心结构struct drm_encoder的成员进行释义。 3. drm_encoder结构释义 &#xff08;5&#xff09;int encoder_type /*** encoder_type:** One of the DRM_MODE_ENCOD…

DRM全解析 —— ADD_FB(2)

接前一篇文章&#xff1a;DRM全解析 —— ADD_FB&#xff08;1&#xff09; 本文参考以下博文&#xff1a; DRM驱动&#xff08;四&#xff09;之ADD_FB 特此致谢&#xff01; 上一回围绕libdrm与DRM在Linux内核中的接口&#xff1a; DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, d…

DRM全解析 —— ADD_FB(3)

接前一篇文章&#xff1a;DRM全解析 —— ADD_FB&#xff08;2&#xff09; 本文参考以下博文&#xff1a; DRM驱动&#xff08;四&#xff09;之ADD_FB 特此致谢&#xff01; 本回开始对于drm_mode_addfb函数进行解析。为了便于理解&#xff0c;再次贴出其代码&#xff0c;在…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(10)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(9) 弄清楚了drivers/gpu/drm/drm_framebuffer.c中的framebuffer_check函数中for (i = 0; i < info->num_planes; i++)中的info->num_planes之后,接下来来看for循环中的内容。先看头两句代码,…

从bootanimation出发分析OpenHarmony下Gralloc buffer管理机制

从bootanimation出发分析OpenHarmony下Gralloc buffer管理机制 引言 这个文档主要记录从bootanimation角度出发&#xff0c;分析OpenHarmony下对gralloc buffer的管理&#xff01;由于OpenHarmony图形子系统过于复杂&#xff0c;且个人由于能力有限&#xff0c;这里我仅从grall…

Linux内核4.14版本——drm框架分析(5)——plane分析

目录 1. struct drm_plane结构体 1.1 uint32_t possible_crtcs 1.2 uint32_t *format_types 1.3 unsigned int format_count 1.4 uint64_t *modifiers 1.5 unsigned int modifier_count 1.6 struct drm_crtc *crtc 1.7 struct drm_framebuffer *fb 1.8 struct drm_f…

DRM全解析 —— CREATE_DUMB(3)

接前一篇文章&#xff1a;DRM全解析 —— CREATE_DUMB&#xff08;2&#xff09; 本文参考以下博文&#xff1a; DRM驱动&#xff08;三&#xff09;之CREATE_DUMB 特此致谢&#xff01; 上一回讲解了drm_mode_create_dumb函数的前半部分&#xff0c;本回讲解余下的部分。 为…

Android12之DRM基本接口实现(二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(8)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(7) 上一回讲到了drm_internal_framebuffer_create函数中的framebuffer_check函数中的drm_get_format_info函数,讲解了该函数的第一部分暨前一部分,本文讲解后一部分。为了便于理解以及理清脉络和当前所…

libdrm全解析三十九 —— 源码全解析(36)

接前一篇文章&#xff1a;libdrm全解析三十八 —— 源码全解析&#xff08;35&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 前一篇文章讲解完了资源的释放流程中的drmModeRmFB()&#xff0c;本回讲解munma…

DRM全解析 —— plane详解(1)

本文参考以下博文&#xff1a; Linux内核4.14版本——drm框架分析(5)——plane分析 特此致谢&#xff01; 1. 简介 一个plane代表一个image layer&#xff08;硬件图层&#xff09;&#xff0c;最终的image由一个或者多个plane(s)组成。plane和 Framebuffer 一样是内存地址。…

Android12之DRM架构(一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(20)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(19) 上一回讲解了从drm_mode_addfb2_ioctl()和drm_mode_addfb_ioctl()一步步往前追溯的全过程: drm_mode_addfb2_ioctl() / drm_mode_addfb_ioctl() ---> drm_ioctls[] ---> drm_ioctl()---> …

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(16)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(15) 本回按照上回中说的,开始对于drivers/gpu/drm/i915/display/intel_fb.c中的intel_user_framebuffer_create函数进行解析。再次贴出intel_user_framebuffer_create函数源码: struct drm_framebuff…