次の方法で共有


SV_GroupIndex

スレッド グループ内のコンピューティング シェーダー スレッドの "フラット化" インデックス。これにより、多次元SV_GroupThreadIDが 1D 値に変換されます。 SV_GroupIndexは 0 から (numthreadsX * numthreadsY * numThreadsZ) – 1 に変化します。

種類

種類
uint

 

注釈

SV_GroupIndex = SV_GroupThreadID.z*dimx*dimy + 
                      SV_GroupThreadID.y*dimx + 
                      SV_GroupThreadID.x

dimx と dimy は、エントリ ポイントの numthreads 属性で指定されたディメンションです。

このシステム値は省略可能です。 ただし、その使用により、スレッドは groupshared 変数内の割り当てられたメモリ領域にのみ書き込まれます。

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

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

この関数は、次の種類のシェーダーでサポートされています。

Vertex Hull Domain ジオメトリ ピクセル Compute
x

 

こちらもご覧ください

セマンティクス

シェーダー モデル 5