PFND3DDDI_SETMARKER回调函数 (d3dumddi.h)

通知用户模式显示驱动程序,如果自 上次调用 pfnSetMarker以来任何 GPU 工作已完成,则必须生成新的时间戳。 (可选)由 Windows 显示驱动程序模型 (WDDM) 1.3 及更高版本驱动程序在 Microsoft Direct3D 级别 9 硬件上运行。 (请参阅 Direct3D 渲染性能改进中的要求。对于更高级的硬件,驱动程序应实现 SetMarker 函数。

语法

PFND3DDDI_SETMARKER Pfnd3dddiSetmarker;

HRESULT Pfnd3dddiSetmarker(
  HANDLE hDevice
)
{...}

参数

hDevice

显示设备的句柄(图形上下文)。

返回值

如果函数未成功完成,则返回 S_OK 或相应的错误结果。

言论

如果 pfnSetMarkerMode 函数的 Type 参数中的标记事件类型未 D3DDDIMT_NONE,则用户模式显示驱动程序必须在每次调用 pfnSetMarker时执行此过程:

  1. 递增 D3DDDICB_LOGUMDMARKER 结构的 APISequenceNumber 成员的值。
  2. 确定与单线程设备驱动程序接口 (DDI) 关联的上下文,呈现提交调用与上次调用 pfnSetMarker一起使用。 对于每个此类上下文:
    1. 如果上下文的命令缓冲区为空,则不执行任何作。
    2. 否则:
      • 确保上下文的历史记录缓冲区中提供了更多内存。 如有必要,请刷新缓冲区。
      • 将另一个条目添加到上下文的 API 序列号缓冲区,该缓冲区包含当前 APISequenceNumber 值的低 32 位。
      • 适用于当前标记事件类型的示例和写出时间戳。
    3. 将下次调用 pfnSetMarker 时使用的更新跟踪数据。

要求

要求 价值
最低支持的客户端 Windows 8.1、WDDM 1.3 及更高版本
支持的最低服务器 Windows Server 2012 R2
目标平台 桌面
标头 d3dumddi.h(包括 D3d10umddi.h)

另请参阅

SetMarker

pfnSetMarkerMode