imm_atomic_xor (sm5 - asm)

即时原子位 XOR 到内存。 返回 XOR 之前的内存中的值。

imm_atomic_xor dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component]
条目 DESCRIPTION
dst0
[in]包含 XOR 之前的 dst1 的值。
dst1
[in]无序访问视图 (UAV) (u#)。 在计算着色器中,也可以是线程组共享内存(g#)。
dstAddress
[in]内存地址。
src0
dst1 的 XOR 值。

注解

此指令执行单个组件 32 位作数 src0 的按位 XOR,每个组件地址 dstAddress 为 32 位。

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

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

在 XOR 返回到 dst0 之前,dst1 内存中的值。

整个作以原子方式执行。

从地址中获取的组件数取决于 在 dst1 中声明的资源的维数。

如果着色器调用处于非活动状态,例如,如果像素在执行之前已被丢弃,或者像素/样本调用仅用作派生体真实像素/样本的帮助程序,则此指令根本不会更改 dst1 内存,并且返回的值未定义。

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

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

此说明适用于以下着色器阶段:

顶点 船体 域名 几何学 像素 计算
X X

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

顶点 船体 域名 几何学 像素 计算
X X X X X X

最小着色器模型

以下着色器模型中支持此说明:

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

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