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 ベクターを使用して、スレッド グループ内の特定のスレッドにインデックスを作成します。

次の図では、グループのサイズが (5,5,2) で指定されたスレッド数が 50 個のスレッド グループを想定しています。 1 つのスレッドは、50 個のスレッドが含まれるスレッド グループから、ベクター (4,1,1) を使用して識別されます。

50 スレッドのスレッド グループ内の 1 つのスレッドの図

次の図は、ID3D11DeviceContext::D ispatch、Dispatch(5,3,2)、numthreads 属性で指定された値、numthreads(10,8,3)、スレッド関連のシステム値 (SV_GroupIndexSV_DispatchThreadID、SV_GroupThreadIDSV_GroupID) の計算シェーダーに渡される値の関係を示しています。

ディスパッチ、スレッド グループ、スレッド間の関係の図

要件

要件
対象プラットフォーム Windows
ヘッダー d3d11.h
Library D3D11.lib

こちらもご覧ください

ID3D11DeviceContext