<?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>clEnqueueReleaseDX9MediaSurfacesKHR</title>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <meta name="keywords" content="clEnqueueReleaseDX9MediaSurfacesKHR" />
  </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="clEnqueueReleaseDX9MediaSurfacesKHR"></a>
        <h1>clEnqueueReleaseDX9MediaSurfacesKHR</h1>
        <p>Release OpenCL memory objects that have been created from media surfaces.</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">clEnqueueReleaseDX9MediaSurfacesKHR</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 released 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</code> returns an 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.
                  If the <code class="varname">event_wait_list</code> and the event arguments are not
                  NULL, the <code class="varname">event</code> argument should not refer to an element
                  of the <code class="varname">event_wait_list</code> array.
                </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1">
        <a id="notes"></a>
        <h2>Notes</h2>
        <p>
          Used to release OpenCL memory objects that have been created from media
          surfaces. The media surfaces are released by the OpenCL context associated with
          <code class="varname">command_queue</code>.
        </p>
        <p>
          OpenCL memory objects created from media surfaces which have been acquired by OpenCL must
          be released by OpenCL before they may be accessed by the media adapter API. Accessing
          a media surface while its corresponding OpenCL memory object is acquired is in error
          and will result in undefined behavior, including but not limited to possible OpenCL
          errors, data corruption, and program termination.
        </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">clEnqueueReleaseDX9MediaSurfacesKHR</code> provides the
          synchronization guarantee that any calls to media adapter APIs involving
          the interop device(s) used in the OpenCL context made after the call to
          <code class="function">clEnqueueReleaseDX9MediaSurfacesKHR</code> will not start executing until
          after all events in <code class="varname">event_wait_list</code> are complete and all work already
          submitted to <code class="varname">command_queue</code> completes execution.  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
          after <code class="function">clEnqueueReleaseDX9MediaSurfacesKHR</code> will not start executing
          until after event returned by <code class="function">clEnqueueReleaseDX9MediaSurfacesKHR</code>
          reports completion.
        </p>
        <p>
      General information about sharing memory objects with DX9 follows.
    </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_dx9_media_sharing"
        will be present in the <code class="constant">CL_PLATFORM_EXTENSIONS</code>
        (see <a class="citerefentry" href="clGetPlatformInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetPlatformInfo</span></span></a>)
        or <code class="constant">CL_DEVICE_EXTENSIONS</code> 
        (see <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>
        <h4><a id="id-1.6.9"></a>Surface formats for Media Surface Sharing</h4>
        <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 tables below (Tables 9.10.3 and 9.10.4).
    </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 <code class="constant">D3DFMT_A32FB32FG32FR32F</code> 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_DX9_MEDIA_ADAPTER_TYPE_KHR</code>,
      <code class="constant">CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR</code> and
      <code class="constant">CL_IMAGE_DX9_MEDIA_SURFACE_PLANE_KHR</code>.
    </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
          &lt;<code class="varname">mem_objects</code>&gt; 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 valid 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 media object.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR</span> if memory objects in
                <code class="varname">mem_objects</code> have not been previously been acquired using
                <a class="citerefentry" href="clEnqueueAcquireDX9MediaSurfacesKHR.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueAcquireDX9MediaSurfacesKHR</span></span></a> 
                or have been released using
                <code class="function">clEnqueueReleaseDX9MediaSurfacesKHR</code>
                since the last time that they were acquired.
            </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="https://www.khronos.org/registry/cl/specs/opencl-2.1-extensions.pdf#page=91" 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>
        </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-2015 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>
