imm_atomic_consume (sm5 - asm)

使用“计数”或“追加”无序访问视图 (UAV) 以原子方式递减存储的隐藏 32 位计数器,返回新值。

imm_atomic_consume dest[.single_component_mask], dstUAV
说明
dest
[in]包含返回的原始计数器值。
dstUAV
[in]具有 Count 或 Append 标志的结构化缓冲区 UAV。

备注

有关返回的计数值的有效性的讨论,请参阅 imm_atomic_alloc ,具体取决于 UAV 是 Count 还是 Append。 这同样适用于 imm_atomic_consume

imm_atomic_consume 对计数器值执行原子递减,并将新值返回到 dest

没有计数的固定,所以它包在下溢。

同一着色器不能尝试 在同一 UAV 上imm_atomic_alloc和 imm_atomic_consume 。 此外,GPU 不能允许多个着色器调用在同一 UAV 上混合 imm_atomic_allocimm_atomic_consume

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

顶点 外壳 Geometry 像素 计算
X X

由于 UAV 可用于 Direct3D 11.1 的所有着色器阶段,因此此指令适用于 Direct3D 11.1 运行时的所有着色器阶段,该阶段从Windows 8开始可用。

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

最小着色器模型

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

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

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