PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB回调函数 (d3dumddi.h)

pfnUpdateGpuVirtualAddressCb 是磁贴资源的上下文中使用的特殊作。 它允许用户模式驱动程序在单个页表更新中指定要应用于进程的虚拟地址空间的多个映射作。

所有作(复制作的源地址除外)中的图形处理单元(GPU)虚拟地址的范围必须属于通过调用 pfnReserveGpuVirtualAddressCb获得的单个虚拟地址范围。 同样,复制作中所有源的虚拟地址范围必须属于单个虚拟地址范围,该范围是通过调用 pfnReserveGpuVirtualAddressCb获取的。

页表更新在分页上下文上执行,专用于指定的呈现上下文,并且仅在关联呈现上下文指示 FenceValue 指定的监视围栏对象的关联呈现上下文之后,才在 GPU 上执行。 页表更新完成后,分页上下文会向受监视的围栏对象发出信号,FenceValue+1,从而允许呈现上下文与页表更新紧密相连。

语法

PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB Pfnd3dddiUpdategpuvirtualaddresscb;

HRESULT Pfnd3dddiUpdategpuvirtualaddresscb(
  HANDLE hDevice,
  const D3DDDICB_UPDATEGPUVIRTUALADDRESS *unnamedParam2
)
{...}

参数

hDevice

显示设备的句柄。

unnamedParam2

pData [in]

指向描述要执行的作的 D3DDDICB_UPDATEGPUVIRTUALADDRESS 结构的指针。

返回值

如果此回调函数成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。

言论

允许更新作中的虚拟地址范围相交。 作将按提交的顺序应用。

在单个 pfnUpdateVirtualAddressCb 调用中:

  • 映射作中的所有虚拟地址范围和复制作中的目标范围必须属于同一保留范围(零)。
  • 允许复制作中的源虚拟地址范围来自不同的保留(零)范围。
  • 所有复制作中的源虚拟地址范围必须属于相同的保留(零)范围。
用户模式驱动程序可以提交许多 pfnUpdateGpuVirtualAddressCb 调用和作将排在呈现围栏后面。 当排队更新作数超过 128 时,将阻止调用线程,直到视频内存管理器处理以前的作。

要求

要求 价值
最低支持的客户端 Windows 10
支持的最低服务器 Windows Server 2016
目标平台 桌面
标头 d3dumddi.h (包括 D3dumddi.h)

另请参阅

D3DDDICB_UPDATEGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb