ld2dms (sm4.1 - asm)

从二维多样本纹理中读取单个样本。

ld2dms[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], sampleIndex
条目 DESCRIPTION
dest
[in]作结果的地址。
srcAddress
[in]执行样本所需的纹理坐标。
srcResource
[in]必须声明的纹理寄存器(t#)标识要从中提取的纹理或缓冲区
sampleIndex
[in]标识要从 srcResource (标量作数)读取的示例。

注解

此指令是 示例 指令的简化替代方法。 它使用提供的整数 srcAddresssampleIndex 从指定的纹理中提取数据(例如点采样)。

srcAddress 提供以无符号整数形式执行样本所需的纹理坐标集。 如果 srcAddress 超过范围[0...()#texels 维度 -1)], ld2dms 始终以资源格式返回 0,对于缺少的组件,默认值为 0,0,0,1.0f/0x00000001。

sampleIndex 不必是文本。 多样本计数不必在纹理资源上指定,并且它适用于深度或模具视图。

希望对范围外地址行为进行更灵活的控制的应用程序应改用 示例 指令,因为它遵循定义为采样器状态的地址包装/镜像/固定/边框行为。

对于 Texture2D,将忽略 srcAddress.b (后重排)。 如果值超过可用数组索引的范围 [0...(数组 size-1],然后 ld2dms 始终返回资源格式的所有组件中的 0,对于缺少的组件,默认值为 0,0,0,0,1.0f/0x00000001。

对于 Texture2D 数组, srcAddress.b (后重排)提供数组索引。 否则,它的行为与 Texture2D 相同。

srcAddress.a (后重排)始终被忽略。 HLSL 编译器永远不会输出任何内容。

srcResource 是一个纹理寄存器(t#),必须已声明(22.3.11),用于标识要从中提取的纹理。

从 t# 提取,但没有任何限制,它为所有组件返回 0。

地址偏移量

可选的 [_aoffimmi(u,v,w)] 后缀(按即时整数的地址偏移量)指示 ld2dm 的 纹理坐标将由一组提供的即时纹素空间整数常量值偏移。 文本值是一组 4 位 2 的补数,具有整数范围 [-8,7]。

偏移量将添加到纹理坐标(以纹素空间为单位)。

地址偏移量不会沿 Texture1D/2D 数组的数组轴应用。

对于 Texture1D,将忽略 _aoffimmi v,w 组件。

对于 Texture2D,将忽略 _aoffimmi w 组件。

由于 ld2dms 的纹理坐标是无符号整数,如果偏移量导致地址低于零,它将包装到一个大地址,并导致超出边界的访问,如 ld 在资源格式显示的所有组件中返回 0,默认值(0,0,0,1.0f/0x00000001),

示例编号

ld2dms 可用于任何资源。 ld2dms 的工作方式与 ld 相同,但 2D 多重采样资源除外,方法是使用其他 (基于 0) sampleIndex 作数来确定要从资源读取的示例。

指定超过资源中样本数的 sampleIndex 的结果未定义,但不能在设备上下文的地址空间之外返回数据。

返回类型控件

ld2dms 返回到目标寄存器的数据格式与示例指令所述的相同方式确定。 它基于绑定到 srcResource 参数 (t#) 的格式。

示例 指令一样, ld2dms 的返回值是 4 向量,对于格式中不存在的组件,具有特定于格式的默认值。 srcResource 上的重排确定如何重排从纹理加载返回的 4 分量结果,之后 dest 上的 .mask 确定 dest 中的哪些组件会得到更新。

ld2dms 将 32 位浮点值读取到 32 位寄存器中时,位将保持不变;也就是说,非规范值保持非正态值。 这与 示例 指令不同。

其他详细信息

由于没有与此指令关联的筛选,因此 LOD 偏差等概念不适用。 因此,没有 采样器 s# 参数。

限制

  • srcResource 必须是 t# 寄存器,而不是 TextureCube、Texture1D 或 Texture1DArray。 srcResource 不能是 ConstantBuffer,不能绑定到 t# 寄存器。
  • 不允许 在 srcResource 上进行相对寻址。
  • srcAddresssampleIndex 必须是 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)