Windows 图形体现驱动开辟-WDDM 2.7功能-MCDM KM 驱动步调实现指南(四)

[复制链接]
发表于 2025-10-5 20:54:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
查询适配器信息要求

如前所述,仅盘算驱动步调必须支持 DxgkDdiQueryAdapterInfo。
必须支持以下 DXGK_QUERYADAPTERINFOTYPE 范例:

  • DXGKQAITYPE_DRIVERCAPS
  • DXGKQAITYPE_NUMPOWERCOMPONENTS
  • DXGKQAITYPE_HISTORYBUFFERPRECISION
  • DXGKQAITYPE_QUERYSEGMENT4 
 利用内存段形貌 GPU 地点空间
视频内存管理器 (VidMm) 负责管理 GPU 的地点空间。 在此之前,内核模式体现微型端口驱动步调 (KMD) 必须通过利用内存段将 GPU 的地点空间形貌为 VidMm。
KMD 创建内存段以概括和假造化视频内存资源。 它可以根据硬件支持的存储器范例(比方,帧缓冲区内存或体系内存调治)设置内存段。
在驱动步调初始化期间,KMD 必须返回形貌 VidMm 怎样管理内存资源的段范例列表。 KMD 指定了它支持的段范例的数目,并通过相应对其 DxgkDdiQueryAdapterInfo 函数的调用来形貌每种段范例。 驱动步调利用 DXGK_SEGMENTDESCRIPTOR 布局形貌每个段。 有关详细信息,请参阅初始化内存段的利用。
以后,段的数目和范例保持稳固。 VidMm:

  • 确保每个进程在任何特定段中都能得到公平的资源份额,
  • 独立管理全部段。
段不重叠。 因此,VidMm 可以从一个段分配相称数目的视频内存资源,而不管应用步调从另一个段持有多少资源。
KMD 为每个内存段分配一个段标识符。 稍后,当 VidMm 哀求为视频资源创建分配并出现这些资源时,KMD:

  • 标识支持哀求的段。
  • 按序次指定驱动步调盼望 VidMm 利用的段。
KMD 不须要在其内存段中指定 GPU 可用的全部视频内存资源。 但是,KMD 必须指定 VidMm 在体系上运行的全部进程中管理的全部内存资源。 比方:

  • 实现固定函数管道的极点着色器微代码可以驻留在 GPU 地点空间中,但在 VidMm 管理的内存之外(即不是段的一部门)。 此设置是大概的,由于微代码始终可用于全部进程,而且永世不会成为进程之间争用的泉源。
  • 对于极点缓冲区、纹理、出现目的和应用步调特定的着色器代码等资源,VidMm 必须从驱动步调的内存段之一分配视频内存资源。 这一要求是由于资源范例必须对全部进程公平可用。
下图体现了 KMD 怎样从 GPU 地点空间设置内存段的示例。

图中的数字对应于以下内存段:

  •         CPU 可访问的线性段:此段可由 CPU 访问,并构造为线性地点空间。
  •         非 CPU 可访问的线性段:该段被构造为线性地点空间,但 CPU 无法访问。 它用于不须要 CPU 访问的资源。
  •         只读 AGP 光圈段:此段用于对 AGP(加速图形端口)内存举行只读访问。
  •         光圈段:此段用于通过 AGP 光圈访问的资源。
埋伏框体现 KMD 不向 VidMm 公开的内存段。 埋伏在 VidMm 中的视频内存不能映射到用户空间,也不能被任何特定进程独占。 如许做违背了假造内存的根本规则,即要求体系上运行的全部进程都可以访问全部内存。
支持以下DXGK_QUERYADAPTERINFOTYPE范例是可选的:

  • DXGK_ADAPTER_PERFDATA
  • DXGK_ADAPTER_PERFDATACAPS
  • DXGKQAITYPE_UMDRIVERPRIVATE
  • DXGKQAITYPE_PHYSICALADAPTERCAPS
  • DXGK_NODE_PERFDATA
  • DXGK_GPUVERSION
假如陈诉了一个或多个无效内存块,则必须支持以下DXGK_QUERYADAPTERINFOTYPE:

  • DXGKQAITYPE_SEGMENTMEMORYSTATE
假如支持 GPUVA,则必须支持以下DXGK_QUERYADAPTERINFOTYPE:

  • DXGKQAITYPE_GPUMMUCAPS
  • DXGKQAITYPE_PAGETABLELEVELDESC
假如陈诉的电源组件数大于零,则必须支持以下DXGK_QUERYADAPTERINFOTYPE:

  • DXGKQAITYPE_POWERCOMPONENTINFO
假如设置了 IoMmuSecureModeSupported 上限,则必须支持以下DXGK_QUERYADAPTERINFOTYPE:

  • DXGKQAITYPE_FRAMEBUFFERSAVESIZE
  • DXGKQAITYPE_HARDWARERESERVEDRANGES
不得支持以下DXGK_QUERYADAPTERINFOTYPE:

  • DXGKQAITYPE_DEVICE_TYPE_CAPS
  • DXGKQAITYPE_DISPLAY_DRIVERCAPS_EXTENSION
  • DXGKQAITYPE_DISPLAYID_DESCRIPTOR
  • DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR
  • DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR2
  • DXGKQAITYPE_POWERCOMPONENTPSTATEINFO
  • DXGKQAITYPE_PREFERREDGPUNODE
  • DXGKQAITYPE_QUERYCOLORIMETRYOVERRIDES
  • DXGKQAITYPE_QUERYSEGMENT
  • DXGKQAITYPE_QUERYSEGMENT2
  • DXGKQAITYPE_QUERYSEGMENT3
  • DXGKQAITYPE_UEFIFRAMEBUFFERRANGES
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表