InterlockedCompareExchange 函数 (HLSL 引用)
以原子方式将目标与比较值进行比较。 如果它们相同,则目标将被输入值覆盖。 原始值设置为目标的原始值。
语法
void InterlockedCompareExchange(
in R dest,
in T compare_value,
in T value,
out T original_value
);
parameters
-
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 及更高着色器模型 | 是 |
以下类型的着色器支持此函数:
顶点 | 外壳 | 域 | Geometry | 像素 | 计算 |
---|---|---|---|---|---|
x | x | x | x | x | x |
另请参阅