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 时执行此过程:

  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