<?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" xmlns:xlink="http://www.w3.org/1999/xlink" pref:renderer="mathplayer-dl">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <style xmlns="" type="text/css">
    /* This style sets a margin around the entire page */
        html, body {
            margin: 10px;
        }

        p {
            font: normal 16px verdana, sans-serif;
            margin: 0;
            padding-bottom:12px;
        }

        h1 {
            font: bold 25px verdana, sans-serif;
            margin-top: 0;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        h2 {
            font: bold 19px verdana, sans-serif;
            margin-top: 28px;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        h3 {
            font: bold 19px verdana, sans-serif !important;
            margin-top: 28px;
            margin-bottom: 3px;
            padding-top: 0;
            padding-bottom: 0;
        }

        li {
            font: normal 16px verdana, sans-serif;
            margin-top: 0;
            margin-bottom: 18px;
            padding-top: 0;
            padding-bottom: 0;
        }

        .pdparam {
            font: italic 16px verdana, sans-serif;
        }

                .term {
                        font: italic 16px verdana, sans-serif;
                        font-weight: normal;
                }

                .type {
                        font: normal 16px verdana, sans-serif !important;
                }

                .parameter {
                        font-style: italic;
                        }

        a:link, a:visited {
            color: blue;
            text-decoration: none;
            font: normal 16px;
        }

        a:hover {
            background-color: #FFFF99;
            font: normal 16px;
        }

        div.funcsynopsis {
            text-align: left;
            background-color: #e6e6e6;
            font: normal 16px verdana, sans-serif;
                        padding-top: 10px;
                        padding-bottom: 10px;
        }

        div.funcsynopsis table {
            border-collapse: separate;
            font: normal 16px verdana, sans-serif;
        }

        div.funcsynopsis td {
            background-color: #e6e6e6;
            border: 0 solid #000;
            padding: 1px;
            font: normal 16px verdana, sans-serif;
        }

        div.refsect1 {
            font-family: verdana, sans-serif;
            font-size: 16px;
        }

        code.constant {
            font: normal 16px courier new, monospace !important;
        }

                span.errorname {
            font: normal 16px verdana, sans-serif !important;
        }

        code.function {
            font: bold 16px verdana, sans-serif !important;
        }

        b.fsfunc {
            font: bold 16px verdana, sans-serif !important;
        }

        code.varname {
            font: italic 16px verdana, sans-serif;
        }

        code.replaceable {
            font: italic 16px courier new, monospace;
        }

        code.funcdef {
            font: normal 16px verdana, sans-serif !important;
        }

        .citerefentry {
            font: normal 16px verdana, sans-serif !important;
        }

        .parameter {
            font-style: italic;
        }

        code.fsfunc {
            font: normal 16px verdana, sans-serif !important;
        }

        /* PARAMETER: This style controls spacing between the terms in Parameter section */
        dt {
            margin-top: 15px;
        }

        /* TABLES: These styles apply to all tables OTHER than the Synopsis and Example tables */
        div.refsect1 table {
            width: 100%;
                        margin-top: 10px;
            background-color: #FFF;
                        border-collapse: collapse;
                        border-color: #000;
            border-width: 1px;
                        font: normal 16px verdana, sans-serif;
        }

        div.refsect1 th {
                        border-collapse: collapse;
                        border-color: #000;
            border-width: 1px;
            font: bold 16px verdana, sans-serif;
        }

        div.refsect1 td {
            background-color: #FFF;
            padding: 5px;
            vertical-align: text-top;
                        border-collapse: collapse;
                        border-color: #000;
            border-width: 1px;
            font: normal 16px verdana, sans-serif;
        }

                  div.refsect1 p{
            font: normal 16px verdana, sans-serif;
            margin-top: 8px;
            margin-bottom: 8px;
            padding-top: 0;
            padding-bottom: 0;
        }


        /* EXAMPLE: These styles apply only to the Example section */
        div.refsect2 {
            font: normal 16px courier new, monospace !important;
        }

        div.refsect2 table {
            margin-top: 0;
            background-color: #e6e6e6;
            width: 100%;
            border: 0 solid #000;
            padding: 2px;
            font: normal 16px courier new, monospace !important;
        }

        div.refsect2 td {
            background-color: #e6e6e6;
            font: normal 16px courier new, monospace !important;
                        white-space:pre;
        }

        /* COPYRIGHT: This style formats the text of the copyright statement at the bottom of the page */
        div.refsect3 {
            font: normal 11px verdana, sans-serif;
            margin-top: 50px;
            margin-bottom: 20px;
            padding-top: 0;
            padding-bottom: 0;
        }

</style>
    <title>clEnqueueAcquireDX9MediaSurfacesKHR</title>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <meta name="keywords" content="clEnqueueAcquireDX9MediaSurfacesKHR" />
  </head>
  <body>
    <div class="refentry">
      <a id="id-1"></a>
      <div class="titlepage"></div>
      <div xmlns="" class="refnamediv">
        <a xmlns="http://www.w3.org/1999/xhtml" id="clEnqueueAcquireDX9MediaSurfacesKHR"></a>
        <h1>clEnqueueAcquireDX9MediaSurfacesKHR</h1>
        <p>Acquire OpenCL memory objects that have been created from a media surface.</p>
      </div>
      <div class="refsynopsisdiv">
        <h2></h2>
        <div class="funcsynopsis">
          <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
            <tr valign="bottom">
              <td>
                <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">
                <a class="link" href="scalarDataTypes.html" target="pagedisplay">cl_int</a>
                    <strong class="fsfunc">clEnqueueAcquireDX9MediaSurfacesKHR</strong>(</code>
                <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="abstractDataTypes.html" target="pagedisplay">cl_command_queue</a>
                     <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">command_queue</var>, </td>
              </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="pagedisplay">cl_uint</a>
                     <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">num_objects</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td>const <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="abstractDataTypes.html" target="pagedisplay">cl_mem</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*mem_objects</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="pagedisplay">cl_uint</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">num_events_in_wait_list</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td>
                    const <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="abstractDataTypes.html" target="pagedisplay">cl_event</a>
                     <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*event_wait_list</var>
                , </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="abstractDataTypes.html" target="pagedisplay">cl_event</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*event</var><code>)</code></td>
            </tr>
          </table>
        </div>
      </div>
      <div class="refsect1">
        <a id="parameters"></a>
        <h2>Parameters</h2>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                <code class="varname">command_queue</code>
              </span>
            </dt>
            <dd>
              <p>
                    A valid command-queue.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="varname">num_objects</code>
              </span>
            </dt>
            <dd>
              <p>
                    The number of memory objects to be acquired in <code class="varname">mem_objects</code>.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="varname">mem_objects</code>
              </span>
            </dt>
            <dd>
              <p>
                     A pointer to a list of OpenCL memory objects that were created from
                     media surfaces.
                </p>
            </dd>
            <dt>
              <span class="term"><code class="varname">num_events_in_wait_list</code>, <code class="varname">event_wait_list</code></span>
            </dt>
            <dd>
              <p>
                  Specify events that need to complete before this particular
                  command can be executed.  If <code class="varname">event_wait_list</code>
                  is NULL, then this particular command does not wait on any
                  event to complete. If <code class="varname">event_wait_list</code> is
                  NULL, <code class="varname">num_events_in_wait_list</code> must be 0. If
                  <code class="varname">event_wait_list</code> is not NULL, the list of events
                  pointed to by <code class="varname">event_wait_list</code> must be valid and
                  <code class="varname">num_events_in_wait_list</code> must be greater than 0. The events
                  specified in <code class="varname">event_wait_list</code> act as synchronization points.
                </p>
            </dd>
            <dt>
              <span class="term">
                <code class="varname">event</code>
              </span>
            </dt>
            <dd>
              <p>
                  Returns <em class="replaceable"><code>n</code></em> event object that identifies this particular
                  command and can be used to query or queue a wait for this particular command
                  to complete. <code class="varname">event</code> 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.
                </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1">
        <a id="notes"></a>
        <h2>Notes</h2>
        <p>
          Used to acquire OpenCL memory objects that have been created from a media
          surface. The media surfaces are acquired by the OpenCL context associated with
          <code class="varname">command_queue</code> and can therefore be used by all command-queues
          associated with the OpenCL context.
        </p>
        <p>
          OpenCL memory objects created from media surfaces must be acquired before they can
          be used by any OpenCL commands queued to a command-queue.  If an OpenCL memory
          object created from a media surface is used while it is not currently acquired
          by OpenCL, the call attempting to use that OpenCL memory object will return
          <code class="constant">CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR</code>.
        </p>
        <p>
          If <code class="constant">CL_CONTEXT_INTEROP_USER_SYNC</code> is not
          specified as <code class="constant">CL_TRUE</code> during context creation,
          <code class="function">clEnqueueAcquireDX9MediaSurfacesKHR</code> provides the synchronization
          guarantee that any media adapter API calls involving the interop device(s) used in the
          OpenCL context made before <code class="function">clEnqueueAcquireDX9MediaSurfacesKHR</code>
          is called will complete executing before <code class="varname">event</code> reports
          completion and before the execution of any subsequent OpenCL work issued
          in <code class="varname">command_queue</code> begins. If the context was created with
          properties specifying <code class="constant">CL_CONTEXT_INTEROP_USER_SYNC</code> as
          <code class="constant">CL_TRUE</code>, the user is responsible for guaranteeing that any
          media adapter API calls involving the interop device(s) used in the OpenCL context
          made before <code class="function">clEnqueueAcquireDX9MediaSurfacesKHR</code> is called have
          completed before calling <code class="function">clEnqueueAcquireDX9MediaSurfacesKHR</code>.
        </p>
        <p>
       The goal of this extension is to allow applications
      to use media surfaces as OpenCL memory objects. This allows efficient sharing of data
      between OpenCL and selected adapter APIs (only DX9 for now). If this extension is supported,
      an OpenCL image object can be created from a media surface and the OpenCL API can be used
      to execute kernels that read and/or write memory objects that are media surfaces. Note
      that OpenCL memory objects may be created from the adapter media surface if and only if
      the OpenCL context has been created from that adapter.
    </p>
        <p>
       If this extension is supported by
      an implementation, the string "cl_khr_media_sharing" will be present in the
      <code class="constant">CL_PLATFORM_EXTENSIONS</code> or <code class="constant">CL_DEVICE_EXTENSIONS</code>
      string described in the table of allowed values for <code class="varname">param_name</code> for
      <a class="citerefentry" href="clGetDeviceInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceInfo</span></span></a>.
    </p>
        <p>
       As currently proposed the interfaces for this
      extension would be provided in <code class="code">cl_dx9_media_sharing.h</code>.
    </p>
        <p>
       This section includes the D3D surface formats
      that are supported when the adapter type is one of the Direct 3D lineage . Using a D3D
      surface format not listed here is an error.  To extend the use of this extension to support
      media adapters beyond DirectX9 tables similar to the ones in this section will need to be
      defined for the surface formats supported by the new media adapter.  All implementations
      that support this extension are required to support the NV12 surface format, the other
      surface formats supported are the same surface formats that the adapter you are sharing
      with supports as long as they are listed in the two tables below.
    </p>
        <div class="informaltable">
          <table border="1">
            <colgroup>
              <col align="center" class="col1" />
              <col align="center" class="col2" />
            </colgroup>
            <thead>
              <tr>
                <th align="center">FOUR CC code</th>
                <th align="center">CL image format (channel order, channel data type)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="center">FOURCC('N', 'V', '1', '2'), Plane 0</td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">FOURCC('N', 'V', '1', '2'), Plane 1</td>
                <td align="center">
                  <code class="constant">CL_RG, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">FOURCC('Y', 'V', '1', '2'), Plane 0</td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">FOURCC('Y', 'V', '1', '2'), Plane 1</td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">FOURCC('Y', 'V', '1', '2'), Plane 2</td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNORM_INT8</code>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <p>
      In the table above, NV12 Plane 0 corresponds to the luminance (Y) channel and Plane 1
      corresponds to the UV channels. The YV12 Plane 0 corresponds to the Y channel, Plane
      1 to the U channel and Plane 2 to the V channel. Note that the YUV formats map to
      <code class="constant">CL_R</code> and <code class="constant">CL_RG</code> but do not perform any YUV to
      RGB conversion and vice-versa.
    </p>
        <div class="informaltable">
          <table border="1">
            <colgroup>
              <col align="center" class="col1" />
              <col align="center" class="col2" />
            </colgroup>
            <thead>
              <tr>
                <th align="center">D3D format</th>
                <th align="center">CL image format (channel order, channel data type)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="center">D3DFMT_R32F</td>
                <td align="center">
                  <code class="constant">CL_R, CL_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_R16F</td>
                <td align="center">
                  <code class="constant">CL_R, CL_HALF_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_L16</td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNORM_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_A8</td>
                <td align="center">
                  <code class="constant">CL_A, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_L8</td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_G32R32F</td>
                <td align="center">
                  <code class="constant">CL_RG, CL_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_G16R16F</td>
                <td align="center">
                  <code class="constant">CL_RG, CL_HALF_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_G16R16</td>
                <td align="center">
                  <code class="constant">CL_RG, CL_UNORM_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_A8L8</td>
                <td align="center">
                  <code class="constant">CL_RG, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_A32B32G32R32F</td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_A16B16G16R16F</td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_HALF_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_A16B16G16R16</td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_UNORM_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_A8B8G8R8</td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_X8B8G8R8</td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_A8R8G8B8</td>
                <td align="center">
                  <code class="constant">CL_BGRA, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">D3DFMT_X8R8G8B8</td>
                <td align="center">
                  <code class="constant">CL_BGRA, CL_UNORM_INT8</code>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <p>
      Note that D3D9 format names seem to imply that the order of the color channels are switched
      relative to OpenCL but this is not the case. For example, layout of channels for each pixel
      for D3DFMT_A32FB32FG32FR32F is the same as <code class="constant">CL_RGBA</code>, <code class="constant">CL_FLOAT</code>.
    </p>
        <p>
      Properties of media surface objects may be queried using
      <a class="citerefentry" href="clGetMemObjectInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetMemObjectInfo</span></span></a>
      and <a class="citerefentry" href="clGetImageInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetImageInfo</span></span></a> with
      <code class="varname">param_name</code> <code class="constant">CL_MEM_MEDIA_ADAPTER_TYPE_KHR</code>,
      <code class="constant">CL_MEM_MEDIA_SURFACE_INFO_KHR</code> and
      <code class="constant">CL_IMAGE_MEDIA_SURFACE_PLANE_KHR</code> as described for
      <a class="citerefentry" href="clGetImageInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetImageInfo</span></span></a> and in the
      information below about accessing mapped regions of a memory object.
    </p>
        <h4><a id="id-1.6.14"></a>Accessing mapped regions of a memory object</h4>
        <p>
      This section describes the behavior of OpenCL commands that access 
      mapped regions of a memory object.
    </p>
        <p>
        The contents of the region of a memory object and associated memory objects 
        (sub-buffer objects or 1D image buffer objects that overlap this region) mapped 
        for writing (i.e. <code class="constant">CL_MAP_WRITE</code> or 
        <code class="constant">CL_MAP_WRITE_INVALIDATE_REGION</code> is set in <code class="varname">map_flags</code> 
        argument to <a class="citerefentry" href="clEnqueueMapBuffer.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueMapBuffer</span></span></a> 
        or <a class="citerefentry" href="clEnqueueMapImage.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueMapImage</span></span></a>) are 
        considered to be undefined until this region is unmapped.
    </p>
        <p>
        Multiple commands in command-queues can map a region or overlapping regions of a memory
        object and associated memory objects (sub-buffer objects or 1D image buffer objects that
        overlap this region) for reading (i.e. <code class="varname">map_flags</code> = <code class="constant">CL_MAP_READ</code>). 
        The contents of the regions of a memory object mapped for reading can also be read by kernels 
        and other OpenCL commands (such as 
        <a class="citerefentry" href="clEnqueueCopyBuffer.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueCopyBuffer</span></span></a>) executing on a device(s).
    </p>
        <p>
        Mapping (and unmapping) overlapped regions in a memory object and/or associated memory
        objects (sub-buffer objects or 1D image buffer objects that overlap this region) for writing 
        is an error and will result in <code class="constant">CL_INVALID_OPERATION</code> error returned by 
        <a class="citerefentry" href="clEnqueueMapBuffer.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueMapBuffer</span></span></a> 
        or <a class="citerefentry" href="clEnqueueMapImage.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueMapImage</span></span></a>.
    </p>
        <p>
        If a memory object is currently mapped for writing, the application must ensure that the memory
        object is unmapped before any enqueued kernels or commands that read from or write to this
        memory object or any of its associated memory objects (sub-buffer or 1D image buffer objects)
        or its parent object (if the memory object is a sub-buffer or 1D image buffer object) begin
        execution; otherwise the behavior is undefined.
    </p>
        <p>
        If a memory object is currently mapped for reading, the application must ensure that the memory
        object is unmapped before any enqueued kernels or commands that write to this memory object
        or any of its associated memory objects (sub-buffer or 1D image buffer objects) or its parent
        object (if the memory object is a sub-buffer or 1D image buffer object) begin execution;
        otherwise the behavior is undefined.
    </p>
        <p>
        Accessing the contents of the memory region referred to by the mapped pointer that has 
        been unmapped is undefined.
    </p>
        <p>
        The mapped pointer returned by 
        <a class="citerefentry" href="clEnqueueMapBuffer.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueMapBuffer</span></span></a> 
        or <a class="citerefentry" href="clEnqueueMapImage.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueMapImage</span></span></a> can be used as
        <code class="varname">ptr</code> argument value to 
        <a class="citerefentry" href="clEnqueueReadBuffer.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueReadBuffer</span></span></a>, 
        <a class="citerefentry" href="clEnqueueWriteBuffer.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueWriteBuffer</span></span></a>, 
        <a class="citerefentry" href="clEnqueueReadBufferRect.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueReadBufferRect</span></span></a>, 
        <a class="citerefentry" href="clEnqueueWriteBufferRect.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueWriteBufferRect</span></span></a>,
        <a class="citerefentry" href="clEnqueueReadImage.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueReadImage</span></span></a>, and 
        <a class="citerefentry" href="clEnqueueWriteImage.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueWriteImage</span></span></a>, 
        provided the rules described above are adhered to.
    </p>
      </div>
      <div class="refsect1">
        <a id="errors"></a>
        <h2>Errors</h2>
        <p>
          Returns <span class="errorname">CL_SUCCESS</span> returns <span class="errorname">CL_SUCCESS</span>
          if the function is executed successfully. If <code class="varname">num_objects</code> is 0 and
          <code class="varname">mem_objects</code> is NULL then the function does nothing and returns
          <span class="errorname">CL_SUCCESS</span>. Otherwise it returns one of the following errors:
        </p>
        <div class="itemizedlist">
          <ul class="itemizedlist" style="list-style-type: disc; ">
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_VALUE</span> if <code class="varname">num_objects</code>
              is zero and <code class="varname">mem_objects</code> is not a NULL value or if
              <code class="varname">num_objects</code> &gt; 0 and <code class="varname">mem_objects</code> is NULL.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_MEM_OBJECT</span> if memory objects in
              <code class="varname">mem_objects</code> are not valid OpenCL memory objects or if memory
              objects in <code class="varname">mem_objects</code> have not been created from media surfaces.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_COMMAND_QUEUE</span> if <code class="varname">command_queue</code>
              is not a valid command-queue.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_CONTEXT</span> if context associated with
              <code class="varname">command_queue</code> was not created from a device that can share
              the media surface referenced by <code class="varname">mem_objects</code>.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR</span> if memory
              objects in <code class="varname">mem_objects</code>  have previously been acquired
              using <code class="function">clEnqueueAcquireDX9MediaSurfacesKHR</code>
              but have not been released using
              <a class="citerefentry" href="clEnqueueReleaseDX9MediaSurfacesKHR.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueReleaseDX9MediaSurfacesKHR</span></span></a>.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_EVENT_WAIT_LIST</span>
              if <code class="varname">event_wait_list</code> is NULL and
              <code class="varname">num_event_in_wait_list</code> &gt; 0,
              or <code class="varname">event_wait_list</code> is  not NULL and
              <code class="varname">num_event_in_wait_list</code> is 0, or if event objects in
              <code class="varname">event_wait_list</code> are not valid events.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_OUT_OF_HOST_MEMORY</span> if there is a failure to allocate
              resources required by the OpenCL implementation on the host.
            </li>
          </ul>
        </div>
      </div>
      <div class="refsect1">
        <a id="specification"></a>
        <h2>Specification</h2>
        <p><img src="pdficon_small1.gif" />
            <a href="http://www.khronos.org/registry/cl/specs/opencl-1.2-extensions.pdf#page=92" target="OpenCL Spec">OpenCL Specification</a>
        </p>
      </div>
      <div class="refsect1">
        <a id="seealso"></a>
        <h2>Also see</h2>
        <p>
            <a class="citerefentry" href="cl_khr_dx9_media_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_dx9_media_sharing</span></span></a>,
            <a class="citerefentry" href="clGetDeviceIDsFromDX9MediaAdapterKHR.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceIDsFromDX9MediaAdapterKHR</span></span></a>,
            <a class="citerefentry" href="clCreateFromDX9MediaSurfaceKHR.html"><span class="citerefentry"><span class="refentrytitle">clCreateFromDX9MediaSurfaceKHR</span></span></a>,
            <a class="citerefentry" href="clEnqueueReleaseDX9MediaSurfacesKHR.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueReleaseDX9MediaSurfacesKHR</span></span></a>,
            <a class="citerefentry" href="clEnqueueAcquireDX9MediaSurfacesKHR.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueAcquireDX9MediaSurfacesKHR</span></span></a>
        </p>
      </div>
      <div xmlns="" class="refsect3" lang="en" xml:lang="en"><a xmlns="http://www.w3.org/1999/xhtml" id="Copyright"></a><h4 xmlns="http://www.w3.org/1999/xhtml"></h4><img xmlns="http://www.w3.org/1999/xhtml" src="KhronosLogo.jpg" /><p xmlns="http://www.w3.org/1999/xhtml"></p>Copyright © 2007-2011 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.
</div>
    </div>
  </body>
</html>
