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;但是,如果设备删除会干扰 Dispatch(通常不应发生),驱动程序可以返回D3DDDIERR_DEVICEREMOVED。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 7作系统开始,支持调度。 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |