ID3D11DeviceContext::Dispatch

スレッド グループからコマンド リストを実行します。

void 
Dispatch(
  UINT ThreadGroupCountX,
  UINT ThreadGroupCountY,
  UINT ThreadGroupCountZ
);

パラメータ

  • ThreadGroupCountX
    x 方向にディスパッチしたグループの数。ThreadGroupCountX は 64k 未満であることが必要です。
  • ThreadGroupCountY
    y 方向にディスパッチしたグループの数。ThreadGroupCountY は 64k 未満であることが必要です。
  • ThreadGroupCountZ
    z 方向にディスパッチしたグループの数。ThreadGroupCountZ は 64k 未満であることが必要です。機能レベル 10 では、ThreadGroupCountZ の値は 1 である必要があります。

戻り値

返されるものはありません。

解説 

コンピュート シェーダーは、同じスレッド グループにある多数のスレッドで並列実行できます。スレッド グループ内の個々のスレッドは、(x,y,z) で指定する 3D ベクトルを使用して指定します。

次の図は、50 のスレッドを持ち、サイズが (5,5,2) であるスレッド グループを示しています。ここでは、ベクトル (4,1,1) を使用して、50 のスレッドで構成するスレッド グループにある 1 つのスレッドを特定しています。

Ee419587.d3d11_thread_group_1(ja-jp,VS.85).gif

次の図は、ID3D11DeviceContext::Dispatch に渡すパラメーター値 Dispatch(5,3,2)、numthreads 属性で指定する値 numthreads(10,8,3)、およびスレッド関連のシステム値 (SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID) としてコンピュート シェーダーに渡す値との関係を示しています。

Ee419587.ThreadGroupIDs(ja-jp,VS.85).png

要件

ヘッダー: D3D11.h 宣言

ライブラリ: D3D11.lib 内容