| <?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>clEnqueueFillBuffer</keyword> | 
 |         </keywordset> | 
 |     </refentryinfo> | 
 |  | 
 |     <refmeta> | 
 |         <refentrytitle> | 
 |             clEnqueueFillBuffer | 
 |         </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="clEnqueueFillBuffer"> | 
 |         <refname> | 
 |             clEnqueueFillBuffer | 
 |         </refname> | 
 |  | 
 |         <refpurpose> | 
 |             Enqueues a command to fill a buffer object with a pattern of a given pattern size. | 
 |         </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>clEnqueueFillBuffer</function> | 
 |                 </funcdef> | 
 |                     <paramdef> | 
 |                         <link xlink:href="abstractDataTypes.html">cl_command_queue</link> | 
 |                         <parameter>command_queue</parameter> | 
 |                     </paramdef> | 
 |                     <paramdef> | 
 |                         <link xlink:href="abstractDataTypes.html">cl_mem</link> | 
 |                         <parameter>buffer</parameter> | 
 |                     </paramdef> | 
 |                     <paramdef>const | 
 |                         <link xlink:href="scalarDataTypes.html">void</link> | 
 |                         <parameter>*pattern</parameter> | 
 |                     </paramdef> | 
 |                     <paramdef> | 
 |                         <link xlink:href="scalarDataTypes.html">size_t</link> | 
 |                         <parameter>pattern_size</parameter> | 
 |                     </paramdef> | 
 |                     <paramdef> | 
 |                         <link xlink:href="scalarDataTypes.html">size_t</link> | 
 |                         <parameter>offset</parameter> | 
 |                     </paramdef> | 
 |                     <paramdef> | 
 |                         <link xlink:href="scalarDataTypes.html">size_t</link> | 
 |                         <parameter>size</parameter> | 
 |                     </paramdef> | 
 |                     <paramdef> | 
 |                         <link xlink:href="scalarDataTypes.html">cl_uint</link> | 
 |                         <parameter>num_events_in_wait_list</parameter> | 
 |                     </paramdef> | 
 |                     <paramdef>const | 
 |                         <link xlink:href="abstractDataTypes.html">cl_event</link> | 
 |                         <parameter>*event_wait_list</parameter> | 
 |                     </paramdef> | 
 |                     <paramdef> | 
 |                         <link xlink:href="abstractDataTypes.html">cl_event</link> | 
 |                         <parameter>*event</parameter> | 
 |                     </paramdef> | 
 |  | 
 |             </funcprototype> | 
 |         </funcsynopsis> | 
 |     </refsynopsisdiv> | 
 |  | 
 | <!-- ================================ PARAMETERS --> | 
 |  | 
 |     <refsect1 id="parameters"> | 
 |         <title>Parameters</title> | 
 |         <variablelist> | 
 |             <varlistentry> | 
 |                 <term> <varname> command_queue </varname> </term> | 
 |                 <listitem> | 
 |                     <para> | 
 |                       Refers to the host command-queue in which the fill command will be queued. | 
 |                       The OpenCL context associated with <varname>command_queue</varname> | 
 |                       and <varname>buffer</varname> must be the same. | 
 |                     </para> | 
 |                </listitem> | 
 |             </varlistentry> | 
 |  | 
 |             <varlistentry> | 
 |                 <term> <varname> buffer </varname> </term> | 
 |                 <listitem> | 
 |                     <para> | 
 |                        A valid buffer object. | 
 |                     </para> | 
 |                </listitem> | 
 |             </varlistentry> | 
 |  | 
 |             <varlistentry> | 
 |                 <term> <varname> pattern </varname> </term> | 
 |                 <listitem> | 
 |                     <para> | 
 |                       A pointer to the data pattern of size <varname>pattern_size</varname> | 
 |                       in bytes. <varname>pattern</varname> will be used to fill a region | 
 |                       in <varname>buffer</varname> starting at <varname>offset</varname> | 
 |                       and is <varname>size</varname> bytes in size. The data pattern | 
 |                       must be a scalar or vector integer or floating-point data type. For | 
 |                       example, if <varname>buffer</varname> is to be filled with a pattern of | 
 |                       <type>float4</type> values, then <varname>pattern</varname> will be a pointer | 
 |                       to a <type>cl_float4</type> value and <varname>pattern_size</varname> | 
 |                       will be <code>sizeof(cl_float4)</code>.  The maximum value of | 
 |                       <varname>pattern_size</varname> is the size of the largest integer | 
 |                       or floating-point vector data type supported by the OpenCL device. | 
 |                       The memory associated with <varname>pattern</varname> can be reused or | 
 |                       freed after the function returns. | 
 |                     </para> | 
 |                 </listitem> | 
 |             </varlistentry> | 
 |  | 
 |             <varlistentry> | 
 |                 <term> <varname> offset </varname> </term> | 
 |                 <listitem> | 
 |                     <para> | 
 |                       The location in bytes of the region being filled in <varname>buffer</varname> | 
 |                       and must be a multiple of <varname>pattern_size</varname>. | 
 |                     </para> | 
 |                </listitem> | 
 |             </varlistentry> | 
 |  | 
 |             <varlistentry> | 
 |                 <term> <varname> size </varname> </term> | 
 |                 <listitem> | 
 |                     <para> | 
 |                       The size in bytes of region being filled in <varname>buffer</varname> | 
 |                       and must be a multiple of <varname>pattern_size</varname>. | 
 |                     </para> | 
 |                </listitem> | 
 |             </varlistentry> | 
 |  | 
 |             <varlistentry> | 
 |                 <term> | 
 |                     <varname> | 
 |                         event_wait_list | 
 |                     ,</varname> | 
 |                     <varname> | 
 |                         num_events_in_wait_list | 
 |                     </varname> | 
 |                 </term> | 
 |  | 
 |                 <listitem> | 
 |                     <para> | 
 |                       Specify events that need to complete before this particular | 
 |                       command can be executed. If <varname>event_wait_list</varname> | 
 |                       is NULL, then this particular command does not wait on any | 
 |                       event to complete. If <varname>event_wait_list</varname> is | 
 |                       NULL, <varname>num_events_in_wait_list</varname> must be 0. If | 
 |                       <varname>event_wait_list</varname> is not NULL, the list of events | 
 |                       pointed to by <varname>event_wait_list</varname> must be valid | 
 |                       and <varname>num_events_in_wait_list</varname> must be greater | 
 |                       than 0. The events specified in <varname>event_wait_list</varname> | 
 |                       act as synchronization points. The context associated with events in | 
 |                       <varname>event_wait_list</varname> and <varname>command_queue</varname> must | 
 |                       be the same. The memory associated with <varname>event_wait_list</varname> | 
 |                       can be reused or freed after the function returns. | 
 |                     </para> | 
 |                </listitem> | 
 |             </varlistentry> | 
 |  | 
 |             <varlistentry> | 
 |                 <term> <varname> event </varname> </term> | 
 |                 <listitem> | 
 |                     <para> | 
 |                       Returns an event object that identifies this particular write | 
 |                       command and can be used to query or queue a wait for this particular | 
 |                       command to complete. <varname>event</varname> can be NULL in | 
 |                       which case it will not be possible for the application to query the | 
 |                       status of this command or queue a wait for this command to complete. | 
 |                       <citerefentry><refentrytitle>clEnqueueBarrierWithWaitList</refentrytitle></citerefentry> | 
 |                       can be used instead.  If the <varname>event_wait_list</varname> | 
 |                       and the <varname>event</varname> arguments are not NULL, the | 
 |                       <varname>event</varname> argument should not refer to an element of the | 
 |                       <varname>event_wait_list</varname> array. | 
 |                     </para> | 
 |                 </listitem> | 
 |             </varlistentry> | 
 |         </variablelist> | 
 |     </refsect1> | 
 |  | 
 | <!-- ================================ NOTES  --> | 
 |  | 
 |      <refsect1 id="notes"><title>Notes</title> | 
 |         <para> | 
 |           Enqueues a command to fill a buffer object with a pattern of a given pattern size. The | 
 |           usage information which indicates whether the memory object can be read or written by | 
 |           a kernel and/or the host and is given by the <type>cl_mem_flags</type> argument value | 
 |           specified when <varname>buffer</varname> is created is ignored by <function>clEnqueueFillBuffer</function>. | 
 |         </para> | 
 |     </refsect1> | 
 |  | 
 | <!-- ================================ ERRORS  --> | 
 |  | 
 |     <refsect1 id="errors"><title>Errors</title> | 
 |         <para> | 
 |           <function>clEnqueueFillBuffer</function> returns <errorname>CL_SUCCESS</errorname> if | 
 |           the function is 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_INVALID_CONTEXT</errorname> if the context associated with | 
 |               <varname>command_queue</varname> and <varname>buffer</varname> are not the same | 
 |               or if the context associated with <varname>command_queue</varname> and events in | 
 |               <varname>event_wait_list</varname> are not the same. | 
 |             </listitem> | 
 |  | 
 |             <listitem> | 
 |               <errorname>CL_INVALID_MEM_OBJECT</errorname> if <varname>buffer</varname> is not | 
 |               a valid buffer object. | 
 |             </listitem> | 
 |  | 
 |             <listitem> | 
 |               <errorname>CL_INVALID_VALUE</errorname> if <varname>offset</varname> or | 
 |               <varname>offset</varname> + <varname>size</varname> require accessing elements | 
 |               outside the <varname>buffer</varname> buffer object respectively. | 
 |             </listitem> | 
 |  | 
 |             <listitem> | 
 |               <errorname>CL_INVALID_VALUE</errorname> if <varname>pattern</varname> is NULL | 
 |               or if <varname>pattern_size</varname> is 0 or if <varname>pattern_size</varname> | 
 |               is not one of {1, 2, 4, 8, 16, 32, 64, 128}. | 
 |             </listitem> | 
 |  | 
 |             <listitem> | 
 |               <errorname>CL_INVALID_VALUE</errorname> if <varname>offset</varname> and | 
 |               <varname>size</varname> are not a multiple of <varname>pattern_size</varname>. | 
 |             </listitem> | 
 |  | 
 |             <listitem> | 
 |               <errorname>CL_INVALID_EVENT_WAIT_LIST</errorname> | 
 |               if <varname>event_wait_list</varname> is NULL and | 
 |               <varname>num_events_in_wait_list</varname> > 0, | 
 |               or <varname>event_wait_list</varname> is not NULL and | 
 |               <varname>num_events_in_wait_list</varname> is 0, or if event objects in | 
 |               <varname>event_wait_list</varname> are not valid events. | 
 |             </listitem>  | 
 |  | 
 |             <listitem> | 
 |               <errorname>CL_MISALIGNED_SUB_BUFFER_OFFSET</errorname> if <varname>buffer</varname> | 
 |               is a sub-buffer object and offset specified when the sub-buffer object is created | 
 |               is not aligned to <constant>CL_DEVICE_MEM_BASE_ADDR_ALIGN</constant> value for | 
 |               device associated with <varname>queue</varname>. | 
 |             </listitem> | 
 |  | 
 |             <listitem> | 
 |               <errorname>CL_MEM_OBJECT_ALLOCATION_FAILURE</errorname> if there is a failure to | 
 |               allocate memory for data store associated with <varname>buffer</varname>. | 
 |             </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="clEnqueueFillBuffer">OpenCL Specification</olink> | 
 |         </para> | 
 |     </refsect1> | 
 |  | 
 | <!-- ================================ ALSO SEE  --> | 
 |  | 
 |     <refsect1 id="seealso"><title>Also see</title> | 
 |         <para> | 
 |             <citerefentry><refentrytitle>clEnqueueBarrierWithWaitList</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> | 
 |  | 
 | <!-- 6-Jun-2013 --> | 
 | </refentry> | 
 |  |