InterlockedAdd function
Adds the value, atomically.
Syntax
void InterlockedAdd(
in UINT dest,
in UINT value,
out UINT original_value
);
Parameters
-
dest [in]
-
Type: UINT
The destination address.
-
value [in]
-
Type: UINT
The input value.
-
original_value [out]
-
Type: UINT
The original value.
Return value
This function does not return a value.
Remarks
This operation can be performed only on int or uint typed resources and shared memory variables. There are three possible uses for this function. The first is when R is a shared memory variable type. In this case, the function performs an atomic add of value to the shared memory register referenced by dest. The second scenario is when R is a resource variable type. In this scenario, the function performs an atomic add of the value to the resource location referenced by dest. Finally, the third scenario is when R is a local variable type. In this scenario, the function reduces to a sum of the value of dest and value, stored in dest. The overloaded function has an additional output variable which will be set to the original value of dest. This overloaded operation is only available when R is readable and writable.
This function is supported in the following types of shaders:
VS | HS | DS | GS | PS | CS |
---|---|---|---|---|---|
x | x | x | x | x | x |