首页 >> 大全

Linux中的DRM 介绍

2023-06-24 大全 51 作者:考证青年

如果在搜索引擎离搜索 DRM 映入眼帘的尽是 ,也就是数字版权加密保护技术。

这当然不是我们想要的解释。在类unix世界中还有一个DRM即The ,它是DRI( )框架的一个组件。而DRI的作用是为类Unix系统提供高效视频加速(很重要的用途是可以对3D渲染提供加速效果)。

DRI是由以下2个部分组成的(这2个在linux即可以编译进内核,也可以以模块形式存在):

1、通用的DRM驱动。

2、支持特定显卡的驱动。

DRM -

DRM是一个内核级的设备驱动,既可以编译到内核中也可以作为标准模块进行加载。DRM最初是在中出现的,后来被移植到Linux系统中,并成为Linux系统的标准部分。

DRM可以直接访问DRM 的硬件。DRM驱动用来处理DMA,内存管理,资源锁以及安全硬件访问。为了同时支持多个3D应用,3D图形卡硬件必须作为一个共享资源,因此需要锁来提供互斥访问。DMA传输和AGP接口用来发送图形操作的到显卡硬件,因此要防止客户端越权访问显卡硬件。

Linux DRM层用来支持那些复杂的显卡设备,这些显卡设备通常都包含可编程的流水线,非常适合3D图像加速。内核中的DRM层,使得这些显卡驱动在进行内存管理,中断处理和DMA操作中变得更容易,并且可以为上层应用提供统一的接口。

DRM代码位置

因为Linux 内部接口和数据结构可能随时发生变化,所以DRI模块要针对特定的内核版本进行编译。 2.6.26之后的版本,DRM(DRI 模块)源码存放在//gpu/drm中;在这之前的版本,源码在//char/drm目录中。

每一个3D硬件加速驱动都包含一个内核模块,并且都需要使用DRM支持代码。

DRI -

DRI并不是一个软件模块。相反DRI是由一系列的软件模块组成。引入DRI的目的是为了3D图形加速,DRI是一个软件架构,用来协调linux ,X 系统,3D图形硬件以及渲染引擎之间的工作。

DRM支持DRI的方式

DRM以三种方式支持DRI

DRM提供到显卡硬件的同步访问。 有多个实体(比如X ,多个-客户端,以及)竞争访问显卡硬件。PC类的显卡在多个实体访问显卡硬件时会使用锁。DRM为每个显卡设备提供了一个锁,来同步硬件的访问。比如X 正在执行2D渲染,此-客户端执行一个软件回调,这个软件回调会读写frame 。对于一些高端卡来说,由于硬件内部本身会对访问命令做排序,因此并不需要使用这个锁。DRM在访问显卡硬件时,强制执行DRI安全测策略。X 以root权限运行,在访问显卡的和MMIO区域时,会用/dev/mem映射这些区域。- 客户端,并不是运行在root权限的,但是仍然需要类似的映射。DRM设备接口允许客户端创建这些映射,但是必须遵守以下限制: *仅当客户端连接到X 时才能映射这些区域,这就迫使-客户端遵守正常的X 安全策略。 * 仅当客户端能够打开/dev/drm?时才可以映射这些区域。这允许系统管理员可以配置 访问,仅可信的用户才能访问。 * 客户端只能映射X 允许映射的区域。DRM提供了一个通用的DMA引擎。大部分现代PC类计算机的显卡硬件提供 FIFO的DMA访问。DMA 访问比MMIO访问有更好的吞吐量性能。对于这些显卡,DRM 提供的DMA引擎包含下面的: *

DRM和DRI关系

早期的

当前的

我们可以看出DRM是DRI的一个组成部分,DRI同时还包含kms以及 DRI 部分。

tags: 显卡

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了