共用方式為


(sm4 - asm)

查詢指定輸入資源的維度。

ativefo[_uint|_rcpFloat] dest[.mask], srcMipLevel.select_component, srcResource[.swizzle]
項目 描述
dest
[in]作業結果的位址。
srcMipLevel
[in]mip 層級。
srcResource
[in]要查詢維度的 t# 或 u# 輸入紋理。

備註

srcMipLevel 會讀取為不帶正負號的整數純量,因此如果來源暫存器不是純量立即值,則需要單一元件選取器。

dest 會接收 [width、height、depth 或 array size,total-mip-count],由寫入遮罩所選取。

傳回的寬度、高度和深度值適用于 srcMipLevel 參數所選取的 mip 層級,而且與紋素資料大小無關,且數目不相同。 對於多重取樣資源 (texture2D[Array]MS#) ,寬度和高度也會在紋素中傳回,而不是樣本。

dest.w中傳回的總 mip 計數不受srcMipLevel參數影響。

若為 UAV (u#) ,mip 層級的數目一律為 1。

本指令的所有層面都是以 t#/u# 系結的資源檢視特性為基礎,而不是基礎基底資源。

傳回的值都是浮點數,除非使用_uint修飾詞,在此情況下,傳回的值都是整數。 如果使用_rcpFloat修飾詞,則所有傳回的值都是浮點數,而寬度、高度和深度則會以相互 (1.0f/width、1.0f/height、1.0f/depth) 傳回,包括 INF,如果 width/height/depth 是從超出範圍的 srcMipLevel 行為傳回 0。 _rcpFloat修飾詞僅適用于寬度、高度和深度傳回的值,而且不適用於設定為 0 且因此不會傳回的值,也不適用於陣列大小傳回。

srcResource上的 swizzle 可讓傳回的值在寫入目的地之前任意撥動。

如果 srcResource 是 Texture1D,則會在 dest.x中傳回寬度,而 dest.yz 會設定為 0。

如果 srcResource 是 Texture1DArray,則寬度會在 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中傳回個別 Cube 臉部維度的寬度和高度,而 dest.z 會設定為 0。

如果 srcResource 是 TextureCubeArray,則會在 dest.xy中傳回個別 Cube 臉部維度的寬度和高度。 dest.z 設定為未定義的值。

如果 srcResource上已指定每一資源 mip 固定位,則不論該 mip 計數為何,都會傳回 mip 計數檢視中的 mipmap 總數。 不過,如果指定 Miplevel 的維度是由 (所要求,而 miplevel 已關閉 (例如,2.2 的固定表示 mips 0 和 1 已關閉) ,則傳回的維度是未定義的。 某些實作會在錯位超出範圍時,傳回針對 miplefo 指定的界限行為。 其他實作會傳回 mip 的維度,就像它尚未受到限制一樣。

Restrictions

  • srcResource 必須是不是 Buffer 的 t# 或 u# 暫存器,但是 Texture*。
  • 不允許 srcResource 的相對位址。
  • 如果 srcMipLevel 不是純量,則必須使用單一元件選取器。
  • 從沒有系結的 t# 或 u# 擷取會傳回寬度、高度、深度或陣列大小的 0,以及總計 mip-count。 在此情況下,仍會接受_rcpFloat修飾詞,因此會針對適用的傳回值傳回 INF。
  • 如果 srcMipLevel 超出資源中可用數量的錯誤數目,則大小傳回的行為 (dest.xyz) 與未系結 t# 或 u# 資源的行為相同。 此案例仍會在 dest.w 中傳回 mip 計數總計。

本指示適用于下列著色器階段:

頂點著色器 幾何著色器 像素著色器
x x x

最小著色器模型

下列著色器模型中支援此函式。

著色器模型 支援
著色器模型 5
著色器模型 4.1
著色器模型 4
著色器模型 3 (DirectX HLSL)
著色器模型 2 (DirectX HLSL)
著色器模型 1 (DirectX HLSL)

著色器模型 4 元件 (DirectX HLSL)