atomic_and (sm5 - asm)
原子按位 AND 到内存。
atomic_and dest、dstAddress[.swizzle]、src0[.select_component] |
---|
项 | 说明 |
---|---|
dest |
[in]使用 src0 与 AND 的组件。 此值必须是 UAV) (u#) (无序访问视图。 在计算着色器中,它也可以是线程组共享内存 (g#) 。 |
dstAddress |
[in]内存地址。 |
src0 |
[in]与 dest 一起指向 AND 的组件。 |
备注
此操作在 32 位每个组件地址 dstAddress 处以原子方式执行操作数 src0 的单个分量 32 位位 AND。
从地址获取的组件数由 dest u# 或 g# 的维数决定。
如果 dest 是 u#,则可以将其声明为原始、类型化或结构化。 如果已键入,则必须将其声明为 UINT/SINT,绑定资源格式为R32_UINT/_SINT。
如果 dest 为 g#,则必须将其声明为原始或结构化。
着色器不会返回任何内容。
如果着色器调用处于非活动状态,例如,如果像素在执行之前已被丢弃,或者像素/样本调用仅作为派生物的实际像素/样本的帮助程序,则此指令根本不更改 dest 内存, (无提示) 。
u# 上的超出边界寻址会导致不会将任何内容写入内存,除非 u# 是结构化的,并且字节偏移到结构 (地址) 的第二个组件导致越界访问,则 UAV 的整个内容将变得未定义。
g# 上的边界寻址 (该特定 g# 的边界,而不是所有共享内存的边界,) 会导致所有共享内存的整个内容变得未定义。
此指令适用于以下着色器阶段:
顶点 | 外壳 | 域 | 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) | 否 |