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 つのスレッドを特定しています。
次の図は、ID3D11DeviceContext::Dispatch に渡すパラメーター値 Dispatch(5,3,2)、numthreads 属性で指定する値 numthreads(10,8,3)、およびスレッド関連のシステム値 (SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID) としてコンピュート シェーダーに渡す値との関係を示しています。
要件
ヘッダー: D3D11.h 宣言
ライブラリ: D3D11.lib 内容