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) | 否 |