| <?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>clCreateContextFromType</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /> |
| <meta name="keywords" content="clCreateContextFromType" /> |
| </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="clCreateContextFromType"></a> |
| <h1> |
| clCreateContextFromType |
| </h1> |
| <p> |
| Create an OpenCL context from a device type that identifies the specific device(s) to use. |
| </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"> |
| clCreateContextFromType |
| </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="enums.html#cl_device_type" target="pagedisplay">cl_device_type</a> |
| <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">device_type</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="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 of supported properties is described in the table |
| below. <code class="varname">properties</code> can also be NULL in which case the |
| platform that is selected is implementation-defined. |
| </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 supported, <code class="varname">properties</code> |
| points to an attribute list whose format and valid contents |
| are identical to the <code class="varname">properties</code> argument of |
| <a class="citerefentry" href="clCreateContext.html"><span class="citerefentry"><span class="refentrytitle">clCreateContext</span></span></a>. |
| </p> |
| <p> |
| 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, <code class="varname">properties</code> |
| points to an attribute list whose format and valid contents |
| are identical to the <code class="varname">properties</code> argument of |
| <a class="citerefentry" href="clCreateContext.html"><span class="citerefentry"><span class="refentrytitle">clCreateContext</span></span></a>. |
| </p> |
| <p> |
| 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 supported, <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 table 4.5) 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 |
| <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, <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 table 4.5) 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">device_type</span> |
| </dt> |
| <dd> |
| <p> |
| A bit-field that identifies the type of device and is described in the table below. |
| </p> |
| <div class="informaltable"> |
| <table class="informaltable" border="1"> |
| <colgroup> |
| <col align="left" class="col1" /> |
| <col align="left" class="col2" /> |
| </colgroup> |
| <thead> |
| <tr> |
| <th align="left">cl_device_type</th> |
| <th align="left">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_TYPE_CPU</code> |
| </td> |
| <td align="left"> |
| An OpenCL device that is the host processor. The host processor |
| runs the OpenCL implementations and is a single or multi-core CPU. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_TYPE_GPU</code> |
| </td> |
| <td align="left"> |
| An OpenCL device that is a GPU. By this we mean that the device |
| can also be used to accelerate a 3D API such as OpenGL or DirectX. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_TYPE_ACCELERATOR</code> |
| </td> |
| <td align="left"> |
| Dedicated OpenCL accelerators (for example the IBM CELL Blade). These |
| devices communicate with the host processor using a peripheral |
| interconnect such as PCIe. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_TYPE_CUSTOM</code> |
| </td> |
| <td align="left"> |
| Dedicated accelerators that do not support programs written in |
| OpenCL C. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_TYPE_DEFAULT</code> |
| </td> |
| <td align="left"> |
| The default OpenCL device in the system. The default device cannot |
| be a <code class="constant">CL_DEVICE_TYPE_CUSTOM</code> device. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_TYPE_ALL</code> |
| </td> |
| <td align="left"> |
| All OpenCL devices available in the system except |
| <code class="constant">CL_DEVICE_TYPE_CUSTOM</code> devices. |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </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> |
| 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> |
| Return 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="description"></a> |
| <h2>Description</h2> |
| <p> |
| Only devices that are returned by |
| <a class="citerefentry" href="clGetDeviceIDs.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceIDs</span></span></a> for |
| <code class="varname">device_type</code> are used to create the context. The context does not |
| reference any sub-devices that may have been created from these devices. |
| </p> |
| </div> |
| <div class="refsect1"> |
| <a id="notes"></a> |
| <h2>Notes</h2> |
| <p> |
| <code class="function">clCreateContextFromType</code> may return all or a subset of the actual |
| physical devices present in the platform and that match <code class="varname">device_type</code>. |
| </p> |
| <p> |
| <code class="function">clCreateContextFromType</code> and |
| <a class="citerefentry" href="clCreateContext.html"><span class="citerefentry"><span class="refentrytitle">clCreateContext</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> |
| </div> |
| <div class="refsect1"> |
| <a id="errors"></a> |
| <h2>Errors</h2> |
| <p> |
| <code class="function">clCreateContextFromType</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 |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a> |
| extension is supported, this error is replaced (or not) by |
| <code class="constant">CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR</code> and possibly |
| <code class="constant">CL_INVALID_OPERATION</code> (see below and section 9.5.4 of the |
| spec for clarification). </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, or if the value |
| specified for a supported property name is not valid, or if the same property |
| name is specified more than once. |
| </li> |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_VALUE</span> 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_TYPE</span> if <code class="varname">device_type</code> |
| is not a valid value. |
| </li> |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_DEVICE_NOT_AVAILABLE</span> if no devices that |
| match <code class="varname">device_type</code> and property values specified in |
| <code class="varname">properties</code> are currently available. |
| </li> |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_DEVICE_NOT_FOUND</span> if no devices that match |
| <code class="varname">device_type</code> and property values specified in |
| <code class="varname">properties</code> were found. |
| </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_GL_SHAREGROUP_REFERENCE_KHR</span> when an invalid OpenGL |
| context or share group object handle is specified in <code class="varname">properties</code> |
| 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, then memory objects may not be shared, and calling |
| any of the commands in section 9.7 will result in this error (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"><p> |
| <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: |
| </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem" style="list-style-type: disc"> |
| 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"> |
| 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"> |
| 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 (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_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 cl_device_ids |
| 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 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_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> |
| <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> |
| </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#namedest=clCreateContextFromType" target="OpenCL Spec">OpenCL Specification</a> |
| </p> |
| </div> |
| <div class="refsect1"> |
| <a id="seealso"></a> |
| <h2>Also see</h2> |
| <p> |
| <a class="citerefentry" href="clCreateContext.html"><span class="citerefentry"><span class="refentrytitle">clCreateContext</span></span></a>, |
| <a class="citerefentry" href="clGetContextInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetContextInfo</span></span></a>, |
| <a class="citerefentry" href="clReleaseContext.html"><span class="citerefentry"><span class="refentrytitle">clReleaseContext</span></span></a>, |
| <a class="citerefentry" href="clRetainContext.html"><span class="citerefentry"><span class="refentrytitle">clRetainContext</span></span></a>, |
| <a class="citerefentry" href="clGetContextInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetContextInfo</span></span></a>, |
| <a class="citerefentry" href="classDiagram.html"><span class="citerefentry"><span class="refentrytitle">Cardinality Diagram</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> |