1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE book PUBLIC
"-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id=
"imageAtomicCompSwap">
9 <holder>Khronos Group
</holder>
12 <refentrytitle>imageAtomicCompSwap
</refentrytitle>
13 <manvolnum>3G
</manvolnum>
16 <refname>imageAtomicCompSwap
</refname>
17 <refpurpose>atomically compares supplied data with that in memory and conditionally stores it to memory
</refpurpose>
19 <refsynopsisdiv><title>Declaration
</title>
22 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
23 <paramdef>gimage1D
<parameter>image
</parameter></paramdef>
24 <paramdef>int
<parameter>P
</parameter></paramdef>
25 <paramdef>uint
<parameter>compare
</parameter></paramdef>
26 <paramdef>uint
<parameter>data
</parameter></paramdef>
29 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
30 <paramdef>gimage2D
<parameter>image
</parameter></paramdef>
31 <paramdef>ivec2
<parameter>P
</parameter></paramdef>
32 <paramdef>uint
<parameter>compare
</parameter></paramdef>
33 <paramdef>uint
<parameter>data
</parameter></paramdef>
36 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
37 <paramdef>gimage3D
<parameter>image
</parameter></paramdef>
38 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
39 <paramdef>uint
<parameter>compare
</parameter></paramdef>
40 <paramdef>uint
<parameter>data
</parameter></paramdef>
43 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
44 <paramdef>gimage2DRect
<parameter>image
</parameter></paramdef>
45 <paramdef>ivec2
<parameter>P
</parameter></paramdef>
46 <paramdef>uint
<parameter>compare
</parameter></paramdef>
47 <paramdef>uint
<parameter>data
</parameter></paramdef>
50 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
51 <paramdef>gimageCube
<parameter>image
</parameter></paramdef>
52 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
53 <paramdef>uint
<parameter>compare
</parameter></paramdef>
54 <paramdef>uint
<parameter>data
</parameter></paramdef>
57 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
58 <paramdef>gbufferImage
<parameter>image
</parameter></paramdef>
59 <paramdef>int
<parameter>P
</parameter></paramdef>
60 <paramdef>uint
<parameter>compare
</parameter></paramdef>
61 <paramdef>uint
<parameter>data
</parameter></paramdef>
64 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
65 <paramdef>gimage1DArray
<parameter>image
</parameter></paramdef>
66 <paramdef>ivec2
<parameter>P
</parameter></paramdef>
67 <paramdef>uint
<parameter>compare
</parameter></paramdef>
68 <paramdef>uint
<parameter>data
</parameter></paramdef>
71 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
72 <paramdef>gimage2DArray
<parameter>image
</parameter></paramdef>
73 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
74 <paramdef>uint
<parameter>compare
</parameter></paramdef>
75 <paramdef>uint
<parameter>data
</parameter></paramdef>
78 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
79 <paramdef>gimageCubeArray
<parameter>image
</parameter></paramdef>
80 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
81 <paramdef>uint
<parameter>compare
</parameter></paramdef>
82 <paramdef>uint
<parameter>data
</parameter></paramdef>
85 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
86 <paramdef>gimage2DMS
<parameter>image
</parameter></paramdef>
87 <paramdef>ivec2
<parameter>P
</parameter></paramdef>
88 <paramdef>int
<parameter>sample
</parameter></paramdef>
89 <paramdef>uint
<parameter>compare
</parameter></paramdef>
90 <paramdef>uint
<parameter>data
</parameter></paramdef>
93 <funcdef>uint
<function>imageAtomicCompSwap
</function></funcdef>
94 <paramdef>gimage2DMSArray
<parameter>image
</parameter></paramdef>
95 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
96 <paramdef>int
<parameter>sample
</parameter></paramdef>
97 <paramdef>uint
<parameter>compare
</parameter></paramdef>
98 <paramdef>uint
<parameter>data
</parameter></paramdef>
101 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
102 <paramdef>gimage1D
<parameter>image
</parameter></paramdef>
103 <paramdef>int
<parameter>P
</parameter></paramdef>
104 <paramdef>int
<parameter>compare
</parameter></paramdef>
105 <paramdef>int
<parameter>data
</parameter></paramdef>
108 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
109 <paramdef>gimage2D
<parameter>image
</parameter></paramdef>
110 <paramdef>ivec2
<parameter>P
</parameter></paramdef>
111 <paramdef>int
<parameter>compare
</parameter></paramdef>
112 <paramdef>int
<parameter>data
</parameter></paramdef>
115 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
116 <paramdef>gimage3D
<parameter>image
</parameter></paramdef>
117 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
118 <paramdef>int
<parameter>compare
</parameter></paramdef>
119 <paramdef>int
<parameter>data
</parameter></paramdef>
122 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
123 <paramdef>gimage2DRect
<parameter>image
</parameter></paramdef>
124 <paramdef>ivec2
<parameter>P
</parameter></paramdef>
125 <paramdef>int
<parameter>compare
</parameter></paramdef>
126 <paramdef>int
<parameter>data
</parameter></paramdef>
129 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
130 <paramdef>gimageCube
<parameter>image
</parameter></paramdef>
131 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
132 <paramdef>int
<parameter>compare
</parameter></paramdef>
133 <paramdef>int
<parameter>data
</parameter></paramdef>
136 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
137 <paramdef>gbufferImage
<parameter>image
</parameter></paramdef>
138 <paramdef>int
<parameter>P
</parameter></paramdef>
139 <paramdef>int
<parameter>compare
</parameter></paramdef>
140 <paramdef>int
<parameter>data
</parameter></paramdef>
143 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
144 <paramdef>gimage1DArray
<parameter>image
</parameter></paramdef>
145 <paramdef>ivec2
<parameter>P
</parameter></paramdef>
146 <paramdef>int
<parameter>compare
</parameter></paramdef>
147 <paramdef>int
<parameter>data
</parameter></paramdef>
150 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
151 <paramdef>gimage2DArray
<parameter>image
</parameter></paramdef>
152 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
153 <paramdef>int
<parameter>compare
</parameter></paramdef>
154 <paramdef>int
<parameter>data
</parameter></paramdef>
157 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
158 <paramdef>gimageCubeArray
<parameter>image
</parameter></paramdef>
159 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
160 <paramdef>int
<parameter>compare
</parameter></paramdef>
161 <paramdef>int
<parameter>data
</parameter></paramdef>
164 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
165 <paramdef>gimage2DMS
<parameter>image
</parameter></paramdef>
166 <paramdef>ivec2
<parameter>P
</parameter></paramdef>
167 <paramdef>int
<parameter>sample
</parameter></paramdef>
168 <paramdef>int
<parameter>compare
</parameter></paramdef>
169 <paramdef>int
<parameter>data
</parameter></paramdef>
172 <funcdef>int
<function>imageAtomicCompSwap
</function></funcdef>
173 <paramdef>gimage2DMSArray
<parameter>image
</parameter></paramdef>
174 <paramdef>ivec3
<parameter>P
</parameter></paramdef>
175 <paramdef>int
<parameter>sample
</parameter></paramdef>
176 <paramdef>int
<parameter>compare
</parameter></paramdef>
177 <paramdef>int
<parameter>data
</parameter></paramdef>
181 <refsect1 id=
"parameters"><title>Parameters
</title>
184 <term><parameter>image
</parameter></term>
187 Specify the image unit into which to compare and conditionally store
<parameter>data
</parameter>.
192 <term><parameter>P
</parameter></term>
195 Specify the coordinate at which to compare and conditionally store the data.
200 <term><parameter>sample
</parameter></term>
203 When present, specifies the sample within the image to compare and conditionally store into.
208 <term><parameter>compare
</parameter></term>
211 Specifies the value to compare with the content of the image.
216 <term><parameter>data
</parameter></term>
219 Specifies the value to store in the image if
<parameter>compare
</parameter> is equal to the existing image content.
225 <refsect1 id=
"description"><title>Description
</title>
227 <function>imageAtomicCompSwap
</function> atomically compares the value of
<parameter>compare
</parameter>
228 with that of the texel at coordinate
<parameter>P
</parameter> and
<parameter>sample
</parameter> (for multisampled forms) in the
229 image bound to uint
<parameter>image
</parameter>. If the values are equal,
<parameter>data
</parameter> is
230 stored into the texel, otherwise it is discarded. It returns the original value of the texel regardless of
231 the result of the comparison operation.
234 <refsect1 id=
"versions"><title>Version Support
</title>
235 <informaltable frame=
"topbot">
240 <entry>imageAtomicCompSwap
</entry>#newin42#
246 <refsect1 id=
"seealso"><title>See Also
</title>
248 <citerefentry><refentrytitle>imageLoad
</refentrytitle></citerefentry>,
249 <citerefentry><refentrytitle>imageStore
</refentrytitle></citerefentry>,
250 <citerefentry><refentrytitle>imageAtomicAdd
</refentrytitle></citerefentry>,
251 <citerefentry><refentrytitle>imageAtomicMin
</refentrytitle></citerefentry>,
252 <citerefentry><refentrytitle>imageAtomicMax
</refentrytitle></citerefentry>,
253 <citerefentry><refentrytitle>imageAtomicXor
</refentrytitle></citerefentry>,
254 <citerefentry><refentrytitle>imageAtomicOr
</refentrytitle></citerefentry>,
255 <citerefentry><refentrytitle>imageAtomicAnd
</refentrytitle></citerefentry>,
256 <citerefentry><refentrytitle>imageAtomicCompSwap
</refentrytitle></citerefentry>
259 <refsect1 id=
"Copyright"><title>Copyright
</title>
261 Copyright
<trademark class=
"copyright"></trademark> 2011-
2012 Khronos Group.
262 This material may be distributed subject to the terms and conditions set forth in
263 the Open Publication License, v
1.0,
8 June
1999.
264 <ulink url=
"http://opencontent.org/openpub/">http://opencontent.org/openpub/
</ulink>.