ld (sm4 - asm)

使用提供的整數位址,從指定的緩衝區或紋理擷取資料,而不需篩選任何篩選(例如點取樣)。 來源資料可能來自 TextureCube 以外的任何資源類型。

ld[_aoffimmi(u,v,w)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle]
項目 說明
dest
[in]作業結果的位址。
srcAddress
[in]執行樣本所需的紋理座標。
srcResource
[in]必須宣告要從中擷取哪一個紋理或緩衝區的紋理暫存器 (t#)。

備註

此指令是範例 指令的 簡化替代方案。 不同于 sample,ld 也能夠從緩衝區擷取資料。 ld 也可以從多重樣本資源擷取 (僅限圖元著色器上)。

srcAddress 提供一組紋理座標,以不帶正負號整數的形式執行樣本。 如果 srcAddress 超出範圍[0...(在維度 -1)中 #texels],則會叫用超出界限的行為,其中 ld 會以 srcResource 格式 的所有非遺漏元件傳回 0,以及遺漏元件的預設值。 希望對超出範圍位址行為進行更彈性控制的應用程式應該改用 範例指令,因為它接受定義為取樣 器狀態的位址包裝/鏡像/夾板/框線行為。

srcAddress.a (POS-swizzle) 一律提供不帶正負號的整數 mipmap 層級。 如果值超出範圍 [0...(resource-1)中的 num 錯誤,然後叫用超出範圍的行為。 如果資源是緩衝區,不能有任何 mipmap,則會 忽略 srcAddress.a

srcAddress.gb (POS-swizzle) 會忽略緩衝區和 texture1D (非陣列)。 srcAddress.b (POS-swizzle) 會忽略 texture1D 陣列和 texture2D。

對於 texture1D 陣列, srcAddress.g (POS-swizzle) 會提供陣列索引作為不帶正負號的整數。 如果值超出可用陣列索引的範圍 [0...(陣列 size-1)],然後叫用超出界限的行為。

對於 texture2D 陣列, srcAddress.b (POS-swizzle) 會提供陣列索引,否則具有與 texture1D 相同的語意。

沒有任何系結的 t# 擷取會針對所有元件傳回 0。

位址位移

選擇性 [_aoffimmi(u,v,w)] 尾碼(位址位移為即時整數)表示 ld 的紋理座標 要由一組提供的即時紋素空間整數常數值位移。 常值是一組 4 位 2 的補數,具有整數範圍 [-8,7]。 這個修飾詞只針對 texture1D/2D/3D 定義,包括陣列,而不是用於緩衝區。

位移會新增至紋理座標,在紋素空間中,相對於 ld 存取的 Miplevel。

位址位移不會沿著 texture1D/2D 陣列的陣列軸套用。

紋理 1D 會忽略 _aoffimmi v、w 元件。

紋理 2D 會忽略 _aoffimmi w 元件。

由於 ld 紋理座標是不帶正負號的整數,如果位移導致位址低於零,它會包裝成大型位址,並導致界限外存取。

傳回型別控制項

ld 傳回 至目的地暫存器的資料格式會以與範例 指令所述的 相同方式來決定;其以系結至 srcResource 參數的格式為基礎( t# )。

如同範例 指令,ld 的傳回值 是 4 向量,其格式為格式中不存在之元件的格式特定預設值。 srcResource 上的 swizzle 會決定如何從紋理載入傳回的 4 元件結果,之後 dest 上的 .mask 會決定 dest 中的 哪些元件 更新。

當 ld 32 位浮點數讀入 32 位暫存器時,位不會受到觸控;也就是說,反正規值會保持反正規值。 這與範例 指令不同

其他詳細資料

由於沒有與 ld 指令相關聯的篩選,因此 LOD 偏差等概念不適用於 ld 。 因此沒有取樣器 s# 參數。

限制

  • srcResource 必須是 t# 暫存器,而不是 TextureCube。 srcResource 不能是常數緩衝區,無法系結至 t# 暫存器。
  • 不允許 srcResource 上的 相對定址。
  • srcAddress 必須是 temp (r#/x#), 常數 (cb#) 或輸入 (v#) 暫存器。
  • dest 必須是 temp (r#/x#) 或輸出 (o*#) 暫存器。

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

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

最小著色器模型

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

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

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