<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
<!-- saved from url=(0013)about:internet -->
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="stylesheet" type="text/css" href="opengl-man.css" /><title>memoryBarrier - OpenGL Shading Language (GLSL)</title><meta name="generator" content="DocBook XSL Stylesheets V1.69.1" /></head><body><div class="refentry" lang="en" xml:lang="en"><a id="memoryBarrier"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>memoryBarrier — controls the ordering of memory transactions issued by a single shader invocation</p></div><div class="refsynopsisdiv"><h2>Declaration</h2><div class="funcsynopsis"><p><code class="funcdef">uint <b class="fsfunc">memoryBarrier</b>(</code>void<code>)</code>;</p></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p>
            <code class="function">memoryBarrier</code> waits on the completion of all memory accesses resulting from the use of
            image variables or atomic counters and then returns with no other effect.  When this function returns, the
            results of any memory stores performed using coherent variables performed prior to the call will be visible
            to any future coherent memory access to the same addresses from other shader invocations.  In particular,
            the values written this way in one shader stage are guaranteed to be visible to coherent memory accesses
            performed by shader invocations in subsequent stages when those invocations were triggered by the
            execution of the original shader invocation (e.g., fragment shader invocations for a primitive resulting
            from a particular geometry shader invocation).
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="versions"></a><h2>Version Support</h2><div class="informaltable"><table border="1"><colgroup><col align="left" /><col align="center" /><col align="center" /><col align="center" /><col align="center" /><col align="center" /><col align="center" /><col align="center" /><col align="center" /><col align="center" /><col align="center" /></colgroup><thead><tr><th align="left"><span class="bold"><strong>Function</strong></span></th><th align="left"><span class="bold"><strong>Version 1.10</strong></span></th><th align="left"><span class="bold"><strong>Version 1.20</strong></span></th><th align="left"><span class="bold"><strong>Version 1.30</strong></span></th><th align="left"><span class="bold"><strong>Version 1.40</strong></span></th><th align="left"><span class="bold"><strong>Version 1.50</strong></span></th><th align="left"><span class="bold"><strong>Version 3.30</strong></span></th><th align="left"><span class="bold"><strong>Version 4.00</strong></span></th><th align="left"><span class="bold"><strong>Version 4.10</strong></span></th><th align="left"><span class="bold"><strong>Version 4.20</strong></span></th><th align="center"><span class="bold"><strong>Version 4.30</strong></span></th></tr><tr><th align="left">memoryBarrier</th><th align="center"><span class="emphasis"><em>-</em></span></th><th align="center"><span class="emphasis"><em>-</em></span></th><th align="center"><span class="emphasis"><em>-</em></span></th><th align="center"><span class="emphasis"><em>-</em></span></th><th align="center"><span class="emphasis"><em>-</em></span></th><th align="center"><span class="emphasis"><em>-</em></span></th><th align="center"><span class="emphasis"><em>Y</em></span></th><th align="center"><span class="emphasis"><em>Y</em></span></th><th align="center"><span class="emphasis"><em>Y</em></span></th><th align="center"><span class="emphasis"><em>Y</em></span></th></tr></thead></table></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p>
            <a href="imageLoad.xml"><span class="citerefentry"><span class="refentrytitle">imageLoad</span></span></a>,
            <a href="imageStore.xml"><span class="citerefentry"><span class="refentrytitle">imageStore</span></span></a>,
            <a href="imageAtomicAdd.xml"><span class="citerefentry"><span class="refentrytitle">imageAtomicAdd</span></span></a>,
            <a href="imageAtomicMin.xml"><span class="citerefentry"><span class="refentrytitle">imageAtomicMin</span></span></a>,
            <a href="imageAtomicMax.xml"><span class="citerefentry"><span class="refentrytitle">imageAtomicMax</span></span></a>,
            <a href="imageAtomicXor.xml"><span class="citerefentry"><span class="refentrytitle">imageAtomicXor</span></span></a>,
            <a href="imageAtomicOr.xml"><span class="citerefentry"><span class="refentrytitle">imageAtomicOr</span></span></a>,
            <a href="imageAtomicAnd.xml"><span class="citerefentry"><span class="refentrytitle">imageAtomicAnd</span></span></a>,
            <a href="imageAtomicExchange.xml"><span class="citerefentry"><span class="refentrytitle">imageAtomicExchange</span></span></a>,
            <a href="imageAtomicCompSwap.xml"><span class="citerefentry"><span class="refentrytitle">imageAtomicCompSwap</span></span></a>,
            <a href="memoryBarrier.xml"><span class="citerefentry"><span class="refentrytitle">memoryBarrier</span></span></a>
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="Copyright"></a><h2>Copyright</h2><p>
            Copyright <span class="trademark"></span>© 2011 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.
            <a href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
        </p></div></div></body></html>
