Share via


resinfo (sm4 - asm)

指定された入力リソースのディメンションに対してクエリを実行します。

resinfo[_uint|_rcpFloat] dest[.mask], srcMipLevel.select_component, srcResource[.swizzle]
Item 説明
Dest
[入力]操作の結果のアドレス。
srcMipLevel
[入力]ミップ レベル。
srcResource
[入力]ディメンションのクエリ対象となる t# または u# 入力テクスチャ。

注釈

srcMipLevel は符号なし整数スカラーとして読み取られます。したがって、ソース レジスタがスカラーイミディエイト値でない場合は、1 つのコンポーネント セレクターが必要です。

dest は、書き込みマスクによって選択された [幅、高さ、深さ、または配列サイズ、total-mip-count] を受け取ります。

返される幅、高さ、および深さの値は 、srcMipLevel パラメーターによって選択された mip レベルの値であり、テクセル のデータ サイズに関係なく、テクセルの数です。 マルチサンプル リソース (texture2D[Array]MS#) の場合、幅と高さは、サンプルではなくテクセルでも返されます。

dest.w で返される mip カウントの合計は、srcMipLevel パラメーターの影響を受けません。

UAV (u#) の場合、ミップ レベルの数は常に 1 です。

この命令のすべての側面は、基になる基本リソースではなく、t#/u# でバインドされたリソース ビューの特性に基づいています。

_uint修飾子を使用しない限り、戻り値はすべて浮動小数点です。この場合、戻り値はすべて整数です。 _rcpFloat修飾子を使用すると、返されるすべての値が浮動小数点になり、幅、高さ、深さが逆数 (1.0f/width、1.0f/height、1.0f/depth) として返されます(width/height/depth が範囲外の srcMipLevel 動作から 0 の場合は INF を含む)。 _rcpFloat修飾子は、返される幅、高さ、深さの値にのみ適用され、0 に設定され、したがって返されない値には適用されず、配列サイズの戻り値にも適用されません。

srcResource の swizzle を使用すると、返された値を、宛先に書き込む前に任意にスウィズルできます。

srcResource が Texture1D の場合、width は dest.x で返され、dest.yz は 0 に設定されます。

srcResource が Texture1DArray の場合、width は dest.x で返され、配列サイズは dest.y で返され、dest.z は 0 に設定されます。

srcResource が Texture2D の場合、幅と高さは dest.xy で返され、dest.z は 0 に設定されます。

srcResource が Texture2DArray の場合、幅と高さは dest.xy で返され、配列サイズは dest.z で返されます。

srcResource が Texture3D の場合は、幅、高さ、深さが dest.xyz で返されます。

srcResource が TextureCube の場合、個々のキューブ面の寸法の幅と高さは dest.xy で返され、dest.z は 0 に設定されます。

srcResource が TextureCubeArray の場合、個々のキューブ面の寸法の幅と高さは dest.xy で返されます。dest.z は未定義の値に設定されます。

srcResource でリソースごとのミップ クランプが指定されている場合、resinfo は、クランプに関係なく、ビュー内のミップマップの合計数を常に返します。 ただし、指定されたミップレベルの寸法が resinfo によって要求され、ミップレベルがクランプオフされている場合 (2.2 のクランプは、mips 0 と 1 がクランプオフされていることを意味します)、返される寸法は未定義です。 一部の実装では、miplevel が範囲外の場合に resinfo に指定された範囲外の動作が返されます。 他の実装では、クランプされていないかのようにミップの次元が返されます。

制限

  • srcResource は、バッファーではなく Texture* である t# または u# レジスタである必要があります。
  • srcResource の相対アドレス指定は許可されていません。
  • srcMipLevel は、スカラー イミディエイトでない場合は、1 つのコンポーネント セレクターを使用する必要があります。
  • バインドされていない t# または u# からフェッチすると、幅、高さ、深さ、配列サイズ、および合計 mip-count に対して 0 が返されます。 この場合も _rcpFloat 修飾子が使用されるため、該当する戻り値の INF が返されます。
  • srcMipLevel がリソース内の miplevel の使用可能な数の範囲外にある場合、サイズの戻り値 (dest.xyz) の動作は、バインドされていない t# または u# リソースの動作と同じです。 この場合も、合計 mip カウントは dest.w で返されます。

この命令は、次のシェーダー ステージに適用されます。

頂点シェーダー ジオメトリ シェーダー ピクセル シェーダー
x x x

最小シェーダー モデル

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

シェーダー モデル サポートされています
シェーダー モデル 5 はい
シェーダー モデル 4.1 はい
シェーダー モデル 4 はい
シェーダー モデル 3 (DirectX HLSL) no
シェーダー モデル 2 (DirectX HLSL) no
シェーダー モデル 1 (DirectX HLSL) no

シェーダー モデル 4 アセンブリ (DirectX HLSL)