gather4_po (sm5 - asm)

gather4 的变体,但不是支持即时偏移量 [-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 个纹素的一些合成必须在角处发生,因此对于合成纹素返回未更改的位的概念不适用,并且可以刷新反音符。

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

此指令适用于以下着色器阶段:

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

最小着色器模型

以下着色器模型中支持此指令:

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

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