X-Git-Url: http://git.hcoop.net/clinton/guile-figl.git/blobdiff_plain/b002944dd992dc5a273e0067504beb48e1ae3d1c..a6a00658f26c164551287799b194cc2f07eb78be:/upstream-doc/manglsl/xhtml/atomicExchange.xml diff --git a/upstream-doc/manglsl/xhtml/atomicExchange.xml b/upstream-doc/manglsl/xhtml/atomicExchange.xml new file mode 100644 index 0000000..f913703 --- /dev/null +++ b/upstream-doc/manglsl/xhtml/atomicExchange.xml @@ -0,0 +1,33 @@ + + + +
atomicExchange â perform an atomic exchange operation to a variable
int atomicExchange(
inout int mem, int data)
;
uint atomicExchange( | inout uint  | mem, |
 | uint  | data) ; |
mem
+ The variable to use as the target of the operation. +
data
+ The data to be exchanged with mem
.
+
+ atomicExchange
performs an atomic exhange of data
with the contents of
+ mem
. The content of data
is written into mem
and the original contents of mem
+ are returned. The contents of the memory being updated by the atomic operation are
+ guaranteed not to be modified by any other assignment or atomic memory function in any shader
+ invocation between the time the original value is read and the time the new value is written.
+
+ Atomic memory functions are supported only for a limited set of variables. A shader will fail to compile + if the value passed to the mem argument of an atomic memory function does not correspond to a buffer or + shared variable. It is acceptable to pass an element of an array or a single component of a vector to the + mem argument of an atomic memory function, as long as the underlying array or vector is a buffer or + shared variable. +
Function | Version 1.10 | Version 1.20 | Version 1.30 | Version 1.40 | Version 1.50 | Version 3.30 | Version 4.00 | Version 4.10 | Version 4.20 | Version 4.30 |
---|---|---|---|---|---|---|---|---|---|---|
atomicExchange | - | - | - | - | - | - | - | - | - | Y |
+ atomicAdd, + atomicAnd, + atomicOr, + atomicXor, + atomicMin, + atomicMax, + atomicCompSwap +
+ Copyright © 2011-2012 Khronos Group. + This material may be distributed subject to the terms and conditions set forth in + the Open Publication License, v 1.0, 8 June 1999. + http://opencontent.org/openpub/. +