<?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">[
<!ENTITY eventFunctionsInc SYSTEM "eventFunctionsInc.xml">
]>

<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>capture_event_profiling_info</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>capture_event_profiling_info</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="capture_event_profiling_info">
        <refname>capture_event_profiling_info</refname>

        <refpurpose>
            Captures the profiling information for command associated with <varname>event</varname>.
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="scalarDataTypes.html">void</link>
                    <function>
                        capture_event_profiling_info
                    </function>
                </funcdef>
            <paramdef>
                <link xlink:href="otherDataTypes.html">clk_event_t</link>
                <parameter>event</parameter>
            </paramdef>
            <paramdef>
                <link xlink:href="otherDataTypes.html">clk_profiling_info</link>
                <parameter>name</parameter>
            </paramdef>
            <paramdef>
                global <link xlink:href="scalarDataTypes.html">void</link>
                *<parameter>value</parameter>
            </paramdef>
            </funcprototype>
        </funcsynopsis>

    </refsynopsisdiv>

<!-- ================================ DESCRIPTION  -->

    <refsect1 id="description"><title>Description</title>

        <para>
            Captures the profiling information for command 
            associated with <varname>event</varname>
            in <varname>value</varname>. The profiling information 
            will be available in <varname>value</varname> 
            once the command identified by <varname>event</varname> has completed.
        </para>

        <para>
            <varname>event</varname> must be an event returned by 
            <citerefentry><refentrytitle>enqueue_kernel</refentrytitle></citerefentry> or
            <citerefentry><refentrytitle>enqueue_marker</refentrytitle></citerefentry>.
        </para>

        <para>
           <varname>name</varname> identifies which profiling information is to 
           be queried and can be <constant>CLK_PROFILING_COMMAND_EXEC_TIME</constant>.
        </para>

        <para>
           <varname>value</varname> is a pointer to two 64-bit values. 
        </para>

        <para>
            The first 64-bit value describes the elapsed time
            <constant>CL_PROFILING_COMMAND_END</constant> –
            <constant>CL_PROFLING_COMMAND_START</constant> for the
            command identified by <varname>event</varname> in nanoseconds.
        </para>

        <para>
            The second 64-bit value describes the elapsed
            time <constant>CL_PROFILING_COMMAND_COMPLETE</constant>
            – <constant>CL_PROFILING_COMAMND_START</constant> for the 
            command identified by <varname>event</varname> in nanoseconds.
        </para>

        <para>
            NOTE: The behavior of 
            <function>capture_event_profling_info</function> when 
            called multiple times for the same <varname>event</varname> is 
            undefined
        </para>

    </refsect1>

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

    <refsect1 id="notes"><title>Notes</title>
        &eventFunctionsInc;

        <para>
          The behavior of <function>capture_event_profling_info</function> when 
          called multiple times for the same <varname>event</varname> is undefined.
        </para>
    </refsect1>

<!-- ================================ 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="eventFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>

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

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="eventFunctions"><refentrytitle>Event Functions</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>

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

