共用方式為


imm_atomic_xor (sm5 - asm)

立即不可部分完成的位 XOR 至記憶體。 傳回 XOR 之前的記憶體值。

imm_atomic_xor dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component]
項目 描述
dst0
[in]包含 XOR 之前的 dst1 值。
dst1
[in]UAV) (u#) (未排序的存取檢視。 在計算著色器中,這也可以是執行緒群組共用記憶體 (g#) 。
dstAddress
[in]記憶體位址。
src0
dst1的 XOR 值。

備註

此指令會針對每個元件位址 dstAddress 執行單一元件 32 位 XOR 的運算元src0,且每個元件位址為dstAddress,且 dst1 為 dst1

如果 dst1 是 u#,它可能已宣告為原始、具型別或結構化。 如果輸入,則必須將它宣告為 UINT/SINT,且系結的資源格式為 R32_UINT/_SINT。

如果 dst1 是 g#,它必須宣告為原始或結構化。

在 XOR 傳回至dst0之前,dst1記憶體中的值。

整個作業會以不可部分完成的方式執行。

從位址擷取的元件數目取決於 在 dst1宣告的資源維度。

如果著色器叫用為非作用中,如果稍早在執行中捨棄圖元,或圖元/樣本調用只存在做為衍生專案實際圖元/樣本的協助程式,則此指令完全不會改變 dst1 記憶體,而且未定義傳回的值。

u# 上的界限外定址會導致不寫入記憶體,除非 u# 已結構化,而位元組位移至位址 (第二個元件的結構,) 造成超出界限的存取,否則 UAV 的整個內容會變成未定義。

u# 或 g# 上的界限外,會導致未定義的結果傳回 dst0中的著色器。

本指示適用于下列著色器階段:

頂點 船體 網域 幾何形狀 像素 計算
X X

由於 Direct3D 11.1 的所有著色器階段都提供 UAV,因此本指示適用于 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)