imm _ atomic 和 (_ sm5 - asm)

立即对内存进行原子位 AND。 返回 AND 之前内存中的值。

imm _ atomic _ and dst0 [ .single component mask , _ _ ] dst1, dstAddress [ .swizzle ] , src0 [ .select _ component]
项目 说明
dst0
[中的 ] 包含 AND 之前的 dst1 中的值。
dst1
[在 ] UAV 的无序访问 (视图中) (u #) 。 在计算着色器中,这还可以是线程组共享内存 (g #) 。
dstAddress
[在 ] 目标内存中。
src0
DST 为 AND 的值

备注

此指令针对每个组件地址 dstAddress 以 32 位的 dst1 执行操作数 src0 的单个组件 32 位 AND。

如果 dst1 是 u # ,则它可能已声明为原始、类型化或结构化。 如果已键入,则必须声明为 UINT/SINT,绑定资源格式为 R32 _ _ UINT/SINT。

如果 dst1 为 g # ,则必须声明为原始或结构化。

在 AND 返回到 dst0 之前 dst1 内存中的值

整个操作以原子方式执行。

从地址获得的组件数由 dst1 声明的资源的维 数决定

如果着色器调用处于非活动状态(例如,如果像素在其执行之前已被丢弃,或者仅存在像素/样本调用以充当派生对象的实际像素/样本的帮助器,则此指令完全不会更改 dst1 内存,并且返回的值未定义。

u 上的边界外寻址会导致不向内存写入任何内容,除非 u 是结构化的,并且地址) 的结构 (第二个分量中的字节偏移导致边界外访问,则 # UAV 的全部内容将变为未定义。 #

u 或 g 上的边界外寻址会导致在 dst0 中将未定义的结果 # # 返回到着色

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

顶点 船体 Geometry 像素 计算
X X

由于 UAV 在 Direct3D 11.1 的所有着色器阶段都可用,因此此说明适用于 Direct3D 11.1 运行时的所有着色器阶段,该阶段从 Windows 8 开始提供。

顶点 船体 Geometry 像素 计算
X X X X X X

最小着色器模型

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

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

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