ID3D11DeviceContext::D ispatch 方法 (d3d11.h)
从线程组执行命令列表。
语法
void Dispatch(
[in] UINT ThreadGroupCountX,
[in] UINT ThreadGroupCountY,
[in] UINT ThreadGroupCountZ
);
参数
[in] ThreadGroupCountX
类型: UINT
以 x 方向调度的组数。 ThreadGroupCountX 必须小于或等于 D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535) 。
[in] ThreadGroupCountY
类型: UINT
在 y 方向调度的组数。 ThreadGroupCountY 必须小于或等于 D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535) 。
[in] ThreadGroupCountZ
类型: UINT
以 z 方向调度的组数。 ThreadGroupCountZ 必须小于或等于 D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535) 。 在功能级别 10 中, ThreadGroupCountZ 的值必须为 1。
返回值
无
备注
调用 Dispatch 方法以在 计算着色器中执行命令。 计算着色器可以在线程组内的多个线程上并行运行。 使用 (x,y,z) 提供的 3D 矢量为线程组中的特定线程编制索引。
在下图中,假设具有 50 个线程的线程组,其中组的大小由 (5,5,2) 。 使用向量 (4,1,1) 从包含 50 个线程的线程组中标识单个线程。
下图显示了传递给 ID3D11DeviceContext::D ispatch 的参数之间的关系, 调度 (5,3,2 ) ,numthreads 属性中指定的值,numthreads (10,8,3) ,将传递给计算着色器的值 (SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID) 。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d11.h |
Library | D3D11.lib |