用户模式驱动程序日志记录
本文概述了 WDDM 中的用户模式驱动程序日志记录。
若要获取视频内存更可行的细分,WDDM 驱动程序需要公开 Direct3D 资源和视频内存分配之间的关系。 从 Windows 8 开始,通过添加用户模式驱动程序(UMD)日志记录接口,可以实现此功能。 将此信息添加到 Windows 事件跟踪(ETW)跟踪中后,可以从 API 的角度查看视频内存分配。
要求:
- 最低 WDDM 版本:1.2
- 最大 Windows 版本:8
- 驱动程序实现 - 仅完整图形和渲染:必需
- WHLK 要求和测试: Device.Graphics¦UMDLogging
对于开发人员,UMD 日志记录可以阐明内存成本,例如内部碎片或快速丢弃图面的效果。 它使Microsoft能够更好地与客户和合作伙伴合作,这些客户和合作伙伴提供性能问题的分析跟踪。 具体而言,此功能可以帮助克服调查内存相关性能问题的常见阻塞点:应用程序使用的工作集过大,但无法确定导致问题的 API 资源或调用。
驱动程序必须通过实现 UMD ETW 接口来公开 Direct3D 资源和视频内存分配之间的关系。 除了日志记录事件之外,驱动程序还必须能够在任何时间点报告资源与分配之间的所有现有映射。
UMD 驱动程序分配日志记录 DDI
UMD 分配日志记录 DDI 提供 ETW 内核级跟踪设施下的事件,用于显示哪些 API 资源与 DirectX 图形内核子系统(Dxgkrnl.sys)中的内核分配相关联。
可以使用 DDI:
- 发现内部内存碎片或快速丢弃表面的影响。
- 为Microsoft提供更好的跟踪信息,以帮助识别性能问题。
- 帮助确定应用的资源或 API 调用何时导致它使用太大的工作内存集。
使用这些 umdprovider.h 标头中的函数、枚举和结构记录 UMD 中的事件:
- UMDEtwLogMapAllocation 函数
- UMDEtwLogUnmapAllocation 函数
- UMDEtwRegister 函数
- UMDEtwUnregister 函数
- UMDETW_ALLOCATION_SEMANTIC枚举
- UMDETW_ALLOCATION_USAGE结构
另 请参阅 umdetw.h 标头。
硬件认证要求
有关硬件设备在实现此功能时必须满足的要求的信息,请参阅 Device.Graphics ¦ UMDLogging 上的 WHLK 文档。
有关使用 Windows 8 添加的功能的回顾,请参阅 WDDM 1.2 功能 。