次の方法で共有


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

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

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

頂点 ハル ドメイン ジオメトリ ピクセル 演算
x

関連項目

シェーダー モデル 5