<?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>         
                clEnqueueReadImage
            </keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>       
            clEnqueueReadImage
        </refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2009</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>2</manvolnum>
  
    </refmeta>


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

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

        <refpurpose>          
            Enqueues a command to read from a 2D or 3D image object to host memory. 
        </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>clEnqueueReadImage</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>image</parameter></paramdef>
					<paramdef><link xlink:href="enums.html#cl_bool">cl_bool</link><parameter>blocking_read</parameter></paramdef>
					<paramdef>const <link xlink:href="scalarDataTypes.html">size_t</link><parameter>origin</parameter>[3]</paramdef>
					<paramdef>const <link xlink:href="scalarDataTypes.html">size_t</link><parameter>region</parameter>[3]</paramdef>
					<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>row_pitch</parameter></paramdef>
					<paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>slice_pitch</parameter></paramdef>
					<paramdef><link xlink:href="scalarDataTypes.html">void</link><parameter>*ptr</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 command-queue in which the read command will be
						queued. <varname>command_queue</varname> and image must be created with the same OpenCL contex 
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
						image
                    </varname>
                </term>

                <listitem>
                    <para>
						Refers to a valid 2D or 3D image object.
                    </para>
               </listitem>
            </varlistentry>
			
            <varlistentry>
                <term>
                    <varname>
						blocking_read
					</varname>
				</term>
				
				<listitem>
					<para>
						Indicates if the read operations are <varname>blocking</varname> or <varname>non-blocking</varname>.
					</para>
					
					<para>
						If <varname>blocking_read</varname> is <constant>CL_TRUE</constant> i.e. the read command is blocking, <function>clEnqueueReadImage</function> does not return until the
						buffer data has been read and copied into memory pointed to by <varname>ptr</varname>.
					</para>
					
					<para>
						If <varname>blocking_read</varname> is <constant>CL_FALSE</constant> i.e. map operation is non-blocking, <function>clEnqueueReadImage</function> queues a non-blocking read command and returns. The contents of the buffer that <varname>ptr</varname> points to cannot be used until the read command has completed. The <varname>event</varname> argument returns an event object which can be used to query the execution status of the read command. When the read command has completed, the contents of the buffer that <varname>ptr</varname> points to can be used by the application.						
					</para>

				</listitem>
			</varlistentry>
			
            <varlistentry>
                <term>
                    <varname>
						origin
                    </varname>
                </term>

                <listitem>
                    <para>
						Defines the (<emphasis>x, y, z</emphasis>) offset in pixels in the image from where to read. If <varname>image</varname> is a 2D image object, the z value given by <varname>origin</varname>[2] must be 0.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
						region
                    </varname>
                </term>

                <listitem>
                    <para>
						Defines the (<varname>width</varname>, <varname>height</varname>, <varname>depth</varname>) in pixels of the 2D or 3D rectangle being read. If <varname>image</varname> is a 2D image object, the <varname>depth</varname> value given by <varname>region</varname>[2] must be 1.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
						row_pitch                    
					</varname>
                </term>

                <listitem>
                    <para> 
						The length of each row in bytes. This value must be greater than or equal to the element size in bytes * <varname>width</varname>. If <varname>row_pitch</varname> is set to 0, the appropriate row pitch is calculated
						based on the size of each element in bytes multiplied by <varname>width</varname>.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
						slice_pitch
					</varname>
				</term>
				
				<listitem>
					<para>
						Size in bytes of the 2D slice of the 3D region of a 3D image being read. This must be 0 if <varname>image</varname> is a 2D image. This value must be greater than or equal to <varname>row_pitch</varname> * <varname>height</varname>. If <varname>slice_pitch</varname> is set to 0, the appropriate slice pitch is calculated based on the <varname>row_pitch</varname> * <varname>height</varname>.
					</para>
				</listitem>
			</varlistentry>

            <varlistentry>
                <term>
                    <varname>
						ptr
					</varname>
				</term>
				
				<listitem>
					<para>
						The pointer to a buffer in host memory where image data is to be written to.
					</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.
                    </para>
               </listitem>
            </varlistentry>

            <varlistentry>
                <term>
                    <varname>
						event
					</varname>
				</term>
				
				<listitem>
					<para>
						Returns an event object that identifies this particular read 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. 		
					</para>
				</listitem>
			</varlistentry>	
        </variablelist>
    </refsect1>

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

    <refsect1 id="notes"><title>Notes</title>
        <para>
Calling <function>clEnqueueReadImage</function> to read a region of the image object with the <varname>ptr</varname> argument value set to <varname>host_ptr</varname> + (<varname>origin</varname>[2] * <varname>image slice pitch</varname> + <varname>origin[1]</varname> * <varname>image row pitch</varname> + <varname>origin[0]</varname> *
<varname>bytes per pixel</varname>), where <varname>host_ptr</varname> is a pointer to the memory region specified when the image object being read is created with <constant>CL_MEM_USE_HOST_PTR</constant>, must meet the following
requirements in order to avoid undefined behavior:
		</para>
		<itemizedlist mark="disc">
			<listitem>		
				All commands that use this image object have finished execution before the read
				command begins execution.
			</listitem>
			<listitem>
				The <varname>row_pitch</varname> and <varname>slice_pitch</varname> argument values in <function>clEnqueueReadImage</function> must be set to
				the image row pitch and slice pitch.
			</listitem>
			<listitem>
				The image object is not mapped.
			</listitem>
			<listitem>
				The image object is not used by any command-queue until the read command has
				finished execution.
			</listitem>
		</itemizedlist>

    </refsect1>
    

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


    <refsect1 id="errors"><title>Errors</title>
        <para>
			<function>clEnqueueReadImage</function> return <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 command-queue.
			</listitem>
			
			<listitem>			
				<errorname>CL_INVALID_CONTEXT</errorname> if the context associated with <varname>command_queue</varname> and <varname>image</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>image</varname> is not a valid image object.
			</listitem>
			
			
			<listitem>
				<errorname>CL_INVALID_VALUE</errorname> if the region being read specified by <varname>origin</varname> and <varname>region</varname> is out of bounds or if <varname>ptr</varname> is a NULL value.
			</listitem>						
			
			<listitem>
				<errorname>CL_INVALID_VALUE</errorname> if <varname>image</varname> is a 2D image object and <varname>origin</varname>[2] is not equal to 0 or <varname>region</varname>[2] is not equal to 1 or <varname>slice_pitch</varname> is not equal to 0.
			</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> greater than 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_MEM_OBJECT_ALLOCATION_FAILURE</errorname> if there is a failure to allocate memory for
				data store associated with <varname>image</varname>.
			</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="clEnqueueReadImage">OpenCL Specification</olink>
        </para>
    </refsect1>     


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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry><refentrytitle>clEnqueueWriteImage</refentrytitle></citerefentry>, 
			<citerefentry><refentrytitle>clEnqueueCopyImage</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>

</refentry>

