blob: 4d1c80202d6b2701c7804f177dfbab4f46cb9ef6 [file] [log] [blame]
<?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>clCloneKernel</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1" />
<meta name="keywords" content="clCloneKernel" />
</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="clCloneKernel"></a>
<h1>clCloneKernel</h1>
<p>
Make a shallow copy of the kernel object.
</p>
</div>
<div class="refsynopsisdiv">
<h2></h2>
<div class="funcsynopsis">
<table xmlns="" border="0" summary="Function synopsis" cellspacing="0" cellpadding="0">
<tr valign="bottom">
<td>
<code xmlns="http://www.w3.org/1999/xhtml" class="funcdef">
<a class="link" href="abstractDataTypes.html" target="pagedisplay">cl_kernel</a>
<strong class="fsfunc">
clCloneKernel
</strong>
(</code>
<td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="abstractDataTypes.html" target="pagedisplay">cl_kernel</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">source_kernel</var>, </td>
</td>
</tr>
<tr valign="top">
<td> </td>
<td><a xmlns="http://www.w3.org/1999/xhtml" class="link" href="scalarDataTypes.html" target="pagedisplay">cl_int</a> <var xmlns="http://www.w3.org/1999/xhtml" class="pdparam">*errcode_ret</var><code>)</code></td>
</tr>
</table>
</div>
</div>
<div class="refsect1">
<a id="parameters"></a>
<h2>Parameters</h2>
<div class="variablelist">
<dl class="variablelist">
<dt>
<span class="term"><code class="varname">source_kernel</code> </span>
</dt>
<dd>
<p>
A valid <span class="type">cl_kernel</span> object that will be copied.
<code class="varname">source_kernel</code> will not be
modified in any way by this function.
</p>
</dd>
<dt>
<span class="term"> <code class="varname">errcode_ret</code> </span>
</dt>
<dd>
<p>
Assigned an appropriate error code. If <code class="varname">errcode_ret</code>
is <code class="code">NULL</code>, no error code is returned.
</p>
</dd>
</dl>
</div>
</div>
<div class="refsect1">
<a id="description"></a>
<h2>Description</h2>
<p>
Makes a shallow copy of the kernel object,
its arguments and any information passed to
the kernel object using
<a class="citerefentry" href="clSetKernelExecInfo.html"><span class="citerefentry"><span class="refentrytitle">clSetKernelExecInfo</span></span></a>.
If the kernel object was ready to be enqueued
before copying it, the clone of the kernel
object is ready to enqueue.
</p>
</div>
<div class="refsect1">
<a id="notes"></a>
<h2>Notes</h2>
<p>
The returned kernel object is an exact copy of
<code class="varname">source_kernel</code>, with one caveat: the reference
count on the returned kernel object is set as if it had been returned by
<a class="citerefentry" href="clCreateKernel.html"><span class="citerefentry"><span class="refentrytitle">clCreateKernel</span></span></a> .
The reference count of <code class="varname">source_kernel</code> will not be changed.
</p>
<p>
The resulting kernel will be in the same state as if
<a class="citerefentry" href="clCreateKernel.html"><span class="citerefentry"><span class="refentrytitle">clCreateKernel</span></span></a>
is called to create the
resultant kernel with the same arguments as those used to create
<code class="varname">source_kernel</code>, the latest call to
<a class="citerefentry" href="clSetKernelArg.html"><span class="citerefentry"><span class="refentrytitle">clSetKernelArg</span></span></a>
or
<a class="citerefentry" href="clSetKernelArgSVMPointer.html"><span class="citerefentry"><span class="refentrytitle">clSetKernelArgSVMPointer</span></span></a>
for each argument index applied to kernel and
the last call to
<a class="citerefentry" href="clSetKernelExecInfo.html"><span class="citerefentry"><span class="refentrytitle">clSetKernelExecInfo</span></span></a>
for each value of the param name parameter are applied to
the new kernel object.
</p>
<p>
All arguments of the new kernel object must be intact and it may be correctly used in the same
situations as kernel except those that assume a pre-existing reference count. Setting arguments on
the new kernel object will not affect <code class="varname">source_kernel</code> except insofar as the argument points to a
shared underlying entity and in that situation behavior is as if two kernel objects had been
created and the same argument applied to each. Only the data stored in the kernel object is
copied; data referenced by the kernel’s arguments are not copied. For example, if a buffer or
pointer argument is set on a kernel object, the pointer is copied but the underlying memory
allocation is not.
</p>
</div>
<div class="refsect1">
<a id="errors"></a>
<h2>Errors</h2>
<p>
Returns a valid non-zero kernel object and
<code class="varname">errcode_ret</code> is set to
<code class="constant">CL_SUCCESS</code> if
the kernel is successfully copied. Otherwise
it returns a NULL value with one of the following
error values returned in
<code class="varname">errcode_ret</code>:
</p>
<div class="itemizedlist">
<ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem" style="list-style-type: disc"><span class="errorname">CL_INVALID_KERNEL</span> if
<code class="varname">kernel</code> is not a valid kernel object.
</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#namedest=clCloneKernel" target="OpenCL Spec">OpenCL Specification</a>
</p>
</div>
<div class="refsect1">
<a id="seealso"></a>
<h2>Also see</h2>
<p>
<a class="citerefentry" href="clSetKernelExecInfo.html"><span class="citerefentry"><span class="refentrytitle">clSetKernelExecInfo</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>