| <?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>clGetDeviceInfo</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /> |
| <meta name="keywords" content="clGetDeviceInfo" /> |
| </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="clGetDeviceInfo"></a> |
| <h1>clGetDeviceInfo</h1> |
| <p>Get information about an OpenCL device.</p> |
| </div> |
| <div class="refsynopsisdiv"> |
| <h2></h2> |
| <div class="funcsynopsis"> |
| <table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"> |
| <tr valign="bottom"> |
| <td> |
| <code xmlns="http://www.w3.org/1999/xhtml" class="funcdef"> |
| <a class="link" href="scalarDataTypes.html" target="pagedisplay">cl_int</a> |
| <strong class="fsfunc">clGetDeviceInfo</strong> |
| (</code> |
| <td> |
| <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">device</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_info" target="pagedisplay">cl_device_info</a> |
| <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">param_name</var> |
| , </td> |
| </tr> |
| <tr valign="top"> |
| <td> </td> |
| <td> |
| <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="pagedisplay">size_t</a> |
| <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">param_value_size</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> |
| <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*param_value</var> |
| , </td> |
| </tr> |
| <tr valign="top"> |
| <td> </td> |
| <td> |
| <a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="pagedisplay">size_t</a> |
| <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*param_value_size_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">device</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| A device returned by |
| <a class="citerefentry" href="clGetDeviceIDs.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceIDs</span></span></a>. |
| </p> |
| <p> |
| May be a device returned by |
| <a class="citerefentry" href="clGetDeviceIDs.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceIDs</span></span></a> |
| or a sub-device created by |
| <a class="citerefentry" href="clCreateSubDevices.html"><span class="citerefentry"><span class="refentrytitle">clCreateSubDevices</span></span></a>. |
| If <code class="varname">device</code> is a sub-device, the specific information for |
| the sub-device will be returned. The information that can be queried using |
| <code class="function">clGetDeviceInfo</code> is specified in the table below (Table 4.3). |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="varname">param_value</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| A pointer to memory location where appropriate values for a given |
| <code class="varname">param_name</code> as specified in the table below will be |
| returned. If <code class="varname">param_value</code> is NULL, it is ignored. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="varname">param_value_size</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Specifies the size in bytes of memory pointed to by |
| <code class="varname">param_value</code>. This size in bytes must be ≥ size of |
| return type specified in the table below. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="varname">param_value_size_ret</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| Returns the actual size in bytes of data being queried by |
| <code class="varname">param_value</code>. If <code class="varname">param_value_size_ret</code> |
| is NULL, it is ignored. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"> |
| <code class="varname">param_name</code> |
| </span> |
| </dt> |
| <dd> |
| <p> |
| An enumeration constant that identifies the device information being queried. It |
| can be one of the values as specified in the table below. |
| </p> |
| </dd> |
| <dt> |
| <span class="term"></span> |
| </dt> |
| <dd> |
| <p> |
| Table 4.3: |
| </p> |
| <div class="informaltable"> |
| <table border="1"> |
| <colgroup> |
| <col align="left" class="col1" /> |
| <col align="left" class="col2" /> |
| </colgroup> |
| <thead> |
| <tr> |
| <th align="left">cl_device_info</th> |
| <th align="left">Return Type</th> |
| <th align="left">Description</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_ADDRESS_BITS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| The default compute device address space |
| size of the global address space specified |
| as an unsigned integer value in bits. |
| Currently supported values are 32 or 64 bits. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_AVAILABLE</code> |
| </td> |
| <td align="left">cl_bool</td> |
| <td align="left"> |
| Is <code class="constant">CL_TRUE</code> if the device is available and |
| <code class="constant">CL_FALSE</code> otherwise. A device is |
| considered to be available if the device can |
| be expected to successfully execute |
| commands enqueued to the device |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_BUILT_IN_KERNELS</code> |
| </td> |
| <td align="left">char[]</td> |
| <td align="left"> |
| A semi-colon separated list of built-in kernels supported by the device. |
| An empty string is returned if no built-in kernels are supported by |
| the device. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_COMPILER_AVAILABLE</code> |
| </td> |
| <td align="left">cl_bool</td> |
| <td align="left"> |
| Is <code class="constant">CL_FALSE</code> if the implementation does |
| not have a compiler available to compile the program source. |
| Is <code class="constant">CL_TRUE</code> if the compiler is available. This can |
| be <code class="constant">CL_FALSE</code> for the embedded platform profile only. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_DOUBLE_FP_CONFIG</code> |
| </td> |
| <td align="left"> |
| <p>cl_device_-</p> |
| <p>fp_config</p> |
| </td> |
| <td align="left"> |
| Describes double precision floating-point capability of the |
| OpenCL device. This is a bit-field that describes one or more of the following values: |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem" style="list-style-type: disc"><code class="constant">CL_FP_DENORM</code> - denorms are supported.</li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_FP_INF_NAN</code> - INF and NaNs are supported.</li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_FP_ROUND_TO_NEAREST</code> - round to nearest even rounding mode supported.</li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_FP_ROUND_TO_ZERO</code> - round to zero rounding mode supported.</li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_FP_ROUND_TO_INF</code> - |
| round to positive and negative infinity rounding modes supported.</li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_FP_FMA</code> - IEEE754-2008 fused multiply-add is supported. </li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_FP_SOFT_FLOAT</code> - Basic floating-point operations (such as |
| addition, subtraction, multiplication) are implemented in software.</li></ul></div> |
| |
| <p> |
| Double precision is an optional feature so the mandated minimum double |
| precision floating-point capability is 0. |
| </p> |
| |
| <p> |
| If double precision is supported by the device, then the minimum double |
| precision floating-point capability must be: <code class="constant">CL_FP_FMA</code> |
| | <code class="constant">CL_FP_ROUND_TO_NEAREST</code> | |
| <code class="constant">CL_FP_INF_NAN</code> | <code class="constant">CL_FP_DENORM</code>. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_ENDIAN_LITTLE</code> |
| </td> |
| <td align="left">cl_bool</td> |
| <td align="left"> |
| Is <code class="constant">CL_TRUE</code> if the OpenCL device is a little endian |
| device and <code class="constant">CL_FALSE</code> otherwise. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_ERROR_ |
| CORRECTION_SUPPORT</code> |
| </td> |
| <td align="left">cl_bool</td> |
| <td align="left"> |
| Is <code class="constant">CL_TRUE</code> if the device implements error correction |
| for all accesses to compute device memory (global and constant). |
| Is <code class="constant">CL_FALSE</code> if the device does not implement such |
| error correction. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_EXECUTION_CAPABILITIES</code> |
| </td> |
| <td align="left"> <p>cl_device_-</p><p>exec_capabilities</p> </td> |
| <td align="left"> |
| Describes the execution capabilities of the device. This is |
| a bit-field that describes one or more of the following values: |
| <p><code class="constant">CL_EXEC_KERNEL</code> - The OpenCL device can execute |
| OpenCL kernels.</p> <p><code class="constant">CL_EXEC_NATIVE_KERNEL</code> |
| - The OpenCL device can execute native kernels.</p> <p>The mandated |
| minimum capability is <code class="constant">CL_EXEC_KERNEL</code>.</p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_EXTENSIONS</code> |
| </td> |
| <td align="left">char[]</td> |
| <td align="left"> |
| Returns a space separated list of extension names (the extension names themselves do |
| not contain any spaces) supported by the device. The list of extension names returned |
| can be vendor supported extension names and one or more of the following Khronos |
| approved extension names: |
| |
| <p> |
| </p><div class="literallayout"><p><br /> |
| <a class="citerefentry" href="cl_khr_int64_base_atomics.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_int64_base_atomics</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_int64_extended_atomics.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_int64_extended_atomics</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_fp16.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_fp16</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_gl_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_sharing</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_gl_event.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_event</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_d3d10_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d10_sharing</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_dx9_media_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_dx9_media_sharing</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_d3d11_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_d3d11_sharing</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_gl_depth_images.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_depth_images</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_gl_msaa_sharing.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_gl_msaa_sharing</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_initialize_memory.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_initialize_memory</span></span></a><br /> |
| cl_khr_context_abort<br /> |
| <a class="citerefentry" href="cl_khr_spir.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_spir</span></span></a><br /> |
| <a class="citerefentry" href="cl_khr_srgb_image_writes.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_srgb_image_writes</span></span></a><br /> |
| </p></div><p> |
| </p> |
| |
| <p> |
| The following approved Khronos extension names |
| must be returned by all device that support OpenCL C 2.0:</p> |
| <p> |
| </p><div class="literallayout"><p><br /> |
| cl_khr_byte_addressable_store<br /> |
| <a class="citerefentry" href="cl_khr_fp64.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_fp64</span></span></a> (for backward compatibility if double precision is supported)<br /> |
| <a class="citerefentry" href="cl_khr_3d_image_writes.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_3d_image_writes</span></span></a><br /> |
| cl_khr_image2d_from_buffer<br /> |
| cl_khr_depth_images<br /> |
| </p></div><p> |
| </p> |
| |
| <p> |
| Please refer to the OpenCL 2.0 Extension Specification for a detailed description of these extensions. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_GLOBAL_MEM_CACHE_SIZE</code> |
| </td> |
| <td align="left">cl_ulong</td> |
| <td align="left">Size of global memory cache in bytes.</td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_GLOBAL_MEM_CACHE_TYPE</code> |
| </td> |
| <td align="left"> <p>cl_device_mem-</p><p>_cache_type</p> </td> |
| <td align="left"> |
| Type of global memory cache supported. Valid values are: |
| <code class="constant">CL_NONE</code>, <code class="constant">CL_READ_ONLY_CACHE</code>, |
| and <code class="constant">CL_READ_WRITE_CACHE</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_GLOBAL_ |
| MEM_CACHELINE_SIZE</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left">Size of global memory cache line in bytes.</td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_GLOBAL_MEM_SIZE</code> |
| </td> |
| <td align="left">cl_ulong</td> |
| <td align="left">Size of global device memory in bytes.</td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_GLOBAL_VARIABLE_ |
| PREFERRED_TOTAL_SIZE</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Maximum preferred total size, in bytes, of |
| all program variables in the global address |
| space. This is a performance hint. An |
| implementation may place such variables |
| in storage with optimized device access. |
| This query returns the capacity of such |
| storage. The minimum value is 0. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IL_VERSION</code> |
| </td> |
| <td align="left">char []</td> |
| <td align="left"> |
| The intermediate languages that can be |
| supported by |
| <a class="citerefentry" href="clCreateProgramWithIL.html"><span class="citerefentry"><span class="refentrytitle">clCreateProgramWithIL</span></span></a> |
| for this device. Returns a space-separated |
| list of IL version strings of the form |
| <IL_Prefix>_<Major_Version>.<Minor_Version>. |
| For OpenCL 2.1, "SPIR-V" is a |
| required IL prefix. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE2D_MAX_HEIGHT</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Max height of 2D image in pixels. The minimum value is 16384 if |
| <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> is <code class="constant">CL_TRUE</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE2D_MAX_WIDTH</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Max width of 2D image or 1D image not created from a buffer object in pixels. |
| The minimum value is 16384 if <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> |
| is <code class="constant">CL_TRUE</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE3D_MAX_DEPTH</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Max depth of 3D image in pixels. The minimum value is 2048 if |
| <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> is <code class="constant">CL_TRUE</code>.</td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE3D_MAX_HEIGHT</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Max height of 3D image in pixels. The minimum value is 2048 if |
| <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> is <code class="constant">CL_TRUE</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE3D_MAX_WIDTH</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Max width of 3D image in pixels. The minimum value is 2048 if |
| <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> is <code class="constant">CL_TRUE</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE_BASE_ |
| ADDRESS_ALIGNMENT</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| This query should be used when a 2D |
| image is created from a buffer which was |
| created using <code class="constant">CL_MEM_USE_HOST_PTR</code>. |
| The value returned must be a power of 2. |
| This query specifies the minimum |
| alignment in pixels of the <code class="varname">host_ptr</code> |
| specified to <a class="citerefentry" href="clCreateBuffer.html"><span class="citerefentry"><span class="refentrytitle">clCreateBuffer</span></span></a>. |
| If the device does not support images, this |
| value must be 0. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE_MAX_ARRAY_SIZE</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Max number of images in a 1D or 2D image array. The minimum value is 2048 if |
| <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> is <code class="constant">CL_TRUE</code> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE_MAX_BUFFER_SIZE</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Max number of pixels for a 1D image created from a buffer object. |
| The minimum value is 65536 if <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> |
| is <code class="constant">CL_TRUE</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE_PITCH_ALIGNMENT</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| The row pitch alignment size in pixels for |
| 2D images created from a buffer. The |
| value returned must be a power of 2. |
| If the device does not support images, this |
| value must be 0. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> |
| </td> |
| <td align="left">cl_bool</td> |
| <td align="left"> |
| Is <code class="constant">CL_TRUE</code> if images are supported by the OpenCL |
| device and <code class="constant">CL_FALSE</code> otherwise. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_LINKER_AVAILABLE</code> |
| </td> |
| <td align="left">cl_bool</td> |
| <td align="left"> |
| Is <code class="constant">CL_FALSE</code> if the implementation does not |
| have a linker available. Is <code class="constant">CL_TRUE</code> if the |
| linker is available. This can be <code class="constant">CL_FALSE</code> for the embedded |
| platform profile only. This must be <code class="constant">CL_TRUE</code> if |
| <code class="constant">CL_DEVICE_COMPILER_AVAILABLE</code> is <code class="constant">CL_TRUE</code> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_LOCAL_MEM_SIZE</code> |
| </td> |
| <td align="left">cl_ulong</td> |
| <td align="left"> |
| Size of local memory region in bytes. The minimum value is 32 KB for |
| devices that are not of type <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_LOCAL_MEM_TYPE</code> |
| </td> |
| <td align="left"> <p>cl_device_-</p><p>local_mem_type</p></td> |
| <td align="left"> |
| Type of local memory supported. This can be set to |
| <code class="constant">CL_LOCAL</code> implying dedicated local memory storage |
| such as SRAM, or <code class="constant">CL_GLOBAL</code>. For custom devices, |
| <code class="constant">CL_NONE</code> can also be returned indicating no local |
| memory support. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_CLOCK_FREQUENCY</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left">Maximum configured clock frequency of the device in MHz.</td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_COMPUTE_UNITS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| The number of parallel compute units on the OpenCL device. A work-group executes |
| on a single compute unit. The minimum value is 1. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_CONSTANT_ARGS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Max number of arguments declared with the <a class="citerefentry" href="constant.html"><span class="citerefentry"><span class="refentrytitle">__constant</span></span></a> |
| qualifier in a kernel. The minimum value is 8 for devices that are not |
| of type <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_CONSTANT_ |
| BUFFER_SIZE</code> |
| </td> |
| <td align="left">cl_ulong</td> |
| <td align="left"> |
| Max size in bytes of a constant buffer allocation. The |
| minimum value is 64 KB for devices that are not of type |
| <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_GLOBAL_ |
| VARIABLE_SIZE</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| The maximum number of bytes of storage |
| that may be allocated for any single |
| variable in program scope or inside a |
| function in OpenCL C declared in the |
| global address space. |
| The minimum value is 64 KB. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_MEM_ALLOC_SIZE</code> |
| </td> |
| <td align="left">cl_ulong</td> |
| <td align="left"> |
| Max size of memory object allocation in bytes. The minimum value is |
| max(min(1024*1024*1024, 1/4th of |
| <code class="constant">CL_DEVICE_GLOBAL_MEM_SIZE</code>), 32*1024*1024) for devices |
| that are not of type <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_NUM_SUB_GROUPS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Maximum number of sub-groups in a |
| work-group that a device is capable of |
| executing on a single compute unit, for any |
| given kernel-instance running on the |
| device. The minimum value is 1. (Refer |
| also to |
| <a class="citerefentry" href="clGetKernelSubGroupInfo.html"><span class="citerefentry"><span class="refentrytitle">clGetKernelSubGroupInfo</span></span></a>.) |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_ON_DEVICE_EVENTS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| The maximum number of events in use by |
| a device queue. These refer to events |
| returned by the <code class="function">enqueue_</code> built-in |
| functions to a device queue or user events |
| returned by the |
| <a class="citerefentry" href="create_user_event.html"><span class="citerefentry"><span class="refentrytitle">create_user_event</span></span></a> |
| built-in function that have not been |
| released. |
| The minimum value is 1024. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_ON_DEVICE_QUEUES</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| The maximum number of device queues |
| that can be created per context. |
| The minimum value is 1. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_PARAMETER_SIZE</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Max size in bytes of all arguments that can be passed to a |
| kernel. The minimum value is 1024 for devices that are not of type |
| <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. For this minimum value, |
| only a maximum of 128 arguments can be passed to a kernel. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_PIPE_ARGS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| The maximum number of pipe objects that |
| can be passed as arguments to a kernel. |
| The minimum value is 16. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_READ_IMAGE_ARGS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Max number of image objects arguments |
| of a kernel declared with the <code class="code">read_only</code> |
| qualifier. The |
| minimum value is 128 if <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> |
| is <code class="constant">CL_TRUE</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_READ_ |
| WRITE_IMAGE_ARGS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Max number of image objects arguments |
| of a kernel declared with the <code class="code">write_only</code> or <code class="code">read_write</code> |
| qualifier. The |
| minimum value is 64 if <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> |
| is <code class="constant">CL_TRUE</code>. |
| NOTE: <code class="constant">CL_DEVICE_MAX_WRITE_IMAGE_ARGS</code> |
| is only there for backward compatibility. |
| <code class="constant">CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS</code> |
| should be used instead. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_SAMPLERS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Maximum number of samplers that can be used in a kernel. The minimum |
| value is 16 if <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> |
| is <code class="constant">CL_TRUE</code>. (Also see |
| <a class="citerefentry" href="sampler_t.html"><span class="citerefentry"><span class="refentrytitle">sampler_t</span></span></a>.) |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_WORK_GROUP_SIZE</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Maximum number of work-items in a |
| work-group that a device is capable of |
| executing on a single compute unit, for any |
| given kernel-instance running on the device. |
| (Refer also to |
| <a class="citerefentry" href="clEnqueueNDRangeKernel.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueNDRangeKernel</span></span></a>) |
| and <code class="constant">CL_KERNEL_WORK_GROUP_SIZE</code>). |
| The minimum value is 1. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_WORK_ITEM_ |
| DIMENSIONS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Maximum dimensions that specify the global and local |
| work-item IDs used by the data parallel execution model. (Refer to |
| <a class="citerefentry" href="clEnqueueNDRangeKernel.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueNDRangeKernel</span></span></a>). |
| The minimum value is 3 for devices that are not of type |
| <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_WORK_ITEM_SIZES</code> |
| </td> |
| <td align="left">size_t[]</td> |
| <td align="left"> |
| <p> |
| Maximum number of work-items that can be |
| specified in each dimension of the work-group to |
| <a class="citerefentry" href="clEnqueueNDRangeKernel.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueNDRangeKernel</span></span></a>. |
| </p> |
| |
| <p> |
| Returns <code class="varname">n</code> <span class="type">size_t</span> entries, where |
| <code class="varname">n</code> is the value returned by the query for |
| <code class="constant">CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS</code>. |
| </p> |
| |
| <p> |
| The minimum value is (1, 1, 1) for devices that are not of type |
| <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MAX_WRITE_IMAGE_ARGS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Max number of image objects arguments |
| of a kernel declared with the |
| <code class="code">write_only</code> qualifier. |
| The minimum value is 64 if |
| <code class="constant">CL_DEVICE_IMAGE_SUPPORT</code> is <code class="constant">CL_TRUE</code>. |
| NOTE: <code class="constant">CL_DEVICE_MAX_WRITE_IMAGE_ARGS</code> |
| is only there for backward compatibility. |
| <code class="constant">CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS</code> |
| should be used instead. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_MEM_BASE_ADDR_ALIGN</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Alignment requirement (in bits) for sub-buffer offsets. |
| The minimum value is the size (in bits) of the largest OpenCL built-in |
| data type supported by the device (<span class="type">long16</span> in FULL profile, |
| <span class="type">long16</span> or <span class="type">int16</span> in EMBEDDED profile) for devices |
| that are not of type <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_NAME</code> |
| </td> |
| <td align="left">char[]</td> |
| <td align="left">Device name string.</td> |
| </tr> |
| <tr> |
| <td align="left"><code class="constant">CL_DEVICE_NATIVE_ |
| VECTOR_WIDTH_CHAR</code> |
| <p><code class="constant">CL_DEVICE_NATIVE_ |
| VECTOR_WIDTH_SHORT</code></p> |
| <p><code class="constant">CL_DEVICE_NATIVE_ |
| VECTOR_WIDTH_INT</code></p> |
| <p><code class="constant">CL_DEVICE_NATIVE_ |
| VECTOR_WIDTH_LONG</code></p> |
| <p><code class="constant">CL_DEVICE_NATIVE_ |
| VECTOR_WIDTH_FLOAT</code></p> |
| <p><code class="constant">CL_DEVICE_NATIVE_ |
| VECTOR_WIDTH_DOUBLE</code></p> |
| <p><code class="constant">CL_DEVICE_NATIVE_ |
| VECTOR_WIDTH_HALF</code></p></td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| <p> |
| Returns the native ISA vector width. The vector width is defined as |
| the number of scalar elements that can be stored in the vector. |
| </p> |
| |
| <p> |
| If double precision is not supported, |
| <code class="constant">CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE</code> must return 0. |
| </p> |
| |
| <p> |
| If the |
| <a class="citerefentry" href="cl_khr_fp16.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_fp16</span></span></a> |
| extension is not supported, |
| <code class="constant">CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF</code> must return 0. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_OPENCL_C_VERSION</code> |
| </td> |
| <td align="left">char[]</td> |
| <td align="left"> |
| <p> |
| OpenCL C version string. Returns the highest OpenCL C version |
| supported by the compiler for this device that is not of type |
| <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. This version string has |
| the following format: |
| </p> |
| |
| <p> |
| <code class="varname"> |
| OpenCL<space>C<space><major_version.minor_version><space><vendor-specific |
| information> </code> |
| </p> |
| |
| <p> |
| The <code class="varname">major_version.minor_version</code> value returned must |
| be 2.0 if <code class="constant">CL_DEVICE_VERSION</code> is OpenCL 2.0. |
| </p> |
| |
| <p> |
| The <code class="varname">major_version.minor_version</code> value returned must |
| be 1.2 if <code class="constant">CL_DEVICE_VERSION</code> is OpenCL 1.2. |
| </p> |
| |
| <p> |
| The <code class="varname">major_version.minor_version</code> value returned must |
| be 1.1 if <code class="constant">CL_DEVICE_VERSION</code> is OpenCL 1.1. |
| </p> |
| |
| <p> |
| The <code class="varname">major_version.minor_version</code> value returned can |
| be 1.0 or 1.1 if <code class="constant">CL_DEVICE_VERSION</code> is OpenCL 1.0. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PARENT_DEVICE</code> |
| </td> |
| <td align="left">cl_device_id</td> |
| <td align="left"> |
| Returns the <span class="type">cl_device_id</span> of the parent device to which this sub-device |
| belongs. If <code class="varname">device</code> is a root-level device, a NULL value is returned. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PARTITION_ |
| AFFINITY_DOMAIN</code> |
| </td> |
| <td align="left"><p>cl_device_aff-</p> |
| <p>inity_domain</p></td> |
| <td align="left"> |
| Returns the list of supported affinity domains for partitioning the <code class="varname">device</code> using |
| <code class="constant">CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN</code>. |
| This is a bit-field that describes one or more of the following values: |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_NUMA</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE</code></li></ul></div> |
| If the device does not support any affinity domains, a value of 0 will be returned. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PARTITION_MAX_ |
| SUB_DEVICES</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Returns the maximum number of sub-devices that can be created |
| when a device is partitioned. The value returned cannot exceed |
| <code class="constant">CL_DEVICE_MAX_COMPUTE_UNITS</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PARTITION_PROPERTIES</code> |
| </td> |
| <td align="left"> |
| <p>cl_device_partit-</p> |
| <p>ion_property[]</p> |
| </td> |
| <td align="left"> |
| Returns the list of partition types supported by <code class="varname">device</code>. This is an array of |
| <span class="type">cl_device_partition_property</span> values drawn from the following list: |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_PARTITION_EQUALLY</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_PARTITION_BY_COUNTS</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN</code></li></ul></div> |
| If the device cannot be partitioned (i.e. |
| there is no partitioning scheme supported |
| by the device that will return at least two |
| subdevices), a value of 0 will be returned. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PARTITION_TYPE</code> |
| </td> |
| <td align="left"><p>cl_device_part-</p> |
| <p>ition_property[]</p></td> |
| <td align="left"> |
| Returns the <code class="varname">properties</code> argument specified in |
| <a class="citerefentry" href="clCreateSubDevices.html"><span class="citerefentry"><span class="refentrytitle">clCreateSubDevices</span></span></a> |
| if <code class="varname">device</code> is a subdevice. In the case where the <code class="varname">properties</code> |
| argument to <a class="citerefentry" href="clCreateSubDevices.html"><span class="citerefentry"><span class="refentrytitle">clCreateSubDevices</span></span></a> is |
| <code class="constant">CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN</code>, |
| <code class="constant">CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE</code>, the affinity domain used to |
| perform the partition will be returned. This |
| can be one of the following values: |
| <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_NUMA</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE</code></li><li class="listitem" style="list-style-type: disc"><code class="constant">CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE</code></li></ul></div> |
| Otherwise the implementation may either |
| return a <code class="varname">param_value_size_ret</code> of 0 i.e. |
| there is no partition type associated with |
| <code class="varname">device</code> or can return a property value of 0 |
| (where 0 is used to terminate the partition |
| property list) in the memory that |
| <code class="varname">param_value</code> points to. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PIPE_MAX_ |
| ACTIVE_RESERVATIONS</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| The maximum number of reservations that |
| can be active for a pipe per work-item in a |
| kernel. A work-group reservation is |
| counted as one reservation per work-item. |
| The minimum value is 1. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PIPE_MAX_PACKET_SIZE</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left">The maximum size of pipe packet in bytes. |
| The minimum value is 1024 bytes. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PLATFORM</code> |
| </td> |
| <td align="left"> |
| <a class="link" href="abstractDataTypes.html" target="pagedisplay">cl_platform_id</a> |
| </td> |
| <td align="left">The platform associated with this device.</td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PREFERRED_ |
| GLOBAL_ATOMIC_ALIGNMENT</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Returns the value representing the |
| preferred alignment in bytes for OpenCL |
| 2.0 atomic types to global memory. This |
| query can return 0 which indicates that the |
| preferred alignment is aligned to the |
| natural size of the type. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PREFERRED_ |
| INTEROP_USER_SYNC</code> |
| </td> |
| <td align="left">cl_bool</td> |
| <td align="left"> |
| Is <code class="constant">CL_TRUE</code> if the device's preference is for the user |
| to be responsible for synchronization, when sharing memory objects between |
| OpenCL and other APIs such as DirectX, <code class="constant">CL_FALSE</code> if the |
| device / implementation has a performant path for performing synchronization |
| of memory object shared between OpenCL and other APIs such as DirectX |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PREFERRED_ |
| LOCAL_ATOMIC_ALIGNMENT</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Returns the value representing the |
| preferred alignment in bytes for OpenCL |
| 2.0 atomic types to local memory. This |
| query can return 0 which indicates that the |
| preferred alignment is aligned to the |
| natural size of the type. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PREFERRED_ |
| PLATFORM_ATOMIC_ALIGNMENT</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Returns the value representing the |
| preferred alignment in bytes for OpenCL |
| 2.0 fine-grained SVM atomic types. This |
| query can return 0 which indicates that the |
| preferred alignment is aligned to the |
| natural size of the type. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"><code class="constant">CL_DEVICE_PREFERRED_ |
| VECTOR_WIDTH_CHAR</code> |
| <p><code class="constant">CL_DEVICE_PREFERRED_ |
| VECTOR_WIDTH_SHORT</code></p> |
| <p><code class="constant">CL_DEVICE_PREFERRED_ |
| VECTOR_WIDTH_INT</code></p> |
| <p><code class="constant">CL_DEVICE_PREFERRED_ |
| VECTOR_WIDTH_LONG</code></p> |
| <p><code class="constant">CL_DEVICE_PREFERRED_ |
| VECTOR_WIDTH_FLOAT</code></p> |
| <p><code class="constant">CL_DEVICE_PREFERRED_ |
| VECTOR_WIDTH_DOUBLE</code></p> |
| <p><code class="constant">CL_DEVICE_PREFERRED_ |
| VECTOR_WIDTH_HALF</code></p></td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| <p> |
| Preferred native vector width size for built-in scalar types that can |
| be put into vectors. The vector width is defined as the number of scalar |
| elements that can be stored in the vector. |
| </p> |
| |
| <p> |
| If double precision is not supported, |
| <code class="constant">CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE</code> must return 0. |
| </p> |
| |
| <p> |
| If the |
| <a class="citerefentry" href="cl_khr_fp16.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_fp16</span></span></a> |
| extension is not supported, |
| <code class="constant">CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF</code> must return 0. |
| </p> |
| |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PRINTF_BUFFER_SIZE</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left"> |
| Maximum size in bytes of the internal buffer that holds the output of <a class="citerefentry" href="printfFunction.html"><span class="citerefentry"><span class="refentrytitle">printf</span></span></a> |
| calls from a kernel. The minimum value for the FULL profile is 1 MB. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PROFILE</code> |
| </td> |
| <td align="left">char[]</td> |
| <td align="left"> |
| <p> |
| OpenCL profile string. Returns the profile name supported by the device |
| (see note). The profile name returned can be one of the following strings: |
| </p> |
| |
| <p> |
| FULL_PROFILE - if the device supports the OpenCL specification |
| (functionality defined as part of the core specification and does not |
| require any extensions to be supported). |
| </p> |
| |
| <p> |
| EMBEDDED_PROFILE - if the device supports the OpenCL embedded profile. |
| </p> |
| |
| <p> |
| The platform profile returns the profile that is |
| implemented by the OpenCL framework. If the |
| platform profile |
| returned is <code class="constant">FULL_PROFILE</code>, |
| the OpenCL framework will support devices that |
| are <code class="constant">FULL_PROFILE</code> and may also |
| support devices that are <code class="constant">EMBEDDED_PROFILE</code>. |
| The compiler must be available for all devices i.e. |
| <code class="constant">CL_DEVICE_COMPILER_AVAILABLE</code> |
| is <code class="constant">CL_TRUE</code>. If the |
| platform profile returned is |
| <code class="constant">EMBEDDED_PROFILE</code>, then |
| devices that are only <code class="constant">EMBEDDED_PROFILE</code> are supported. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_PROFILING_ |
| TIMER_RESOLUTION</code> |
| </td> |
| <td align="left">size_t</td> |
| <td align="left">Describes the resolution of device timer. This is measured in nanoseconds.</td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_QUEUE_ON_ |
| DEVICE_MAX_SIZE</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| The max. size of the device queue in bytes. The minimum value is 256 KB for the full |
| profile and 64 KB for the embedded profile |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_QUEUE_ON_ |
| DEVICE_PREFERRED_SIZE</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| The size of the device queue in bytes |
| preferred by the implementation. |
| Applications should use this size for the |
| device queue to ensure good performance. |
| The minimum value is 16 KB. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_QUEUE_ |
| ON_DEVICE_PROPERTIES</code> |
| </td> |
| <td align="left"> |
| <p>cl_command_-</p> |
| <p>queue_properties</p> |
| </td> |
| <td align="left"> |
| <p> |
| Describes the on device command-queue properties supported by the device. This is |
| a bit-field that describes one or more of the following values: |
| </p> |
| |
| <p><code class="constant">CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE</code></p> |
| <p><code class="constant">CL_QUEUE_PROFILING_ENABLE</code></p> |
| <p> |
| These properties are described in the table for |
| <a class="citerefentry" href="clCreateCommandQueueWithProperties.html"><span class="citerefentry"><span class="refentrytitle">clCreateCommandQueueWithProperties</span></span></a>. |
| The mandated minimum capability is |
| <code class="constant">CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE</code> |
| | <code class="constant">CL_QUEUE_PROFILING_ENABLE</code>. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_QUEUE_ON_ |
| HOST_PROPERTIES</code> |
| </td> |
| <td align="left"> |
| <p>cl_command_-</p> |
| <p>queue_properties</p> |
| </td> |
| <td align="left"> |
| <p> |
| Describes the on host command-queue properties supported by the device. This is |
| a bit-field that describes one or more of the following values: |
| </p> |
| |
| <p><code class="constant">CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE</code></p> |
| <p><code class="constant">CL_QUEUE_PROFILING_ENABLE</code></p> |
| <p> |
| These properties are described in the table for |
| <a class="citerefentry" href="clCreateCommandQueueWithProperties.html"><span class="citerefentry"><span class="refentrytitle">clCreateCommandQueueWithProperties</span></span></a>. |
| The mandated minimum capability is |
| <code class="constant">CL_QUEUE_PROFILING_ENABLE</code>. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_REFERENCE_COUNT</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| Returns the <code class="varname">device</code> reference count. If the device is a root-level device, |
| a reference count of one is returned. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_SINGLE_FP_CONFIG</code> |
| </td> |
| <td align="left"> |
| <p>cl_device_-</p> |
| <p>fp_config</p> |
| </td> |
| <td align="left"> |
| <p> |
| Describes single precision floating-point capability of the device. This |
| is a bit-field that describes one or more of the following values: |
| </p> |
| |
| <p><code class="constant">CL_FP_DENORM</code> - denorms are supported</p> |
| <p><code class="constant">CL_FP_INF_NAN</code> - INF and quiet NaNs are supported</p> |
| <p><code class="constant">CL_FP_ROUND_TO_NEAREST</code> - round to nearest even rounding mode supported</p> |
| <p><code class="constant">CL_FP_ROUND_TO_ZERO</code> - round to zero rounding mode supported</p> |
| <p><code class="constant">CL_FP_ROUND_TO_INF</code> - round to +ve and -ve infinity rounding modes supported</p> |
| <p><code class="constant">CL_FP_FMA</code> - IEEE754-2008 fused multiply-add is supported</p> |
| |
| <p> |
| <code class="constant">CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT</code> - divide and |
| sqrt are correctly rounded as defined by the IEEE754 specification. |
| </p> |
| |
| <p> |
| <code class="constant">CL_FP_SOFT_FLOAT</code> - Basic floating-point operations |
| (such as addition, subtraction, multiplication) are implemented in |
| software. |
| </p> |
| |
| <p> |
| For the full profile, the mandated minimum |
| floating-point capability for devices that |
| are not of type <code class="constant">CL_DEVICE_TYPE_CUSTOM</code> |
| is <code class="constant">CL_FP_ROUND_TO_NEAREST</code> | |
| <code class="constant">CL_FP_INF_NAN</code>. |
| For the embedded profile, see section 10. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_SPIR_VERSIONS</code> |
| </td> |
| <td align="left">char []</td> |
| <td align="left"> |
| If the <a class="citerefentry" href="cl_khr_spir.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_spir</span></span></a> |
| extension is enabled, |
| a space separated list of SPIR versions |
| supported by the device. |
| For example returning “1.2 2.0” in this |
| query implies that SPIR version 1.2 and |
| 2.0 are supported by the implementation. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_SUBGROUP_ |
| INDEPENDENT_ |
| FORWARD_PROGRESS</code> |
| </td> |
| <td align="left">cl_bool</td> |
| <td align="left"> |
| Is <code class="constant">CL_TRUE</code> if this device supports |
| independent forward progress of sub-groups, |
| <code class="constant">CL_FALSE</code> otherwise. If |
| <a class="citerefentry" href="cl_khr_subgroups.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_subgroups</span></span></a> |
| is supported by the |
| device this must return <code class="constant">CL_TRUE</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_SVM_CAPABILITIES</code> |
| </td> |
| <td align="left"> |
| <p>cl_device_svm_-</p> |
| <p>capabilities</p> |
| </td> |
| <td align="left"><p> |
| Describes the various shared virtual |
| memory (a.k.a. SVM) memory allocation |
| types the device supports. Coarse-grain |
| SVM allocations are required to be |
| supported by all OpenCL 2.0 devices. This |
| is a bit-field that describes a combination |
| of the following values:</p> |
| |
| <p><code class="constant">CL_DEVICE_SVM_COARSE_GRAIN_BUFFER</code> – |
| Support for coarse-grain buffer |
| sharing using <a class="citerefentry" href="clSVMAlloc.html"><span class="citerefentry"><span class="refentrytitle">clSVMAlloc</span></span></a>. Memory |
| consistency is guaranteed at |
| synchronization points and the host must |
| use calls to |
| <a class="citerefentry" href="clEnqueueMapBuffer.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueMapBuffer</span></span></a> and |
| <a class="citerefentry" href="clEnqueueUnmapMemObject.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueUnmapMemObject</span></span></a>.</p> |
| |
| <p><code class="constant">CL_DEVICE_SVM_FINE_GRAIN_BUFFER</code> |
| – Support for fine-grain buffer sharing |
| using <a class="citerefentry" href="clSVMAlloc.html"><span class="citerefentry"><span class="refentrytitle">clSVMAlloc</span></span></a>. Memory consistency |
| is guaranteed atsynchronization points |
| without need for <a class="citerefentry" href="clEnqueueMapBuffer.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueMapBuffer</span></span></a> |
| and <a class="citerefentry" href="clEnqueueUnmapMemObject.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueUnmapMemObject</span></span></a>.</p> |
| |
| <p><code class="constant">CL_DEVICE_SVM_FINE_GRAIN_SYSTEM</code> |
| – Support for sharing the host’s entire |
| virtual memory including memory |
| allocated using malloc. Memory |
| consistency is guaranteed at |
| synchronization points.</p> |
| |
| <p><code class="constant">CL_DEVICE_SVM_ATOMICS</code> – Support |
| for the OpenCL 2.0 atomic operations that |
| provide memory consistency across the |
| host and all OpenCL devices supporting |
| fine-grain SVM allocations.</p> |
| |
| <p> |
| The mandated minimum capability is |
| <code class="constant">CL_DEVICE_SVM_COARSE_GRAIN_BUFFER</code>. |
| </p> |
| |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_TERMINATE_CAPABILITY_KHR</code> |
| </td> |
| <td align="left">cl_device_terminate_capability_khr</td> |
| <td align="left"> |
| 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, describes the termination capability of the OpenCL |
| device. This is a bitfield where a value of |
| <code class="constant">CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR</code> |
| indicates that context termination is supported. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_TYPE</code> |
| </td> |
| <td align="left">cl_device_type</td> |
| <td align="left"> |
| The OpenCL device type. Currently supported values are: |
| <code class="constant">CL_DEVICE_TYPE_CPU</code>, |
| <code class="constant">CL_DEVICE_TYPE_GPU</code>, |
| <code class="constant">CL_DEVICE_TYPE_ACCELERATOR</code>, |
| <code class="constant">CL_DEVICE_TYPE_DEFAULT</code>, a combination of the above |
| types, or <code class="constant">CL_DEVICE_TYPE_CUSTOM</code>. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_VENDOR</code> |
| </td> |
| <td align="left">char[]</td> |
| <td align="left">Vendor name string.</td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_VENDOR_ID</code> |
| </td> |
| <td align="left">cl_uint</td> |
| <td align="left"> |
| A unique device vendor identifier. An example of a unique device identifier |
| could be the PCIe ID. |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DEVICE_VERSION</code> |
| </td> |
| <td align="left">char[]</td> |
| <td align="left"> |
| <p> |
| OpenCL version string. Returns the OpenCL version supported by the |
| device. This version string has the following format: |
| </p> |
| |
| <p> |
| <code class="varname"> |
| OpenCL<space><major_version.minor_version><space><vendor-specific |
| information> </code> |
| </p> |
| |
| <p> |
| The <code class="varname">major_version.minor_version</code> value returned will |
| be 2.1. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td align="left"> |
| <code class="constant">CL_DRIVER_VERSION</code> |
| </td> |
| <td align="left">char[]</td> |
| <td align="left"> |
| OpenCL software driver version string in the form |
| <code class="varname">major_number.minor_number</code>. |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a id="notes"></a> |
| <h2>Notes</h2> |
| <p> |
| <code class="constant">CL_DEVICE_PROFILE</code>: The platform profile returns the profile |
| that is implemented by the OpenCL framework. If the platform profile returned is |
| <code class="constant">FULL_PROFILE</code>, the OpenCL framework will support devices |
| that are <code class="constant">FULL_PROFILE</code> and may |
| also support devices that are <code class="constant">EMBEDDED_PROFILE</code>. The compiler must |
| be available for all devices i.e. <code class="constant">CL_DEVICE_COMPILER_AVAILABLE</code> |
| is <code class="constant">CL_TRUE</code>. If the platform profile returned |
| is <code class="constant">EMBEDDED_PROFILE</code>, then devices that are only |
| <code class="constant">EMBEDDED_PROFILE</code> are supported. |
| </p> |
| <p> |
| The device queries described in the table above should return the |
| same information for a root-level device i.e. a device returned by |
| <a class="citerefentry" href="clGetDeviceIDs.html"><span class="citerefentry"><span class="refentrytitle">clGetDeviceIDs</span></span></a> and any |
| sub-devices created from this device except for the following queries: |
| |
| </p> |
| <div class="itemizedlist"> |
| <ul class="itemizedlist" style="list-style-type: disc; "> |
| <li class="listitem" style="list-style-type: disc"> |
| <code class="constant">CL_DEVICE_GLOBAL_MEM_CACHE_SIZE</code> |
| </li> |
| <li class="listitem" style="list-style-type: disc"> |
| <code class="constant">CL_DEVICE_BUILT_IN_KERNELS</code> |
| </li> |
| <li class="listitem" style="list-style-type: disc"> |
| <code class="constant">CL_DEVICE_PARENT_DEVICE</code> |
| </li> |
| <li class="listitem" style="list-style-type: disc"> |
| <code class="constant">CL_DEVICE_PARTITION_TYPE</code> |
| </li> |
| <li class="listitem" style="list-style-type: disc"> |
| <code class="constant">CL_DEVICE_REFERENCE_COUNT</code> |
| </li> |
| </ul> |
| </div> |
| <p> |
| </p> |
| </div> |
| <div class="refsect1"> |
| <a id="errors"></a> |
| <h2>Errors</h2> |
| <p> |
| <code class="function">clGetDeviceInfo</code> returns <span class="errorname">CL_SUCCESS</span> if the |
| function is executed successfully. Otherwise, it returns the following: |
| </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_DEVICE</span> if <code class="varname">device</code> is not valid. |
| </li> |
| <li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_VALUE</span> if <code class="varname">param_name</code> |
| is not one of the supported values or if size in bytes specified by |
| <code class="varname">param_value_size</code> is less than size of return type as shown in the |
| table above and <code class="varname">param_value</code> is not a <span class="errorname">NULL</span> |
| value or if <code class="varname">param_name</code> is a value that is available as an extension and the corresponding |
| extension is not supported by the device. |
| </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.1.pdf#page=66" 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="cl_khr_fp64.html"><span class="citerefentry"><span class="refentrytitle">cl_khr_fp64</span></span></a>, |
| <a class="citerefentry" href="constant.html"><span class="citerefentry"><span class="refentrytitle">__constant</span></span></a>, |
| <a class="citerefentry" href="clCreateCommandQueueWithProperties.html"><span class="citerefentry"><span class="refentrytitle">clCreateCommandQueueWithProperties</span></span></a>, |
| <a class="citerefentry" href="clRetainCommandQueue.html"><span class="citerefentry"><span class="refentrytitle">clRetainCommandQueue</span></span></a>, |
| <a class="citerefentry" href="clEnqueueNDRangeKernel.html"><span class="citerefentry"><span class="refentrytitle">clEnqueueNDRangeKernel</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> |