PFND3D11DDI_DISPATCH回调函数 (d3d10umddi.h)

Dispatch 函数执行计算着色器。

语法

PFND3D11DDI_DISPATCH Pfnd3d11ddiDispatch;

void Pfnd3d11ddiDispatch(
  D3D10DDI_HDEVICE unnamedParam1,
  UINT unnamedParam2,
  UINT unnamedParam3,
  UINT unnamedParam4
)
{...}

参数

unnamedParam1

hDevice [in]

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

unnamedParam2

ThreadGroupCountX [in]

线程组网格的 x 维的大小(以线程组为单位)。 最大大小为 65535。

unnamedParam3

ThreadGroupCountY [in]

线程组网格的 y 维度的大小(以线程组为单位)。 最大大小为 65535。

unnamedParam4

ThreadGroupCountZ [in]

线程组网格的 z 维度的大小(以线程组为单位)。 最大大小为 65535。

返回值

备注

驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。

Direct3D 运行时在显示设备上调用驱动程序的 Dispatch 函数以执行计算着色器。 已编译的计算着色器定义每个线程要执行的指令集以及每个组要运行的线程数。 ThreadGroupCountX、ThreadGroupCountY 和 ThreadGroupCountZ (线程组参数) 指示要执行的线程组数。 每个线程组包含由编译的计算着色器定义的相同数量的线程。 线程组在三维网格中组织。 编译的计算着色器执行的线程组总数由以下计算确定:

ThreadGroupCountX * ThreadGroupCountY * ThreadGroupCountZ

具体而言,如果线程组参数中的任何值为 0, 则 Dispatch 函数不执行任何操作。

驱动程序不应遇到任何错误,D3DDDIERR_DEVICEREMOVED除外。 因此,如果驱动程序在调用 pfnSetErrorCb 函数时传递除D3DDDIERR_DEVICEREMOVED以外的任何错误,则 Direct3D 运行时将确定错误严重。 即使删除了设备,驱动程序也不需要返回D3DDDIERR_DEVICEREMOVED;但是,如果设备移除干扰 调度 (通常不应) 的操作,驱动程序可以返回D3DDDIERR_DEVICEREMOVED。

要求

要求
最低受支持的客户端 从 Windows 7 操作系统开始支持 Dispatch。
目标平台 桌面
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb