gather4_po (sm5 - asm)
gather4 のバリアントですが、即時オフセット [-8..7] をサポートする代わりに、オフセットは命令のパラメーターとして取得され、[-32..31] の範囲も大きくなります。
gather4_po dest[.mask], srcAddress[.swizzle], srcOffset[.swizzle], srcResource[.swizzle], srcSampler[.select_component] |
---|
項目 | 説明 |
---|---|
Dest |
[入力]操作の結果のアドレス。 |
srcAddress |
[入力]テクスチャ座標のセット。 |
srcOffset |
[入力]オフセット。 |
srcResource |
[入力]テクスチャ レジスタ。 |
srcSampler |
[入力]サンプラー レジスタ。 |
解説
4 ベクター オフセット パラメーターの最初の 2 つのコンポーネントは、32 ビットの整数オフセットを提供します。 このパラメーターの他のコンポーネントは無視されます。
各オフセット値の 6 つの最下位ビットは符号付き値として使用され、[-32..31] の範囲が得られます。
この命令は、TextureCubes でも動作する gather4 とは異なり、2D テクスチャでのみ機能します。
サンプラーで受け入れられているモードは、アドレス指定モードのみです。 リソース ビューで最も詳細なミップのみが使用されます。
アドレスがテクセル中心にある場合、他のテクセルをゼロにできるわけではありません。
srcSampler パラメーターには [.select_component] が含まれています。これにより、不足しているコンポーネントの既定値を返すなど、テクスチャの 1 つのコンポーネントを取得できます。
float32 コンポーネントを含む形式の場合、フェッチされる値が正規化、非正規化、+-0、または +-INF の場合は、変更されずにシェーダーに返されます。 NaN は NaN として返されますが、NaN の正確なビット表現は変更される可能性があります。 TextureCubes の場合、不足している 4 番目のテクセルの合成はコーナーで行われる必要があるため、合成されたテクセルに対して変更されていないビットを返すという概念は適用されず、デノルムをフラッシュできます。
この命令を使用して 、gather4 のオフセット範囲を大きく、プログラム可能に拡張します。 名前の "po" サフィックスは、"プログラム可能なオフセット" を意味します。
この命令は、次のシェーダー ステージに適用されます。
Vertex | Hull | Domain | ジオメトリ | ピクセル | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
最小シェーダー モデル
この命令は、次のシェーダー モデルでサポートされています。
シェーダー モデル | サポートされています |
---|---|
シェーダー モデル 5 | はい |
シェーダー モデル 4.1 | no |
シェーダー モデル 4 | no |
シェーダー モデル 3 (DirectX HLSL) | no |
シェーダー モデル 2 (DirectX HLSL) | no |
シェーダー モデル 1 (DirectX HLSL) | no |