PFND3DDDI_SETMARKER回调函数 (d3dumddi.h)
通知用户模式显示驱动程序,如果自上次调用 pfnSetMarker 以来已完成任何 GPU 工作,则必须生成新的时间戳。 (可选)由 Windows 显示驱动程序模型 (WDDM) Microsoft Direct3D Level 9 硬件上运行的 1.3 及更高版本的驱动程序实现。 (请参阅 Direct3D 渲染性能改进中的要求。) 对于更高级的硬件,驱动程序应实现 SetMarker 函数。
语法
PFND3DDDI_SETMARKER Pfnd3dddiSetmarker;
HRESULT Pfnd3dddiSetmarker(
HANDLE hDevice
)
{...}
参数
hDevice
显示设备的句柄 (图形上下文) 。
返回值
如果函数未成功完成,则返回 S_OK 或相应的错误结果。
注解
如果 pfnSetMarkerMode 函数的 Type 参数中的标记事件类型未D3DDDIMT_NONE,则用户模式显示驱动程序必须在每次调用 pfnSetMarker 时执行此过程:
- 递增 D3DDDICB_LOGUMDMARKER 结构的 APISequenceNumber 成员的值。
- 确定与单线程设备驱动程序接口关联的上下文 (DDI) 呈现提交的调用与最后一次对 pfnSetMarker 的调用。 对于每个此类上下文:
- 如果上下文的命令缓冲区为空,则不执行任何操作。
- 否则:
- 确保上下文的历史记录缓冲区中有更多内存可用。 如有必要,请刷新缓冲区。
- 将另一个条目添加到上下文的 API 序列号缓冲区,其中包含当前 APISequenceNumber 值的低 32 位。
- 采样并写出适用于当前标记事件类型的时间戳。
- 更新将在下次调用 pfnSetMarker 时使用的跟踪数据。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1、WDDM 1.3 及更高版本 |
最低受支持的服务器 | Windows Server 2012 R2 |
目标平台 | 桌面 |
标头 | d3dumddi.h (包括 D3d10umddi.h) |