<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">

<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>clFlush</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>
            clFlush
        </refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2013</year>
                <holder>The Khronos Group Inc.
 Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.</holder>
            </copyright>
        </refmiscinfo>
        <manvolnum>3</manvolnum>
    </refmeta>

<!-- ================================ SYNOPSIS -->

    <refnamediv id="clFlush">
        <refname>
            clFlush
        </refname>

        <refpurpose>
            Issues all previously queued OpenCL commands in a command-queue to the device associated with the command-queue.
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">cl_int</link>
                     <function>clFlush</function>
                </funcdef>
                <paramdef>
                    <link xlink:href="abstractDataTypes.html">cl_command_queue</link>
                    <parameter>command_queue</parameter>
                </paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>

<!-- ================================ PARAMETERS -->


<!-- ================================ NOTES  -->

    <refsect1 id="notes"><title>Notes</title>

        <para>
          Issues all previously queued OpenCL commands in <varname>command_queue</varname>
          to the device associated with <varname>command_queue</varname>.
        </para>

        <para>
          <function>clFlush</function> only guarantees that all queued commands to
          <varname>command_queue</varname> will eventually be submitted to the appropriate device
          There is no guarantee that they will be complete after <function>clFlush</function>
          returns.
        </para>

        <para>
          Any blocking commands queued in a command-queue and
          <citerefentry><refentrytitle>clReleaseCommandQueue</refentrytitle></citerefentry>
          perform an implicit flush of the command-queue.  These blocking commands are
          <citerefentry><refentrytitle>clEnqueueReadBuffer</refentrytitle></citerefentry>,
          <citerefentry><refentrytitle>clEnqueueReadBufferRect</refentrytitle></citerefentry>,
          <citerefentry><refentrytitle>clEnqueueReadImage</refentrytitle></citerefentry>,
          with <varname>blocking_read</varname> set to <constant>CL_TRUE</constant>;
          <citerefentry><refentrytitle>clEnqueueWriteBuffer</refentrytitle></citerefentry>,
          <citerefentry><refentrytitle>clEnqueueWriteBufferRect</refentrytitle></citerefentry>,
          <citerefentry><refentrytitle>clEnqueueWriteImage</refentrytitle></citerefentry>
          with <varname>blocking_write</varname> set to <constant>CL_TRUE</constant>;
          <citerefentry><refentrytitle>clEnqueueMapBuffer</refentrytitle></citerefentry>,
          <citerefentry><refentrytitle>clEnqueueMapImage</refentrytitle></citerefentry>
          with <varname>blocking_map</varname> set to <constant>CL_TRUE</constant>; 
            <citerefentry><refentrytitle>clEnqueueSVMMemcpy</refentrytitle></citerefentry> 
            with <varname>blocking_copy</varname> set to <constant>CL_TRUE</constant>; 
            <citerefentry><refentrytitle>clEnqueueSVMMap</refentrytitle></citerefentry> 
            with <varname>blocking_map</varname> set to <constant>CL_TRUE</constant>
            or
          <citerefentry><refentrytitle>clWaitForEvents</refentrytitle></citerefentry>.
        </para>

        <para>
          To use event objects that refer to commands enqueued in a command-queue as event objects
          to wait on by commands enqueued in a different command-queue, the application must call
          a <function>clFlush</function> or any blocking commands that perform an implicit flush
          of the command-queue where the commands that refer to these event objects are enqueued.
        </para>
    </refsect1>

<!-- ================================ ERRORS  -->

    <refsect1 id="errors"><title>Errors</title>
        <para>
            Returns <errorname>CL_SUCCESS</errorname> if the function call was executed successfully.
            Otherwise, it returns one of the following errors:
        </para>

        <itemizedlist mark="disc">
            <listitem>
              <errorname>CL_INVALID_COMMAND_QUEUE</errorname> if <varname>command_queue</varname>
              is not a valid host command-queue.
            </listitem>

            <listitem>
                <errorname>CL_OUT_OF_RESOURCES</errorname> if there is a failure to allocate
                resources required by the OpenCL implementation on the device.
            </listitem>

            <listitem>
                <errorname>CL_OUT_OF_HOST_MEMORY</errorname> if there is a failure to allocate
                resources required by the OpenCL implementation on the host.
            </listitem>

        </itemizedlist>
    </refsect1>

<!-- ================================ EXAMPLE  -->
<!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE -->
<!--
    <refsect2 id="example1">
        <title>
            Example
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
                            Example goes here - it will be set in "code" type with white space preserved.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>
-->

<!-- ================================ SPECIFICATION  -->
<!-- Set the "uri" attribute in the <olink /> element to the "named destination" for the PDF page
-->
    <refsect1 id="specification"><title>Specification</title>
        <para>
            <imageobject>
                <imagedata fileref="pdficon_small1.gif" format="gif" />
            </imageobject>

            <olink uri="clFlush">OpenCL Specification</olink>
        </para>
    </refsect1>

<!-- ================================ ALSO SEE  -->

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>clFinish</refentrytitle></citerefentry>
        </para>
    </refsect1>

<!-- ================================ COPYRIGHT  -->
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
        <imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
        <para />
    </refsect3>

<!-- 11-Dec-2013, rev. 19 -->
</refentry>

