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 个线程的线程组中标识单个线程。

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

另请参阅

ID3D11DeviceContext