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_alloc 和 imm_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) | 否 |