gather4_po (sm5 - asm)

集合 4 的变体,但不支持即时偏移 [-8..7],偏移量是指令的参数,而且具有更大的 [-32..31] 范围。

gather4_po dest[.mask], srcAddress[.swizzle], srcOffset[.swizzle], srcResource[.swizzle], srcSampler[.select_component]
说明
dest
[in]操作结果的地址。
srcAddress
[in]一组纹理坐标。
srcOffset
[in]偏移量。
srcResource
[in]纹理寄存器。
srcSampler
[in]采样器寄存器。

注解

4 向量偏移参数的前两个组件提供 32 位整数偏移量。 忽略此参数的其他组件。

每个偏移值的 6 个最小有效位被视为有符号值,从而产生 [-32..31] 范围。

此指令仅适用于 2D 纹理,与 gather4 不同,后者也适用于 TextureCubes。

采样器中唯一遵循的模式是寻址模式。 仅使用资源视图中最详细的 mip。

如果地址位于纹素中心,这并不意味着其他纹素可以零除。

srcSampler 参数包括 [.select_component],允许检索纹理的任何单个组件,包括返回缺失组件的默认值。

对于具有 float32 组件的格式,如果提取的值已规范化、非规范化、+-0 或 +-INF,则会将其返回到着色器未更改。 NaN 作为 NaN 返回,但 NaN 的确切位表示形式可能会更改。 对于 TextureCubes,缺少的第 4 个纹素的一些合成必须在角落发生,因此合成纹素返回位的概念不适用,并且可刷新非序值。

使用此指令将 收集 范围的偏移量范围扩展到更大且可编程。 名称上的“po”后缀表示“可编程偏移量”。

此说明适用于以下着色器阶段:

顶点 外壳 Geometry 像素 计算
X X X X X X

最小着色器模型

以下着色器模型中支持此说明:

着色器模型 支持
着色器模型 5
着色器模型 4.1
着色器模型 4
着色器模型 3 (DirectX HLSL)
着色器模型 2 (DirectX HLSL)
着色器模型 1 (DirectX HLSL)

着色器模型 5 程序集 (DirectX HLSL)