| <?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>clCreateContext</title> | |
| <meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /> | |
| <meta name="keywords" content="clCreateContext" /> | |
| </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="clCreateContext"></a> | |
| <h1>clCreateContext</h1> | |
| <p>Creates an OpenCL context.</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_context</a> <strong class="fsfunc">clCreateContext</strong>(</code> | |
| <td>const <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="enums.html#cl_context_properties" target="pagedisplay">cl_context_properties</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*properties</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_devices</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_device_id</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*devices</var>, </td> | |
| </tr> | |
| <tr valign="top"> | |
| <td> </td> | |
| <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="pagedisplay">void (</a> CL_CALLBACK <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*pfn_notify)</var> | |
| <code xmlns="http://www.w3.org/1999/xhtml">(</code><div xmlns="http://www.w3.org/1999/xhtml" class="literallayout"><p>const <a class="link" href="scalarDataTypes.html" target="pagedisplay">char</a> *errinfo,<br /> | |
| const <a class="link" href="scalarDataTypes.html" target="pagedisplay">void</a> *private_info, <a class="link" href="otherDataTypes.html" target="_top">size_t</a> cb,<br /> | |
| <a class="link" href="scalarDataTypes.html" target="pagedisplay">void</a> *user_data</p></div><code xmlns="http://www.w3.org/1999/xhtml">)</code>, </td> | |
| </tr> | |
| <tr valign="top"> | |
| <td> </td> | |
| <td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="pagedisplay">void</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*user_data</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="description"></a> | |
| <h2>Description</h2> | |
| <p> | |
| An OpenCL context is created with one or more devices. Contexts are used by the | |
| OpenCL runtime for managing objects such as command-queues, memory, program and kernel | |
| objects and for executing kernels on one or more devices specified in the context. | |
| </p> | |
| </div> | |
| <div class="refsect1"> | |
| <a id="parameters"></a> | |
| <h2>Parameters</h2> | |
| <div class="variablelist"> | |
| <dl class="variablelist"> | |
| <dt> | |
| <span class="term">properties</span> | |
| </dt> | |
| <dd> | |
| <p> | |
| Specifies a list of context property names and | |
| their corresponding values. Each property name is immediately followed | |
| by the corresponding desired value. The list is terminated with 0. | |
| <code class="varname">properties</code> can be NULL in which case the platform | |
| that is selected is implementation-defined. The list of supported | |
| <code class="varname">properties</code> is described in the table below. | |
| </p> | |
| <p> | |
| If the extension | |
| <a class="citerefentry" href="cl_khr_dx9_media_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_dx9_media_sharing</span></span></a> | |
| is enabled, then <code class="varname">properties</code> specifies a list of context | |
| property names and their corresponding values. Each property is followed | |
| immediately by the corresponding desired value. The list is terminated with | |
| zero. If a property is not specified in <code class="varname">properties</code>, then its | |
| default value (listed in the table below) is used (it is said to be specified | |
| implicitly). If <code class="varname">properties</code> is NULL or empty (points to | |
| a list whose first value is zero), all attributes take on their default values. | |
| </p> | |
| <p> | |
| If the extension | |
| <a class="citerefentry" href="cl_khr_d3d10_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d10_sharing</span></span></a> | |
| is enabled, then <code class="varname">properties</code> specifies a list of context | |
| property names and their corresponding values. Each property is followed | |
| immediately by the corresponding desired value. The list is terminated | |
| with zero. If a property is not specified in <code class="varname">properties</code>, | |
| then its default value is used (it is said to be specified implicitly). If | |
| <code class="varname">properties</code> is NULL or empty (points to a list whose first | |
| value is zero), all attributes take on their default value. | |
| </p> | |
| <p> | |
| If the extension | |
| <a class="citerefentry" href="cl_khr_d3d11_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d11_sharing</span></span></a> | |
| is enabled, then <code class="varname">properties</code> specifies a list of context | |
| property names and their corresponding values. Each property is followed | |
| immediately by the corresponding desired value. The list is terminated | |
| with zero. If a property is not specified in <code class="varname">properties</code>, | |
| then its default value is used (it is said to be specified implicitly). If | |
| <code class="varname">properties</code> is NULL or empty (points to a list whose first | |
| value is zero), all attributes take on their default value. | |
| </p> | |
| <p> | |
| If the extension | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| is enabled, then <code class="varname">properties</code> points to an attribute list, | |
| which is a array of ordered <attribute name, value> pairs terminated with | |
| zero. If an attribute is not specified in <code class="varname">properties</code>, | |
| then its default value is used (it is said to be specified implicitly). If | |
| <code class="varname">properties</code> is NULL or empty (points to a list whose first | |
| value is zero), all attributes take on their default values. | |
| </p> | |
| <p>List of supported <code class="varname">properties</code> (Table 4.5)</p> | |
| <div class="informaltable"> | |
| <table class="informaltable" border="1"> | |
| <colgroup> | |
| <col align="left" class="col1" /> | |
| <col align="left" class="col2" /> | |
| <col align="left" class="col3" /> | |
| </colgroup> | |
| <thead> | |
| <tr> | |
| <th align="left">cl_context_properties enum</th> | |
| <th align="left">Property value</th> | |
| <th align="left">Description</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CONTEXT_PLATFORM</code> | |
| </td> | |
| <td align="left">cl_platform_id</td> | |
| <td align="left">Specifies the platform to use.</td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CONTEXT_INTEROP_USER_SYNC</code> | |
| </td> | |
| <td align="left">cl_bool</td> | |
| <td align="left">Specifies whether the user is responsible for synchronization | |
| between OpenCL and other APIs. Please refer to the specific sections | |
| in the OpenCL 2.0 extension specification that describe sharing with | |
| other APIs for restrictions on using this flag. If | |
| <code class="constant">CL_CONTEXT_INTEROP_USER_SYNC</code> is not specified, a | |
| default of <code class="constant">CL_FALSE</code> is assumed. | |
| OpenCL / OpenGL sharing does not support the | |
| <code class="constant">CL_CONTEXT_INTEROP_USER_SYNC</code> | |
| property defined in table 4.5. Specifying this | |
| property when creating a context with OpenCL / | |
| OpenGL sharing will return an appropriate error.</td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CONTEXT_D3D10_DEVICE_KHR</code> | |
| </td> | |
| <td align="left"><span class="type">ID3D10Device</span> *</td> | |
| <td align="left"> | |
| Specifies the <span class="type">ID3D10Device</span> * to use for Direct3D 10 | |
| interoperability. The default value is NULL (applies if the extension | |
| <a class="citerefentry" href="cl_khr_d3d10_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d10_sharing</span></span></a> | |
| is supported) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CONTEXT_ADAPTER_D3D9_KHR</code> | |
| </td> | |
| <td align="left"><span class="type">IDirect3DDevice9</span> *</td> | |
| <td align="left"> | |
| Specifies an <span class="type">IDirect3DDevice9</span> | |
| to use for D3D9 interop (applies if the | |
| <a class="citerefentry" href="cl_khr_dx9_media_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_dx9_media_sharing</span></span></a> | |
| extension is supported) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CONTEXT_ADAPTER_D3D9EX_KHR</code> | |
| </td> | |
| <td align="left"><span class="type">IDirect3DDeviceEx</span> *</td> | |
| <td align="left"> | |
| Specifies an <span class="type">IDirect3DDevice9Ex</span> | |
| to use for D3D9 interop (applies if the | |
| <a class="citerefentry" href="cl_khr_dx9_media_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_dx9_media_sharing</span></span></a> | |
| extension is supported) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CONTEXT_ADAPTER_DXVA_KHR</code> | |
| </td> | |
| <td align="left"><span class="type">IDXVAHD_Device</span> *</td> | |
| <td align="left"> | |
| Specifies an <span class="type">IDXVAHD_Device</span> | |
| to use for DXVA interop (applies if the | |
| <a class="citerefentry" href="cl_khr_dx9_media_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_dx9_media_sharing</span></span></a> | |
| extension is supported) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_GL_CONTEXT_KHR</code> | |
| </td> | |
| <td align="left">0, OpenGL context handle</td> | |
| <td align="left"> | |
| OpenGL context to associated | |
| the OpenCL context with (available if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CGL_SHAREGROUP_KHR</code> | |
| </td> | |
| <td align="left">0, CGL share group handle</td> | |
| <td align="left"> | |
| CGL share group to associate | |
| the OpenCL context with (available if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_EGL_DISPLAY_KHR</code> | |
| </td> | |
| <td align="left"> <code class="constant">EGL_NO_DISPLAY</code>, <span class="type">EGLDisplay</span> handle </td> | |
| <td align="left"> | |
| EGLDisplay an OpenGL context was created with respect to (available if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_GLX_DISPLAY_KHR</code> | |
| </td> | |
| <td align="left">None, X handle</td> | |
| <td align="left"> | |
| X Display an OpenGL context was | |
| created with respect to (available if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_WGL_HDC_KHR</code> | |
| </td> | |
| <td align="left">0, HDC handle</td> | |
| <td align="left"> | |
| HDC an OpenGL context was created with respect to (available if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CONTEXT_D3D11_DEVICE_KHR</code> | |
| </td> | |
| <td align="left"><span class="type">ID3D11Device</span> *</td> | |
| <td align="left"> | |
| Specifies the <span class="type">ID3D11Device</span> * to use for Direct3D | |
| 11 interoperability. The default value is NULL. (Applies if the | |
| <a class="citerefentry" href="cl_khr_d3d11_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d11_sharing</span></span></a> | |
| extension is supported.) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CONTEXT_MEMORY_INITIALIZE_KHR</code> | |
| </td> | |
| <td align="left"> | |
| <span class="type">cl_context_memory- | |
| _initialize_khr</span> | |
| </td> | |
| <td align="left"> | |
| <p> | |
| Describes which memory types for the | |
| context must be initialized. This is a | |
| bit-field, where the following values are | |
| currently supported: | |
| </p> | |
| <p> | |
| <code class="constant">CL_CONTEXT_MEMORY_INITIALIZE_LOCAL_KHR</code> - Initialize local memory | |
| to zeros. | |
| </p> | |
| <p> | |
| <code class="constant">CL_CONTEXT_MEMORY_INITIALIZE_PRIVATE_KHR</code> - Initialize private | |
| memory to zeros. | |
| </p> | |
| <p> | |
| (applies if the | |
| <a class="citerefentry" href="cl_khr_initialize_memory.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_initialize_memory</span></span></a> | |
| extension is supported) | |
| </p> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td align="left"> | |
| <code class="constant">CL_CONTEXT_TERMINATE_KHR</code> | |
| </td> | |
| <td align="left"> | |
| <span class="type">cl_bool</span> | |
| </td> | |
| <td align="left"> | |
| Specifies whether the context can be | |
| terminated. The default value is | |
| <code class="constant">CL_FALSE</code>. | |
| (applies if the | |
| <a class="citerefentry" href="cl_khr_terminate_context.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_terminate_context</span></span></a> | |
| extension is supported) | |
| </td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </dd> | |
| <dt> | |
| <span class="term"> | |
| <code class="varname">num_devices</code> | |
| </span> | |
| </dt> | |
| <dd> | |
| <p> | |
| The number of devices specified in the <code class="varname">devices</code> argument. | |
| </p> | |
| </dd> | |
| <dt> | |
| <span class="term"> | |
| <code class="varname">devices</code> | |
| </span> | |
| </dt> | |
| <dd> | |
| <p> | |
| A pointer to a list of unique devices returned by | |
| <a class="citerefentry" href="clGetDeviceIDs.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceIDs</span></span></a> | |
| or sub-devices created by | |
| <a class="citerefentry" href="clCreateSubDevices.html"><span class="citerefentry"><span class="refentrytitle">clCreateSubDevices</span></span></a> | |
| for a platform. Duplicate devices specified in <code class="varname">devices</code> are ignored. | |
| </p> | |
| </dd> | |
| <dt> | |
| <span class="term"> | |
| <code class="varname">pfn_notify</code> | |
| </span> | |
| </dt> | |
| <dd> | |
| <p> | |
| A callback function that can be registered by the application. This callback | |
| function will be used by the OpenCL implementation to report information | |
| on errors during context creation as well as errors that occur at runtime | |
| in this context. This callback function may be called asynchronously by | |
| the OpenCL implementation. It is the application's responsibility to ensure | |
| that the callback function is thread-safe. If <code class="varname">pfn_notify</code> | |
| is NULL, no callback function is registered. The parameters to this callback | |
| function are: | |
| </p> | |
| <p><code class="varname">errinfo</code> is a pointer to an error string.</p> | |
| <p> | |
| <code class="varname">private_info</code> and <code class="varname">cb</code> represent a pointer | |
| to binary data that is returned by the OpenCL implementation that can be used | |
| to log additional information helpful in debugging the error. | |
| </p> | |
| <p><code class="varname">user_data</code> is a pointer to user supplied data.</p> | |
| <p> | |
| NOTE: There are a number of cases where error notifications need to be | |
| delivered due to an error that occurs outside a context. Such notifications | |
| may not be delivered through the <code class="varname">pfn_notify</code> callback. Where | |
| these notifications go is implementation-defined. | |
| </p> | |
| </dd> | |
| <dt> | |
| <span class="term"> | |
| <code class="varname">user_data</code> | |
| </span> | |
| </dt> | |
| <dd> | |
| <p> | |
| Passed as the <code class="varname">user_data</code> argument when | |
| <code class="varname">pfn_notify</code> is called. <code class="varname">user_data</code> can | |
| be NULL. | |
| </p> | |
| </dd> | |
| <dt> | |
| <span class="term"> | |
| <code class="varname">errcode_ret</code> | |
| </span> | |
| </dt> | |
| <dd> | |
| <p> | |
| Returns an appropriate error code. If <code class="varname">errcode_ret</code> is NULL, | |
| no error code is returned. | |
| </p> | |
| </dd> | |
| </dl> | |
| </div> | |
| </div> | |
| <div class="refsect1"> | |
| <a id="notes"></a> | |
| <h2>Notes</h2> | |
| <p> | |
| <code class="function">clCreateContext</code> and | |
| <a class="citerefentry" href="clCreateContextFromType.html"><span class="citerefentry"><span class="refentrytitle">clCreateContextFromType</span></span></a> | |
| perform an implicit retain. This is very helpful for 3rd party libraries, which | |
| typically get a context passed to them by the application. However, it is possible | |
| that the application may delete the context without informing the library. Allowing | |
| functions to attach to (i.e. retain) and release a context solves the problem of a | |
| context being used by a library no longer being valid. | |
| </p> | |
| <p> | |
| If the | |
| <a class="citerefentry" href="cl_khr_terminate_context.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_terminate_context</span></span></a> | |
| extension is enabled, <code class="constant">CL_CONTEXT_TERMINATE_KHR</code> can be | |
| specified in the context properties only if all devices associated with the | |
| context support the ability to support context termination (i.e. | |
| <code class="constant">CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR</code> is set for | |
| <code class="constant">CL_DEVICE_TERMINATE_CAPABILITY_KHR</code>). Otherwise, context | |
| creation fails with error code of <span class="errorname">CL_INVALID_PROPERTY</span>. | |
| </p> | |
| <p> | |
| If the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled: | |
| Attributes control sharing of OpenCL memory objects with OpenGL buffer, texture, and | |
| renderbuffer objects as described in section 9.7. Depending on the platform-specific API used to | |
| bind OpenGL contexts to the window system, the following attributes may be set to identify an | |
| OpenGL context: | |
| </p> | |
| <div class="itemizedlist"> | |
| <ul class="itemizedlist" style="list-style-type: disc; "> | |
| <li class="listitem" style="list-style-type: disc"> | |
| When the CGL binding API is supported, the attribute | |
| <code class="constant">CL_CGL_SHAREGROUP_KHR</code> | |
| should be set to a <code class="code">CGLShareGroup</code> handle to a | |
| CGL share group object. | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"> | |
| When the EGL binding API is supported, the attribute | |
| <code class="constant">CL_GL_CONTEXT_KHR</code> should be | |
| set to an <code class="code">EGLContext</code>handle to an | |
| OpenGL ES or OpenGL context, and the attribute | |
| <code class="constant">CL_EGL_DISPLAY_KHR</code> should be | |
| set to the EGLDisplay handle of the display used to | |
| create the OpenGL ES or OpenGL context. | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"> | |
| When the GLX binding API is supported, the attribute | |
| <code class="constant">CL_GL_CONTEXT_KHR</code> should | |
| be set to a <code class="code">GLXContext</code> handle to | |
| an OpenGL context, and the attribute | |
| <code class="constant">CL_GLX_DISPLAY_KHR</code> should | |
| be set to the Display handle of the X Window System | |
| display used to create the OpenGL context. | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"> | |
| When the WGL binding API is supported, the attribute | |
| <code class="constant">CL_GL_CONTEXT_KHR</code> should | |
| be set to an HGLRC handle to an OpenGL context, and | |
| the attribute <code class="constant">CL_WGL_HDC_KHR</code> | |
| should be set to the HDC handle of the display used | |
| to create the OpenGL context. | |
| </li> | |
| </ul> | |
| </div> | |
| <p> | |
| If the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled: | |
| Memory objects created in the context so specified may be shared with the specified OpenGL or | |
| OpenGL ES context (as well as with any other OpenGL contexts on the share list of that context, | |
| according to the description of sharing in the GLX 1.4 and EGL 1.4 specifications, and the WGL | |
| documentation for OpenGL implementations on Microsoft Windows), or with the explicitly | |
| identified OpenGL share group for CGL. If no OpenGL or OpenGL ES context or share group is | |
| specified in the attribute list, then memory objects may not be shared, and calling any of the | |
| commands in section 9.7 will result in a <span class="errorname">CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR</span> | |
| error. | |
| </p> | |
| </div> | |
| <div class="refsect1"> | |
| <a id="errors"></a> | |
| <h2>Errors</h2> | |
| <p> | |
| <code class="function">clCreateContext</code> returns a valid non-zero context and | |
| <code class="varname">errcode_ret</code> is set to <span class="errorname">CL_SUCCESS</span> if the | |
| context is created successfully. Otherwise, it returns a NULL value with 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_PLATFORM</span> if <code class="varname">properties</code> | |
| is NULL and no platform could be selected or if platform value specified | |
| in <code class="varname">properties</code> is not a valid platform. (If the extension | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| is enabled, then this error is replaced with | |
| <code class="constant">CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR</code>; see below.) | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_PROPERTY</span> if context property name in | |
| <code class="varname">properties</code> is not a supported property name, if the | |
| value specified for a supported property name is not valid, or if the | |
| same property name is specified more than once. However if the extension | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> is | |
| enabled, then <code class="constant">CL_INVALID_PROPERTY</code> is returned if an attribute | |
| name other than those listed in the table for <code class="varname">properties</code> | |
| above or if <code class="constant">CL_CONTEXT_INTEROP_USER_SYNC</code> is specified in | |
| <code class="varname">properties</code>. | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_PROPERTY</span> if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled and an attribute name other than those | |
| specified in the table above (table 4.5) or if | |
| <code class="constant">CL_CONTEXT_INTEROP_USER_SYNC</code> is | |
| specified in <code class="varname">properties</code>. | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_VALUE</span> if <code class="varname">devices</code> is NULL; if | |
| <code class="varname">num_devices</code> is equal to zero; or if <code class="varname">pfn_notify</code> | |
| is NULL but <code class="varname">user_data</code> is not NULL. | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_DEVICE</span> if <code class="varname">devices</code> contains an invalid device. | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_OPERATION</span> if Direct3D 10 interoperability is | |
| specified by setting <code class="constant">CL_INVALID_D3D10_DEVICE_KHR</code> to a non-NULL | |
| value, and interoperability with another graphics API is also specified (if the | |
| <a class="citerefentry" href="cl_khr_d3d10_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d10_sharing</span></span></a> | |
| extension is enabled). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_DEVICE_NOT_AVAILABLE</span> if a device in <code class="varname">devices</code> | |
| is currently not available even though the device was returned by | |
| <a class="citerefentry" href="clGetDeviceIDs.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceIDs</span></span></a>. | |
| </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> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_D3D10_DEVICE_KHR</span> if the Direct3D | |
| 10 device specified for interoperability is not compatible with | |
| the devices against which the context is to be created (if the | |
| <a class="citerefentry" href="cl_khr_d3d10_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d10_sharing</span></span></a> | |
| extension is enabled). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_D3D10_DEVICE_KHR</span> if the value of the property | |
| <code class="constant">CL_CONTEXT_D3D10_DEVICE_KHR</code> is non-NULL and does not specify | |
| a valid Direct3D 10 device with which the <code class="varname">cl_device_ids</code> | |
| against which this context is to be created may interoperate (if the | |
| <a class="citerefentry" href="cl_khr_d3d10_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d10_sharing</span></span></a> | |
| extension is enabled). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR</span> when an invalid OpenGL | |
| context or share group object handle is specified in <code class="varname">properties</code> (only | |
| if the <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR</span> if no OpenGL or | |
| OpenGL ES context or share group is specified in the attribute list given to | |
| <a class="citerefentry" href="clCreateContext.html"><span class="citerefentry"><span class="refentrytitle">clCreateContext</span></span></a> | |
| and any of the commands in section 9.7 are called. (if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> extension | |
| is enabled) | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR</span> if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled and if a context was specified by any of the following means: | |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem" style="list-style-type: disc"> | |
| A context specified for an EGL-based OpenGL ES or OpenGL implementation | |
| by setting the attributes <code class="constant">CL_GL_CONTEXT_KHR</code> and | |
| <code class="constant">CL_EGL_DISPLAY_KHR</code>. | |
| </li><li class="listitem" style="list-style-type: disc"> | |
| A context was specified for a GLX-based OpenGL implementation by | |
| setting the attributes <code class="constant">CL_GL_CONTEXT_KHR</code> and | |
| <code class="constant">CL_GLX_DISPLAY_KHR</code>. | |
| </li><li class="listitem" style="list-style-type: disc"> | |
| A context was specified for a WGL-based OpenGL implementation by | |
| setting the attributes <code class="constant">CL_GL_CONTEXT_KHR</code> and | |
| <code class="constant">CL_WGL_HDC_KHR</code>. | |
| </li></ul></div> | |
| and any of the following conditions hold: | |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem" style="list-style-type: disc"> | |
| The specified display and context attributes do not identify a valid | |
| OpenGL or OpenGL ES context. | |
| </li><li class="listitem" style="list-style-type: disc"> | |
| The specified context does not support buffer and renderbuffer objects. | |
| </li><li class="listitem" style="list-style-type: disc"> | |
| The specified context is not compatible with the OpenCL context being | |
| created (for example, it exists in a physically distinct address space, | |
| such as another hardware device, or does not support sharing data with | |
| OpenCL due to implementation restrictions). | |
| </li></ul></div></li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR</span> if a | |
| share group was specified for a CGL-based OpenGL implementation by | |
| setting the attribute <code class="constant">CL_CGL_SHAREGROUP_KHR</code>, and the | |
| specified share group does not identify a valid CGL share group object (if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> extension | |
| is enabled). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_OPERATION</span> if the | |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> | |
| extension is enabled and if a context was specified as described above | |
| and any of the following conditions hold: | |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem" style="list-style-type: disc"> | |
| A context or share group object was specified for one of CGL, EGL, GLX, or WGL | |
| and the OpenGL implementation does not support that window-system binding API. | |
| </li><li class="listitem" style="list-style-type: disc"> | |
| More than one of the attributes <code class="constant">CL_CGL_SHAREGROUP_KHR</code>, | |
| <code class="constant">CL_EGL_DISPLAY_KHR</code>, <code class="constant">CL_GLX_DISPLAY_KHR</code>, | |
| and <code class="constant">CL_WGL_HDC_KHR</code> is set to a non-default value. | |
| </li><li class="listitem" style="list-style-type: disc"> | |
| Both of the attributes <code class="constant">CL_CGL_SHAREGROUP_KHR</code> and | |
| <code class="constant">CL_GL_CONTEXT_KHR</code> are set to non-default values. | |
| </li><li class="listitem" style="list-style-type: disc"> | |
| Any of the devices specified in the <code class="varname">devices</code> | |
| argument cannot support OpenCL | |
| objects which share the data store of an OpenGL object, as described in | |
| section 9.7. | |
| </li></ul></div></li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_DX9_MEDIA_ADAPTER_KHR</span> if the | |
| media adapter specified for interoperability is not compatible with | |
| the devices against which the context is to be created (only if the | |
| <a class="citerefentry" href="cl_khr_dx9_media_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_dx9_media_sharing</span></span></a> | |
| extension is supported). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_ADAPTER_KHR</span> if | |
| any of the values of the properties <code class="constant">CL_CONTEXT_ADAPTER_D3D9_KHR</code>, | |
| <code class="constant">CL_CONTEXT_ADAPTER_D3D9EX_KHR</code> or | |
| <code class="constant">CL_CONTEXT_ADAPTER_DXVA_KHR</code> is non-NULL and | |
| does not specify a valid media adapter with which the <code class="varname">cl_device_ids</code> | |
| against which this context is to be created may interoperate (only if the | |
| <a class="citerefentry" href="cl_khr_dx9_media_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_dx9_media_sharing</span></span></a> | |
| extension is supported). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_OPERATION</span> if interoperability is | |
| specified by setting <code class="constant">CL_CONTEXT_ADAPTER_D3D9_KHR</code>, | |
| <code class="constant">CL_CONTEXT_ADAPTER_D3D9EX_KHR</code> or | |
| <code class="constant">CL_CONTEXT_ADAPTER_DXVA_KHR</code> to a non-NULL value, and | |
| interoperability with another graphics API is also specified (only if the | |
| <a class="citerefentry" href="cl_khr_dx9_media_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_dx9_media_sharing</span></span></a> | |
| extension is supported). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_OPERATION</span> | |
| if Direct3D 11 interoperability is specified by setting | |
| <code class="constant">CL_INVALID_D3D11_DEVICE_KHR</code> to a non-NULL value, and | |
| interoperability with another graphics API is also specified (only if the | |
| <a class="citerefentry" href="cl_khr_d3d11_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d11_sharing</span></span></a> | |
| extension is supported). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_D3D11_DEVICE_KHR</span> if the value of the property | |
| <code class="constant">CL_CONTEXT_D3D11_DEVICE_KHR</code> is non-NULL and does not specify | |
| a valid Direct3D 11 device with which the <code class="varname">cl_device_ids</code> | |
| against which this context is to be created may interoperate (only if the | |
| <a class="citerefentry" href="cl_khr_d3d11_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d11_sharing</span></span></a> | |
| extension is supported). | |
| </li> | |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_D3D11_DEVICE_KHR</span> if the Direct3D | |
| 11 device specified for interoperability is not compatible with | |
| the devices against which the context is to be created (only if the | |
| <a class="citerefentry" href="cl_khr_d3d11_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d11_sharing</span></span></a> | |
| extension is supported). | |
| </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.pdf#page=90" target="OpenCL Spec">OpenCL Specification</a> | |
| </p> | |
| </div> | |
| <div class="refsect1"> | |
| <a id="seealso"></a> | |
| <h2>Also see</h2> | |
| <p> | |
| <a class="citerefentry" href="clGetDeviceIDs.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceIDs</span></span></a>, | |
| <a class="citerefentry" href="clCreateContextFromType.html"><span class="citerefentry"><span class="refentrytitle">clCreateContextFromType</span></span></a>, | |
| <a class="citerefentry" href="clRetainContext.html"><span class="citerefentry"><span class="refentrytitle">clRetainContext</span></span></a>, | |
| <a class="citerefentry" href="clReleaseContext.html"><span class="citerefentry"><span class="refentrytitle">clReleaseContext</span></span></a>, | |
| <a class="citerefentry" href="clGetContextInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetContextInfo</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> |