libdrm

2024/4/27 8:07:29

DRM全解析 —— ADD_FB(2)

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

libdrm全解析十九 —— 源码全解析(16)

接前一篇文章:libdrm全解析十八 —— 源码全解析(15) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 27. DRM_IOCTL_SET_SAR…

DRM全解析 —— ADD_FB(1)

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

libdrm全解析二十三 —— 源码全解析(20)

接前一篇文章:libdrm全解析二十二 —— 源码全解析(19) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 前一篇文章已提到,drmModeGetResources函数值得深入地进行讲解。本回…

libdrm全解析二十二 —— 源码全解析(19)

接前一篇文章:libdrm全解析二十一 —— 源码全解析(18) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 前一篇文章介绍了DRM的一般流程,并给出了示例代码。从本回开始&…

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

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

libdrm全解析三十六 —— 源码全解析(33)

接前一篇文章:libdrm全解析三十五 —— 源码全解析(32) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 前一篇文章讲解完了mmap()显存映射,本篇文章继续讲解DRM一般流程的下…

DRM全解析 —— ADD_FB2(0)

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

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

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

libdrm全解析十六 —— 源码全解析(13)

接前一篇文章:libdrm全解析十五 —— 源码全解析(12) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 21. DRM_IOCTL_ADD_BUF…

libdrm全解析三十 —— 源码全解析(27)

接前一篇文章:libdrm全解析二十九 —— 源码全解析(26) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 本文开始对drmIoctl(DRM_IOCTL_MODE_CREATE_DUMB)以及其封装函数drmModeCreateD…

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…

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

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

DRM全解析 —— ADD_FB2(2)

接前一篇文章:DRM全解析 —— ADD_FB2(1) 本文参考以下博文: DRM驱动(四)之ADD_FB 特此致谢! 本回对于DRM_IOCTL_MODE_ADDFB2的ioctl系统调用进行深入分析。 众所周知,ioctl系统调…

DRM全解析 —— ADD_FB(3)

接前一篇文章:DRM全解析 —— ADD_FB(2) 本文参考以下博文: DRM驱动(四)之ADD_FB 特此致谢! 本回开始对于drm_mode_addfb函数进行解析。为了便于理解,再次贴出其代码,在…

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循环中的内容。先看头两句代码,…

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从上到下全过程 ——…

libdrm全解析五 —— 源码全解析(2)

接前一篇文章&#xff1a;libdrm全解析四 —— 源码全解析&#xff08;1&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析 特此致谢&#xff01; 上一篇文章深入讲解了include/drm/d…

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++)中的前两个参数检查,本回按说应该继续往下讲解,但由于上一回距离再前一…

libdrm全解析十一 —— 源码全解析(8)

接前一篇文章&#xff1a;libdrm全解析十 —— 源码全解析&#xff08;7&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 12. DRM_IOCTL_GEM_OPEN …

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

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

libdrm全解析十二 —— 源码全解析(9)

接前一篇文章&#xff1a;libdrm全解析十一 —— 源码全解析&#xff08;8&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 13. DRM_IOCTL_GET_CAP …

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

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

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()---> …

libdrm全解析二十一 —— 源码全解析(18)

接前一篇文章&#xff1a;libdrm全解析二十 —— 源码全解析&#xff08;17&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。从本篇文章开始&#xff…

libdrm全解析二十八 —— 源码全解析(25)

接前一篇文章&#xff1a;libdrm全解析二十七 —— 源码全解析&#xff08;24&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 上一篇文章对于DRM_IOCTL_MODE_GETCONNECTOR对应的Userspace API _drmModeGetCo…

DRM全解析 —— CREATE_DUMB(3)

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

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…

DRM全解析 —— ADD_FB(6)

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

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

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

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函数的实参都是什么展开了深入解析,并且借此机会将之前一直没有探明…