InterlockedCompareExchange 函式 (HLSL 參考)
以不可部分完成的方式比較目的地與比較值。 如果兩者相同,則會以輸入值覆寫目的地。 原始值會設定為目的地的原始值。
語法
void InterlockedCompareExchange(
in R dest,
in T compare_value,
in T value,
out T original_value
);
參數
-
dest [in]
-
類型: R
目的地位址。
-
compare_value [in]
-
類型: T
比較值。
-
value [in]
-
類型: T
輸入值。
-
original_value [out]
-
類型: T
原始的值。
傳回值
此函式不會傳回值。
備註
以不可部分完成的方式比較dest所參考的值與compare_value,如果值相符,則會將值儲存在dest所參考的位置,並在original_value中傳回dest的原始值。 此作業只能在 int 或 uint 型別資源和共用記憶體變數上執行。 此函式有兩個可能的用法。 第一個是當 R 是共用記憶體變數類型時。 在此情況下,函式會在 dest所參考的共用記憶體暫存器上執行作業。 第二個案例是當 R 是資源變數類型時。 在此案例中,函式會在 dest所參考的資源位置上執行作業。 只有在 R 可讀取且可寫入時,才能使用此作業。
內嵌作業不表示任何記憶體柵欄/屏障。
最小著色器模型
下列著色器模型中支援此函式。
著色器模型 | 支援 |
---|---|
著色器模型 5 和更高的著色器模型 | 是 |
下列著色器類型支援此函式:
頂點 | 船體 | 網域 | 幾何形狀 | 像素 | 計算 |
---|---|---|---|---|---|
x | x | x | x | x | x |
另請參閱