<?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>clCreateFromGLBuffer</title>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <meta name="keywords" content="clCreateFromGLBuffer" />
  </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="clCreateFromGLBuffer"></a>
        <h1>clCreateFromGLBuffer</h1>
        <p>
            Creates an OpenCL buffer object from an OpenGL buffer object.
        </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="abstractDataTypes.html" target="pagedisplay">cl_mem</a>
                     <strong class="fsfunc">
                        clCreateFromGLBuffer
                    </strong>
                (</code>
                <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="abstractDataTypes.html" target="pagedisplay">cl_context</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">context</var>, </td>
              </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="enums.html#cl_mem_flags" target="pagedisplay">cl_mem_flags</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">flags</var>, </td>
            </tr>
            <tr valign="top">
              <td> </td>
              <td>GLuint <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">bufobj</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_int</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">* errcode_ret</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"> context </code> </span>
            </dt>
            <dd>
              <p> 
                        A valid OpenCL context created from an OpenGL context.
                    </p>
            </dd>
            <dt>
              <span class="term"> <code class="varname"> flags </code> </span>
            </dt>
            <dd>
              <p>
                      A bit-field that is
                      used to specify usage information.  Refer to the table for
                      <a class="citerefentry" href="clCreateBuffer.html"><span class="citerefentry"><span class="refentrytitle">clCreateBuffer</span></span></a> 
                      for a description of <code class="varname">flags</code>. Only
                      <code class="constant">CL_MEM_READ_ONLY</code>, <code class="constant">CL_MEM_WRITE_ONLY</code>
                      and <code class="constant">CL_MEM_READ_WRITE</code> values specified in the table at
                      <a class="citerefentry" href="clCreateBuffer.html"><span class="citerefentry"><span class="refentrytitle">clCreateBuffer</span></span></a>
                      can be used.
                    </p>
            </dd>
            <dt>
              <span class="term"> <code class="varname"> bufobj </code> </span>
            </dt>
            <dd>
              <p>
                      The name of a GL buffer object. The data
                      store of the GL buffer object must have have been previously created by
                      calling OpenGL function <code class="function">glBufferData</code>, although its
                      contents need not be initialized. The size of the data store will be used
                      to determine the size of the CL buffer object.
                    </p>
            </dd>
            <dt>
              <span class="term"> <code class="varname"> errcode_ret </code> </span>
            </dt>
            <dd>
              <p>
                      Returns an appropriate error code as described
                      below. If <code class="varname">errcode_ret</code> is NULL, no error code is returned.
                    </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1">
        <a id="description"></a>
        <h2>Description</h2>
        <p>
          The size of the GL buffer object data store at the time
          <code class="function">clCreateFromGLBuffer</code> is called will be used as the size of buffer
          object returned by <code class="function">clCreateFromGLBuffer</code>. If the state of a GL
          buffer object is modified through the GL API (e.g. <code class="function">glBufferData</code>)
          while there exists a corresponding CL buffer object, subsequent use of the CL buffer
          object will result in undefined behavior.
        </p>
        <p>
          The <a class="citerefentry" href="clRetainMemObject.html"><span class="citerefentry"><span class="refentrytitle">clRetainMemObject</span></span></a>
          and <a class="citerefentry" href="clReleaseMemObject.html"><span class="citerefentry"><span class="refentrytitle">clReleaseMemObject</span></span></a>
          functions can be used to retain and release the buffer object.
        </p>
        <p>
          The CL buffer object created using <code class="function">clCreateFromGLBuffer</code> can also
          be used to create a CL 1D image buffer object
        </p>
      </div>
      <div class="refsect1">
        <a id="notes"></a>
        <h2>Notes</h2>
        <p>
           The OpenCL specification in section 9.7 defines how to
          share data with texture and buffer objects in a parallel OpenGL implementation,
          but does not define how the association between an OpenCL context and an OpenGL
          context or share group is established. This extension defines optional attributes
          to OpenCL context creation routines which associate a GL context or share group
          object with a newly created OpenCL context. If this extension is supported
          by an implementation, the string "cl_khr_gl_sharing" will be present in the
          <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>
          or in the <code class="constant">CL_PLATFORM_EXTENSIONS</code>
          string described in the table of allowed values for <code class="varname">param_name</code>
          for <a class="citerefentry" href="clGetPlatformInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetPlatformInfo</span></span></a>.
        </p>
        <p>
          
          This section discusses OpenCL functions that allow applications
          to use OpenGL buffer, texture, and renderbuffer objects as OpenCL memory objects. This
          allows efficient sharing of data between OpenCL and OpenGL. The OpenCL API may be used
          to execute kernels that read and/or write memory objects that are also OpenGL objects.
        </p>
        <p>
          An OpenCL image object may be created from an OpenGL texture or
          renderbuffer object. An OpenCL buffer object may be created from an OpenGL buffer object.
        </p>
        <p>
          OpenCL memory objects may be created from OpenGL objects
          if and only if the OpenCL context has been created from an OpenGL share group
          object or context. OpenGL share groups and contexts are created using platform
          specific APIs such as EGL, CGL, WGL, and GLX. On MacOS X, an OpenCL context may
          be created from an OpenGL share group object using the OpenCL platform extension
          cl_apple_gl_sharing. On other platforms including Microsoft Windows, Linux/Unix and
          others, an OpenCL context may be created from an OpenGL context using the Khronos
          platform extension <code class="function">cl_khr_gl_sharing</code>. Refer to the platform
          documentation for your OpenCL implementation, or visit the Khronos Registry at
          https://www.khronos.org/registry/cl/ for more information.
        </p>
        <p>
          Any supported OpenGL object defined within the GL share
          group object, or the share group associated with the GL context from which the CL
          context is created, may be shared, with the exception of the default OpenGL objects
          (i.e. objects named zero), which may not be shared.
        </p>
        <h4><a id="id-1.7.7"></a>OpenGL and Corresponding OpenCL Image Formats</h4>
        <p>
       The table below (Table 9.4) describes
      the list of GL texture internal formats and the corresponding CL image formats. If a GL
      texture object with an internal format from the table below is successfully created by
      OpenGL, then there is guaranteed to be a mapping to one of the corresponding CL image
      format(s) in that table. Texture objects created with other OpenGL internal formats may
      (but are not guaranteed to) have a mapping to a CL image format; if such mappings exist,
      they are guaranteed to preserve all color components, data types, and at least the number
      of bits/component actually allocated by OpenGL for that format.
    </p>
        <div class="informaltable">
          <table border="1">
            <colgroup>
              <col align="center" class="col1" />
              <col align="center" class="col2" />
            </colgroup>
            <thead>
              <tr>
                <th align="center">GL internal format</th>
                <th align="center">CL image format (channel order, channel data type)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA8</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_UNORM_INT8 or CL_BGRA, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_SRGBA8_ALPHA8</code>
                </td>
                <td align="center">
                  <code class="constant">CL_sRGBA, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center"><code class="constant">GL_RGBA</code>, <code class="constant">GL_UNSIGNED_INT_8_8_8_8_REV</code></td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center"><code class="constant">GL_BGRA</code>, <code class="constant">GL_UNSIGNED_INT_8_8_8_8_REV</code></td>
                <td align="center">
                  <code class="constant">CL_BGRA, CL_UNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA8I, GL_RGBA8I_EXT</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_SIGNED_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA16I, GL_RGBA16I_EXT</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_SIGNED_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA32I, GL_RGBA32I_EXT</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_SIGNED_INT32</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA8UI, GL_RGBA8UI_EXT</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_UNSIGNED_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA16UI, GL_RGBA16UI_EXT</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_UNSIGNED_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA32UI, GL_RGBA32UI_EXT</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_UNSIGNED_INT32</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA8_SNORM</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_SNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA16</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_UNORM_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA16_SNORM</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_SNORM_INT166</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA16F, GL_RGBA16F_ARB</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_HALF_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RGBA32F, GL_RGBA32F_ARB</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RGBA, CL_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R8</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNORM_INT8 </code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R8_SNORM</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_SNORM_INT8 </code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R16</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNORM_INT16 </code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R16_SNORM</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_SNORM_INT16 </code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R16F</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_HALF_FLOAT </code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R32F</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_FLOAT </code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R8I</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_SIGNED_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R16I</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_SIGNED_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R32I</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_SIGNED_INT32</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R8UI</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNSIGNED_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R16UI</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNSIGNED_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_R32UI</code>
                </td>
                <td align="center">
                  <code class="constant">CL_R, CL_UNSIGNED_INT32</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG8</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_UNORM_INT8 </code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG8_SNORM</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_SNORM_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG16</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_UNORM_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG16_SNORM</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_SNORM_INT16 </code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG16F</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_HALF_FLOAT </code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG32F</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG8I</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_SIGNED_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG16I</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_SIGNED_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG32I</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_SIGNED_INT32</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG8UI</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_UNSIGNED_INT8</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG16UI</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_UNSIGNED_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_RG32UI</code>
                </td>
                <td align="center">
                  <code class="constant">CL_RG, CL_UNSIGNED_INT32</code>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <p>
        If the <a class="citerefentry" href="cl_khr_gl_depth_images.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_depth_images</span></span></a> 
        extension is enabled, the 
        following new image formats are added to table 9.4 in section 9.6.3.1 of the OpenCL 2.0
        extension specification. If a GL texture object with an internal format from table 9.4 is 
        successfully created by OpenGL, then there is guaranteed to be a mapping to one of the 
        corresponding CL image format(s) in that table.
    </p>
        <div class="informaltable">
          <table border="1">
            <colgroup>
              <col align="center" class="col1" />
              <col align="center" class="col2" />
            </colgroup>
            <thead>
              <tr>
                <th align="center">GL internal format</th>
                <th align="center">CL image format (channel order, channel data type)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="center">
                  <code class="constant">GL_DEPTH_COMPONENT32F</code>
                </td>
                <td align="center">
                  <code class="constant">CL_DEPTH, CL_FLOAT</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_DEPTH_COMPONENT16</code>
                </td>
                <td align="center">
                  <code class="constant">CL_DEPTH, CL_UNORM_INT16</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_DEPTH24_STENCIL8</code>
                </td>
                <td align="center">
                  <code class="constant">CL_DEPTH_STENCIL, CL_UNORM_INT24</code>
                </td>
              </tr>
              <tr>
                <td align="center">
                  <code class="constant">GL_DEPTH32F_STENCIL8</code>
                </td>
                <td align="center">
                  <code class="constant">CL_DEPTH_STENCIL, CL_FLOAT</code>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <h4><a id="id-1.7.12"></a>Lifetime of [GL] Shared Objects</h4>
        <p>
       
      An OpenCL memory object created from an OpenGL object
      (hereinafter refered to as a "shared CL/GL object") remains valid as long as the
      corresponding GL object has not been deleted. If the GL object is deleted through the GL
      API (e.g. <code class="function">glDeleteBuffers</code>, <code class="function">glDeleteTextures</code>,
      or <code class="function">glDeleteRenderbuffers</code>), subsequent use of the CL buffer or image
      object will result in undefined behavior, including but not limited to possible CL errors
      and data corruption, but may not result in program termination.
    </p>
        <p>
       
      The CL context and corresponding command-queues are dependent
      on the existence of the GL share group object, or the share group associated with the
      GL context from which the CL context is created. If the GL share group object or all GL
      contexts in the share group are destroyed, any use of the CL context or command-queue(s)
      will result in undefined behavior, which may include program termination. Applications
      should destroy the CL command-queue(s) and CL context before destroying the corresponding
      GL share group or contexts.
    </p>
        <h4><a id="id-1.7.15"></a>Synchronizing OpenCL and OpenGL Access</h4>
        <p>
      In order to ensure data integrity, the application is responsible
      for synchronizing access to shared CL/GL objects by their respective APIs.  Failure to
      provide such synchronization may result in race conditions and other undefined behavior
      including non-portability between implementations.
    </p>
        <p>
      Prior to calling <code class="function">clEnqueueAcquireGLObjects</code>,
      the application must ensure that any pending GL operations which access the objects
      specified in <code class="varname">mem_objects</code>  have completed.  This may be accomplished
      portably by issuing and waiting for completion of a <code class="function">glFinish</code>
      command on all GL contexts with pending references to these objects.  Implementations
      may offer more efficient synchronization methods; for example on some platforms calling
      <code class="function">glFlush</code> may be sufficient, or synchronization may be implicit within
      a thread, or there may be vendor-specific extensions that enable placing a fence in the
      GL command stream and waiting for completion of that fence in the CL command queue. Note
      that no synchronization methods other than <code class="function">glFinish</code> are portable
      between OpenGL implementations at this time.
    </p>
        <p>
        When the extension 
        <a class="citerefentry" href="cl_khr_egl_event.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_egl_event</span></span></a> 
        is supported: Prior to calling 
        <code class="function">clEnqueueAcquireGLObjects</code>, 
        the application must ensure that any pending 
        EGL or EGL client API operations which access 
        the objects specified in <code class="varname">mem_objects</code> have 
        completed. 
        If the 
        <a class="citerefentry" href="cl_khr_egl_event.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_egl_event</span></span></a>
        extension is supported and the EGL context in question supports fence 
        sync objects, <span class="emphasis"><em>explicit synchronisation</em></span> can be achieved 
        as set out in section 5.7.1. 
        If the 
        <a class="citerefentry" href="cl_khr_egl_event.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_egl_event</span></span></a> 
        extension is not supported, completion of EGL client API commands 
        may be determined by issuing and waiting for completion of commands such as 
        <code class="function">glFinish</code> or 
        <code class="function">vgFinish</code> on all client API 
        contexts with pending references to these objects. Some
        implementations may offer other efficient 
        synchronization methods. If such methods exist they 
        will be described in platform-specific documentation.
        Note that no synchronization methods other than 
        <code class="function">glFinish</code> and <code class="function">vgFinish</code> 
        are portable between all 
        EGL client API implementations and all OpenCL 
        implementations. While this is the only way to 
        ensure completion that is portable to all platforms, 
        these are expensive operation and their use 
        should be avoided if the 
        <a class="citerefentry" href="cl_khr_egl_event.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_egl_event</span></span></a> extension 
        is supported on a platform.
    </p>
        <p>
      
      Similarly, after calling
      <code class="function">clEnqueueReleaseGLObjects</code>, the application is responsible
      for ensuring that any pending OpenCL operations which access the objects specified
      in <code class="varname">mem_objects</code> have completed prior to executing subsequent GL
      commands which reference these objects. This may be accomplished portably by calling
      <a class="citerefentry" href="clWaitForEvents.html"><span class="citerefentry"><span class="refentrytitle">clWaitForEvents</span></span></a> with the
      event object returned by <code class="function">clEnqueueReleaseGLObjects</code>, or by calling
      <a class="citerefentry" href="clFinish.html"><span class="citerefentry"><span class="refentrytitle">clFinish</span></span></a>.  As above, some
      implementations may offer more efficient methods.
    </p>
        <p>
      The application is responsible for maintaining the proper order
      of operations if the CL and GL contexts are in separate threads.
    </p>
        <p>
      If a GL context is bound to a thread other than the one in which
      <code class="function">clEnqueueReleaseGLObjects</code> is called, changes to any of the objects in
      <code class="varname">mem_objects</code> may not be visible to that context without additional steps
      being taken by the application. For an OpenGL 3.1 (or later) context, the requirements
      are described in Appendix D ("Shared Objects and Multiple Contexts") of the OpenGL 3.1
      Specification. For prior versions of OpenGL, the requirements are implementation-dependent.
    </p>
        <p>
      Attempting to access the data store of an OpenGL object after
      it has been acquired by OpenCL and before it has been released will result in undefined
      behavior.  Similarly, attempting to access a shared CL/GL object from OpenCL before it
      has been acquired by the OpenCL command queue, or after it has been released, will result
      in undefined behavior.
    </p>
        <p>
      If the
      <a class="citerefentry" href="cl_khr_gl_event.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_event</span></span></a> extension
      is supported, then the OpenCL implementation will ensure that any such pending OpenGL
      operations are complete for an OpenGL context bound to the same thread as the OpenCL
      context. This is referred to as implicit synchronization.
    </p>
      </div>
      <div class="refsect1">
        <a id="errors"></a>
        <h2>Errors</h2>
        <p>
          Returns a valid non-zero OpenCL buffer object and <code class="varname">errcode_ret</code> is set
          to <span class="errorname">CL_SUCCESS</span> if the buffer object is created successfully. 
          Otherwise, it returns a NULL
          value with one of the following error values returned in <code class="varname">errcode_ret</code>:
        </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_CONTEXT</span> if <code class="varname">context</code> is not
              a valid context or was not created from a GL context.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_VALUE</span> if values specified in
              <code class="varname">flags</code> are not valid.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_GL_OBJECT</span> if <code class="varname">bufobj</code> is not
              a GL buffer object or is a GL buffer object but does not have an existing data
              store e or the size of the buffer is 0.
            </li>
            <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_OUT_OF_RESOURCES</span> if there is a failure to allocate
              resources required by the OpenCL implementation on the device.
            </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.0-extensions.pdf#page=47" 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_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a>,
            <a class="citerefentry" href="cl_khr_gl_event.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_event</span></span></a>,
            <a class="citerefentry" href="clCreateBuffer.html"><span class="citerefentry"><span class="refentrytitle">clCreateBuffer</span></span></a>,
            <a class="citerefentry" href="clCreateFromGLTexture.html"><span class="citerefentry"><span class="refentrytitle">clCreateFromGLTexture</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-2013 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>
