<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.6.1">
<meta name="author" content="Khronos OpenCL Working Group">
<title>The OpenCL Extension Specification</title>
<style>
/*! normalize.css v2.1.2 | MIT License | git.io/normalize */
/* ========================================================================== HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined in IE 8/9. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }

/** Correct `inline-block` display not defined in IE 8/9. */
audio, canvas, video { display: inline-block; }

/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }

/** Address `[hidden]` styling not present in IE 8/9. Hide the `template` element in IE, Safari, and Firefox < 22. */
[hidden], template { display: none; }

script { display: none !important; }

/* ========================================================================== Base ========================================================================== */
/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }

/** Remove default margin. */
body { margin: 0; }

/* ========================================================================== Links ========================================================================== */
/** Remove the gray background color from active links in IE 10. */
a { background: transparent; }

/** Address `outline` inconsistency between Chrome and other browsers. */
a:focus { outline: thin dotted; }

/** Improve readability when focused and also mouse hovered in all browsers. */
a:active, a:hover { outline: 0; }

/* ========================================================================== Typography ========================================================================== */
/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari 5, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }

/** Address styling not present in IE 8/9, Safari 5, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }

/** Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */
b, strong { font-weight: bold; }

/** Address styling not present in Safari 5 and Chrome. */
dfn { font-style: italic; }

/** Address differences between Firefox and other browsers. */
hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; }

/** Address styling not present in IE 8/9. */
mark { background: #ff0; color: #000; }

/** Correct font family set oddly in Safari 5 and Chrome. */
code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; }

/** Improve readability of pre-formatted text in all browsers. */
pre { white-space: pre-wrap; }

/** Set consistent quote types. */
q { quotes: "\201C" "\201D" "\2018" "\2019"; }

/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }

/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }

sup { top: -0.5em; }

sub { bottom: -0.25em; }

/* ========================================================================== Embedded content ========================================================================== */
/** Remove border when inside `a` element in IE 8/9. */
img { border: 0; }

/** Correct overflow displayed oddly in IE 9. */
svg:not(:root) { overflow: hidden; }

/* ========================================================================== Figures ========================================================================== */
/** Address margin not present in IE 8/9 and Safari 5. */
figure { margin: 0; }

/* ========================================================================== Forms ========================================================================== */
/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }

/** 1. Correct `color` not being inherited in IE 8/9. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
legend { border: 0; /* 1 */ padding: 0; /* 2 */ }

/** 1. Correct font family not being inherited in all browsers. 2. Correct font size not being inherited in all browsers. 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */
button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ }

/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
button, input { line-height: normal; }

/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. Correct `select` style inheritance in Firefox 4+ and Opera. */
button, select { text-transform: none; }

/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }

/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }

/** 1. Address box sizing set to `content-box` in IE 8/9. 2. Remove excess padding in IE 8/9. */
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }

/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; }

/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }

/** Remove inner padding and border in Firefox 4+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

/** 1. Remove default vertical scrollbar in IE 8/9. 2. Improve readability and alignment in all browsers. */
textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ }

/* ========================================================================== Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }

meta.foundation-mq-small { font-family: "only screen and (min-width: 768px)"; width: 768px; }

meta.foundation-mq-medium { font-family: "only screen and (min-width:1280px)"; width: 1280px; }

meta.foundation-mq-large { font-family: "only screen and (min-width:1440px)"; width: 1440px; }

*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }

html, body { font-size: 100%; }

body { background: white; color: #222222; padding: 0; margin: 0; font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; font-weight: normal; font-style: normal; line-height: 1; position: relative; cursor: auto; }

a:hover { cursor: pointer; }

img, object, embed { max-width: 100%; height: auto; }

object, embed { height: 100%; }

img { -ms-interpolation-mode: bicubic; }

#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; }

.left { float: left !important; }

.right { float: right !important; }

.text-left { text-align: left !important; }

.text-right { text-align: right !important; }

.text-center { text-align: center !important; }

.text-justify { text-align: justify !important; }

.hide { display: none; }

.antialiased { -webkit-font-smoothing: antialiased; }

img { display: inline-block; vertical-align: middle; }

textarea { height: auto; min-height: 50px; }

select { width: 100%; }

object, svg { display: inline-block; vertical-align: middle; }

.center { margin-left: auto; margin-right: auto; }

.spread { width: 100%; }

p.lead, .paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { font-size: 1.21875em; line-height: 1.6; }

.subheader, .admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { line-height: 1.4; color: black; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; }

/* Typography resets */
div, dl, dt, dd, ul, ol, li, h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; direction: ltr; }

/* Default Link Styles */
a { color: #0068b0; text-decoration: none; line-height: inherit; }
a:hover, a:focus { color: #333333; }
a img { border: none; }

/* Default paragraph styles */
p { font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; margin-bottom: 0.75em; text-rendering: optimizeLegibility; }
p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; }

/* Default header styles */
h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { font-family: Noto, sans-serif; font-weight: normal; font-style: normal; color: black; text-rendering: optimizeLegibility; margin-top: 0.5em; margin-bottom: 0.5em; line-height: 1.2125em; }
h1 small, h2 small, h3 small, #toctitle small, .sidebarblock > .content > .title small, h4 small, h5 small, h6 small { font-size: 60%; color: #4d4d4d; line-height: 0; }

h1 { font-size: 2.125em; }

h2 { font-size: 1.6875em; }

h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.375em; }

h4 { font-size: 1.125em; }

h5 { font-size: 1.125em; }

h6 { font-size: 1em; }

hr { border: solid #dddddd; border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; }

/* Helpful Typography Defaults */
em, i { font-style: italic; line-height: inherit; }

strong, b { font-weight: bold; line-height: inherit; }

small { font-size: 60%; line-height: inherit; }

code { font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; color: #264357; }

/* Lists */
ul, ol, dl { font-size: 1em; line-height: 1.6; margin-bottom: 0.75em; list-style-position: outside; font-family: Noto, sans-serif; }

ul, ol { margin-left: 1.5em; }
ul.no-bullet, ol.no-bullet { margin-left: 1.5em; }

/* Unordered Lists */
ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; /* Override nested font-size change */ }
ul.square li ul, ul.circle li ul, ul.disc li ul { list-style: inherit; }
ul.square { list-style-type: square; }
ul.circle { list-style-type: circle; }
ul.disc { list-style-type: disc; }
ul.no-bullet { list-style: none; }

/* Ordered Lists */
ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; }

/* Definition Lists */
dl dt { margin-bottom: 0.3em; font-weight: bold; }
dl dd { margin-bottom: 0.75em; }

/* Abbreviations */
abbr, acronym { text-transform: uppercase; font-size: 90%; color: black; border-bottom: 1px dotted #dddddd; cursor: help; }

abbr { text-transform: none; }

/* Blockquotes */
blockquote { margin: 0 0 0.75em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #dddddd; }
blockquote cite { display: block; font-size: 0.8125em; color: #5e93b8; }
blockquote cite:before { content: "\2014 \0020"; }
blockquote cite a, blockquote cite a:visited { color: #5e93b8; }

blockquote, blockquote p { line-height: 1.6; color: #333333; }

/* Microformats */
.vcard { display: inline-block; margin: 0 0 1.25em 0; border: 1px solid #dddddd; padding: 0.625em 0.75em; }
.vcard li { margin: 0; display: block; }
.vcard .fn { font-weight: bold; font-size: 0.9375em; }

.vevent .summary { font-weight: bold; }
.vevent abbr { cursor: auto; text-decoration: none; font-weight: bold; border: none; padding: 0 0.0625em; }

@media only screen and (min-width: 768px) { h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }
  h1 { font-size: 2.75em; }
  h2 { font-size: 2.3125em; }
  h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; }
  h4 { font-size: 1.4375em; } }
/* Tables */
table { background: white; margin-bottom: 1.25em; border: solid 1px #d8d8ce; }
table thead, table tfoot { background: -webkit-linear-gradient(top, #add386, #90b66a); font-weight: bold; }
table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: white; text-align: left; }
table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #6d6e71; }
table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #edf2f2; }
table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.4; }

body { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; tab-size: 4; }

h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.4; }

a:hover, a:focus { text-decoration: underline; }

.clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; }
.clearfix:after, .float-group:after { clear: both; }

*:not(pre) > code { font-size: inherit; font-style: normal !important; letter-spacing: 0; padding: 0; background-color: white; -webkit-border-radius: 0; border-radius: 0; line-height: inherit; word-wrap: break-word; }
*:not(pre) > code.nobreak { word-wrap: normal; }
*:not(pre) > code.nowrap { white-space: nowrap; }

pre, pre > code { line-height: 1.6; color: #264357; font-family: Consolas, "Liberation Mono", Courier, monospace; font-weight: normal; }

em em { font-style: normal; }

strong strong { font-weight: normal; }

.keyseq { color: #333333; }

kbd { font-family: Consolas, "Liberation Mono", Courier, monospace; display: inline-block; color: black; font-size: 0.65em; line-height: 1.45; background-color: #f7f7f7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; margin: 0 0.15em; padding: 0.2em 0.5em; vertical-align: middle; position: relative; top: -0.1em; white-space: nowrap; }

.keyseq kbd:first-child { margin-left: 0; }

.keyseq kbd:last-child { margin-right: 0; }

.menuseq, .menuref { color: #000; }

.menuseq b:not(.caret), .menuref { font-weight: inherit; }

.menuseq { word-spacing: -0.02em; }
.menuseq b.caret { font-size: 1.25em; line-height: 0.8; }
.menuseq i.caret { font-weight: bold; text-align: center; width: 0.45em; }

b.button:before, b.button:after { position: relative; top: -1px; font-weight: normal; }

b.button:before { content: "["; padding: 0 3px 0 2px; }

b.button:after { content: "]"; padding: 0 2px 0 3px; }

#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 1.5em; padding-right: 1.5em; }
#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; }
#header:after, #content:after, #footnotes:after, #footer:after { clear: both; }

#content { margin-top: 1.25em; }

#content:before { content: none; }

#header > h1:first-child { color: black; margin-top: 2.25rem; margin-bottom: 0; }
#header > h1:first-child + #toc { margin-top: 8px; border-top: 1px solid #dddddd; }
#header > h1:only-child, body.toc2 #header > h1:nth-last-child(2) { border-bottom: 1px solid #dddddd; padding-bottom: 8px; }
#header .details { border-bottom: 1px solid #dddddd; line-height: 1.45; padding-top: 0.25em; padding-bottom: 0.25em; padding-left: 0.25em; color: #5e93b8; display: -ms-flexbox; display: -webkit-flex; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; }
#header .details span:first-child { margin-left: -0.125em; }
#header .details span.email a { color: #333333; }
#header .details br { display: none; }
#header .details br + span:before { content: "\00a0\2013\00a0"; }
#header .details br + span.author:before { content: "\00a0\22c5\00a0"; color: #333333; }
#header .details br + span#revremark:before { content: "\00a0|\00a0"; }
#header #revnumber { text-transform: capitalize; }
#header #revnumber:after { content: "\00a0"; }

#content > h1:first-child:not([class]) { color: black; border-bottom: 1px solid #dddddd; padding-bottom: 8px; margin-top: 0; padding-top: 1rem; margin-bottom: 1.25rem; }

#toc { border-bottom: 0 solid #dddddd; padding-bottom: 0.5em; }
#toc > ul { margin-left: 0.125em; }
#toc ul.sectlevel0 > li > a { font-style: italic; }
#toc ul.sectlevel0 ul.sectlevel1 { margin: 0.5em 0; }
#toc ul { font-family: Noto, sans-serif; list-style-type: none; }
#toc li { line-height: 1.3334; margin-top: 0.3334em; }
#toc a { text-decoration: none; }
#toc a:active { text-decoration: underline; }

#toctitle { color: black; font-size: 1.2em; }

@media only screen and (min-width: 768px) { #toctitle { font-size: 1.375em; }
  body.toc2 { padding-left: 15em; padding-right: 0; }
  #toc.toc2 { margin-top: 0 !important; background-color: white; position: fixed; width: 15em; left: 0; top: 0; border-right: 1px solid #dddddd; border-top-width: 0 !important; border-bottom-width: 0 !important; z-index: 1000; padding: 1.25em 1em; height: 100%; overflow: auto; }
  #toc.toc2 #toctitle { margin-top: 0; margin-bottom: 0.8rem; font-size: 1.2em; }
  #toc.toc2 > ul { font-size: 0.9em; margin-bottom: 0; }
  #toc.toc2 ul ul { margin-left: 0; padding-left: 1em; }
  #toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; }
  body.toc2.toc-right { padding-left: 0; padding-right: 15em; }
  body.toc2.toc-right #toc.toc2 { border-right-width: 0; border-left: 1px solid #dddddd; left: auto; right: 0; } }
@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; padding-right: 0; }
  #toc.toc2 { width: 20em; }
  #toc.toc2 #toctitle { font-size: 1.375em; }
  #toc.toc2 > ul { font-size: 0.95em; }
  #toc.toc2 ul ul { padding-left: 1.25em; }
  body.toc2.toc-right { padding-left: 0; padding-right: 20em; } }
#content #toc { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 0; border-radius: 0; }
#content #toc > :first-child { margin-top: 0; }
#content #toc > :last-child { margin-bottom: 0; }

#footer { max-width: 100%; background-color: none; padding: 1.25em; }

#footer-text { color: black; line-height: 1.44; }

#content { margin-bottom: 0.625em; }

.sect1 { padding-bottom: 0.625em; }

@media only screen and (min-width: 768px) { #content { margin-bottom: 1.25em; }
  .sect1 { padding-bottom: 1.25em; } }
.sect1:last-child { padding-bottom: 0; }

.sect1 + .sect1 { border-top: 0 solid #dddddd; }

#content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; z-index: 1001; width: 1.5ex; margin-left: -1.5ex; display: block; text-decoration: none !important; visibility: hidden; text-align: center; font-weight: normal; }
#content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: "\00A7"; font-size: 0.85em; display: block; padding-top: 0.1em; }
#content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; }
#content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: black; text-decoration: none; }
#content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: black; }

.audioblock, .imageblock, .literalblock, .listingblock, .stemblock, .videoblock { margin-bottom: 1.25em; }

.admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-rendering: optimizeLegibility; text-align: left; }

table.tableblock > caption.title { white-space: nowrap; overflow: visible; max-width: 0; }

.paragraph.lead > p, #preamble > .sectionbody > .paragraph:first-of-type p { color: black; }

table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; }

.admonitionblock > table { border-collapse: separate; border: 0; background: none; width: 100%; }
.admonitionblock > table td.icon { text-align: center; width: 80px; }
.admonitionblock > table td.icon img { max-width: initial; }
.admonitionblock > table td.icon .title { font-weight: bold; font-family: Noto, sans-serif; text-transform: uppercase; }
.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #dddddd; color: #5e93b8; }
.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; }

.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 0; border-radius: 0; }
.exampleblock > .content > :first-child { margin-top: 0; }
.exampleblock > .content > :last-child { margin-bottom: 0; }

.sidebarblock { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 0; border-radius: 0; }
.sidebarblock > :first-child { margin-top: 0; }
.sidebarblock > :last-child { margin-bottom: 0; }
.sidebarblock > .content > .title { color: black; margin-top: 0; }

.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child, .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; }

.literalblock pre, .listingblock pre:not(.highlight), .listingblock pre[class="highlight"], .listingblock pre[class^="highlight "], .listingblock pre.CodeRay, .listingblock pre.prettyprint { background: #eeeeee; }
.sidebarblock .literalblock pre, .sidebarblock .listingblock pre:not(.highlight), .sidebarblock .listingblock pre[class="highlight"], .sidebarblock .listingblock pre[class^="highlight "], .sidebarblock .listingblock pre.CodeRay, .sidebarblock .listingblock pre.prettyprint { background: #f2f1f1; }

.literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { border: 1px hidden #666666; -webkit-border-radius: 0; border-radius: 0; word-wrap: break-word; padding: 1.25em 1.5625em 1.125em 1.5625em; font-size: 0.8125em; }
.literalblock pre.nowrap, .literalblock pre[class].nowrap, .listingblock pre.nowrap, .listingblock pre[class].nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; }
@media only screen and (min-width: 768px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 0.90625em; } }
@media only screen and (min-width: 1280px) { .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { font-size: 1em; } }

.literalblock.output pre { color: #eeeeee; background-color: #264357; }

.listingblock pre.highlightjs { padding: 0; }
.listingblock pre.highlightjs > code { padding: 1.25em 1.5625em 1.125em 1.5625em; -webkit-border-radius: 0; border-radius: 0; }

.listingblock > .content { position: relative; }

.listingblock code[data-lang]:before { display: none; content: attr(data-lang); position: absolute; font-size: 0.75em; top: 0.425rem; right: 0.5rem; line-height: 1; text-transform: uppercase; color: #999; }

.listingblock:hover code[data-lang]:before { display: block; }

.listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: #999; }

.listingblock.terminal pre .command:not([data-prompt]):before { content: "$"; }

table.pyhltable { border-collapse: separate; border: 0; margin-bottom: 0; background: none; }

table.pyhltable td { vertical-align: top; padding-top: 0; padding-bottom: 0; line-height: 1.6; }

table.pyhltable td.code { padding-left: .75em; padding-right: 0; }

pre.pygments .lineno, table.pyhltable td:not(.code) { color: #999; padding-left: 0; padding-right: .5em; border-right: 1px solid #dddddd; }

pre.pygments .lineno { display: inline-block; margin-right: .25em; }

table.pyhltable .linenodiv { background: none !important; padding-right: 0 !important; }

.quoteblock { margin: 0 1em 0.75em 1.5em; display: table; }
.quoteblock > .title { margin-left: -1.5em; margin-bottom: 0.75em; }
.quoteblock blockquote, .quoteblock blockquote p { color: #333333; font-size: 1.15rem; line-height: 1.75; word-spacing: 0.1em; letter-spacing: 0; font-style: italic; text-align: justify; }
.quoteblock blockquote { margin: 0; padding: 0; border: 0; }
.quoteblock blockquote:before { content: "\201c"; float: left; font-size: 2.75em; font-weight: bold; line-height: 0.6em; margin-left: -0.6em; color: black; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); }
.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; }
.quoteblock .attribution { margin-top: 0.5em; margin-right: 0.5ex; text-align: right; }
.quoteblock .quoteblock { margin-left: 0; margin-right: 0; padding: 0.5em 0; border-left: 3px solid #5e93b8; }
.quoteblock .quoteblock blockquote { padding: 0 0 0 0.75em; }
.quoteblock .quoteblock blockquote:before { display: none; }

.verseblock { margin: 0 1em 0.75em 1em; }
.verseblock pre { font-family: "Open Sans", "DejaVu Sans", sans; font-size: 1.15rem; color: #333333; font-weight: 300; text-rendering: optimizeLegibility; }
.verseblock pre strong { font-weight: 400; }
.verseblock .attribution { margin-top: 1.25rem; margin-left: 0.5ex; }

.quoteblock .attribution, .verseblock .attribution { font-size: 0.8125em; line-height: 1.45; font-style: italic; }
.quoteblock .attribution br, .verseblock .attribution br { display: none; }
.quoteblock .attribution cite, .verseblock .attribution cite { display: block; letter-spacing: -0.025em; color: #5e93b8; }

.quoteblock.abstract { margin: 0 0 0.75em 0; display: block; }
.quoteblock.abstract blockquote, .quoteblock.abstract blockquote p { text-align: left; word-spacing: 0; }
.quoteblock.abstract blockquote:before, .quoteblock.abstract blockquote p:first-of-type:before { display: none; }

table.tableblock { max-width: 100%; border-collapse: separate; }
table.tableblock td > .paragraph:last-child p > p:last-child, table.tableblock th > p:last-child, table.tableblock td > p:last-child { margin-bottom: 0; }

table.tableblock, th.tableblock, td.tableblock { border: 0 solid #d8d8ce; }

table.grid-all > thead > tr > .tableblock, table.grid-all > tbody > tr > .tableblock { border-width: 0 1px 1px 0; }

table.grid-all > tfoot > tr > .tableblock { border-width: 1px 1px 0 0; }

table.grid-cols > * > tr > .tableblock { border-width: 0 1px 0 0; }

table.grid-rows > thead > tr > .tableblock, table.grid-rows > tbody > tr > .tableblock { border-width: 0 0 1px 0; }

table.grid-rows > tfoot > tr > .tableblock { border-width: 1px 0 0 0; }

table.grid-all > * > tr > .tableblock:last-child, table.grid-cols > * > tr > .tableblock:last-child { border-right-width: 0; }

table.grid-all > tbody > tr:last-child > .tableblock, table.grid-all > thead:last-child > tr > .tableblock, table.grid-rows > tbody > tr:last-child > .tableblock, table.grid-rows > thead:last-child > tr > .tableblock { border-bottom-width: 0; }

table.frame-all { border-width: 1px; }

table.frame-sides { border-width: 0 1px; }

table.frame-topbot { border-width: 1px 0; }

th.halign-left, td.halign-left { text-align: left; }

th.halign-right, td.halign-right { text-align: right; }

th.halign-center, td.halign-center { text-align: center; }

th.valign-top, td.valign-top { vertical-align: top; }

th.valign-bottom, td.valign-bottom { vertical-align: bottom; }

th.valign-middle, td.valign-middle { vertical-align: middle; }

table thead th, table tfoot th { font-weight: bold; }

tbody tr th { display: table-cell; line-height: 1.4; background: -webkit-linear-gradient(top, #add386, #90b66a); }

tbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p { color: white; font-weight: bold; }

p.tableblock > code:only-child { background: none; padding: 0; }

p.tableblock { font-size: 1em; }

td > div.verse { white-space: pre; }

ol { margin-left: 1.75em; }

ul li ol { margin-left: 1.5em; }

dl dd { margin-left: 1.125em; }

dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; }

ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .ulist, .ulist .olist, .olist .ulist { margin-bottom: 0.375em; }

ul.checklist, ul.none, ol.none, ul.no-bullet, ol.no-bullet, ol.unnumbered, ul.unstyled, ol.unstyled { list-style-type: none; }

ul.no-bullet, ol.no-bullet, ol.unnumbered { margin-left: 0.625em; }

ul.unstyled, ol.unstyled { margin-left: 0; }

ul.checklist { margin-left: 0.625em; }

ul.checklist li > p:first-child > .fa-square-o:first-child, ul.checklist li > p:first-child > .fa-check-square-o:first-child { width: 1.25em; font-size: 0.8em; position: relative; bottom: 0.125em; }

ul.checklist li > p:first-child > input[type="checkbox"]:first-child { margin-right: 0.25em; }

ul.inline { display: -ms-flexbox; display: -webkit-box; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; list-style: none; margin: 0 0 0.375em -0.75em; }

ul.inline > li { margin-left: 0.75em; }

.unstyled dl dt { font-weight: normal; font-style: normal; }

ol.arabic { list-style-type: decimal; }

ol.decimal { list-style-type: decimal-leading-zero; }

ol.loweralpha { list-style-type: lower-alpha; }

ol.upperalpha { list-style-type: upper-alpha; }

ol.lowerroman { list-style-type: lower-roman; }

ol.upperroman { list-style-type: upper-roman; }

ol.lowergreek { list-style-type: lower-greek; }

.hdlist > table, .colist > table { border: 0; background: none; }
.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; }

td.hdlist1, td.hdlist2 { vertical-align: top; padding: 0 0.625em; }

td.hdlist1 { font-weight: bold; padding-bottom: 0.75em; }

.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; }

.colist > table tr > td:first-of-type { padding: 0.4em 0.75em 0 0.75em; line-height: 1; vertical-align: top; }
.colist > table tr > td:first-of-type img { max-width: initial; }
.colist > table tr > td:last-of-type { padding: 0.25em 0; }

.thumb, .th { line-height: 0; display: inline-block; border: solid 4px white; -webkit-box-shadow: 0 0 0 1px #dddddd; box-shadow: 0 0 0 1px #dddddd; }

.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; }
.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; }
.imageblock > .title { margin-bottom: 0; }
.imageblock.thumb, .imageblock.th { border-width: 6px; }
.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; }

.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; }
.image.left { margin-right: 0.625em; }
.image.right { margin-left: 0.625em; }

a.image { text-decoration: none; display: inline-block; }
a.image object { pointer-events: none; }

sup.footnote, sup.footnoteref { font-size: 0.875em; position: static; vertical-align: super; }
sup.footnote a, sup.footnoteref a { text-decoration: none; }
sup.footnote a:active, sup.footnoteref a:active { text-decoration: underline; }

#footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; }
#footnotes hr { width: 20%; min-width: 6.25em; margin: -0.25em 0 0.75em 0; border-width: 1px 0 0 0; }
#footnotes .footnote { padding: 0 0.375em 0 0.225em; line-height: 1.3334; font-size: 0.875em; margin-left: 1.2em; margin-bottom: 0.2em; }
#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; margin-left: -1.05em; }
#footnotes .footnote:last-of-type { margin-bottom: 0; }
#content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; }

.gist .file-data > table { border: 0; background: #fff; width: 100%; margin-bottom: 0; }
.gist .file-data > table td.line-data { width: 99%; }

div.unbreakable { page-break-inside: avoid; }

.big { font-size: larger; }

.small { font-size: smaller; }

.underline { text-decoration: underline; }

.overline { text-decoration: overline; }

.line-through { text-decoration: line-through; }

.aqua { color: #00bfbf; }

.aqua-background { background-color: #00fafa; }

.black { color: black; }

.black-background { background-color: black; }

.blue { color: #0000bf; }

.blue-background { background-color: #0000fa; }

.fuchsia { color: #bf00bf; }

.fuchsia-background { background-color: #fa00fa; }

.gray { color: #606060; }

.gray-background { background-color: #7d7d7d; }

.green { color: #006000; }

.green-background { background-color: #007d00; }

.lime { color: #00bf00; }

.lime-background { background-color: #00fa00; }

.maroon { color: #600000; }

.maroon-background { background-color: #7d0000; }

.navy { color: #000060; }

.navy-background { background-color: #00007d; }

.olive { color: #606000; }

.olive-background { background-color: #7d7d00; }

.purple { color: #600060; }

.purple-background { background-color: #7d007d; }

.red { color: #bf0000; }

.red-background { background-color: #fa0000; }

.silver { color: #909090; }

.silver-background { background-color: #bcbcbc; }

.teal { color: #006060; }

.teal-background { background-color: #007d7d; }

.white { color: #bfbfbf; }

.white-background { background-color: #fafafa; }

.yellow { color: #bfbf00; }

.yellow-background { background-color: #fafa00; }

span.icon > .fa { cursor: default; }
a span.icon > .fa { cursor: inherit; }

.admonitionblock td.icon [class^="fa icon-"] { font-size: 2.5em; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); cursor: default; }
.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #29475c; }
.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; }
.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; }
.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; }
.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; }

.conum[data-value] { display: inline-block; color: #fff !important; background-color: black; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; font-size: 0.75em; width: 1.67em; height: 1.67em; line-height: 1.67em; font-family: "Open Sans", "DejaVu Sans", sans-serif; font-style: normal; font-weight: bold; }
.conum[data-value] * { color: #fff !important; }
.conum[data-value] + b { display: none; }
.conum[data-value]:after { content: attr(data-value); }
pre .conum[data-value] { position: relative; top: -0.125em; }

b.conum * { color: inherit !important; }

.conum:not([data-value]):empty { display: none; }

h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { border-bottom: 1px solid #dddddd; }

.sect1 { padding-bottom: 0; }

#toctitle { color: #00406F; font-weight: normal; margin-top: 1.5em; }

.sidebarblock { border-color: #aaa; }

code { -webkit-border-radius: 4px; border-radius: 4px; }

p.tableblock.header { color: #6d6e71; }

.literalblock pre, .listingblock pre { background: #eeeeee; }

</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
<style>
/* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
/*pre.CodeRay {background-color:#f7f7f8;}*/
.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
table.CodeRay td{vertical-align: top;line-height:1.45}
table.CodeRay td.line-numbers{text-align:right}
table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
table.CodeRay td.code{padding:0 0 0 .5em}
table.CodeRay td.code>pre{padding:0}
.CodeRay .debug{color:#fff !important;background:#000080 !important}
.CodeRay .annotation{color:#007}
.CodeRay .attribute-name{color:#000080}
.CodeRay .attribute-value{color:#700}
.CodeRay .binary{color:#509}
.CodeRay .comment{color:#998;font-style:italic}
.CodeRay .char{color:#04d}
.CodeRay .char .content{color:#04d}
.CodeRay .char .delimiter{color:#039}
.CodeRay .class{color:#458;font-weight:bold}
.CodeRay .complex{color:#a08}
.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
.CodeRay .color{color:#099}
.CodeRay .class-variable{color:#369}
.CodeRay .decorator{color:#b0b}
.CodeRay .definition{color:#099}
.CodeRay .delimiter{color:#000}
.CodeRay .doc{color:#970}
.CodeRay .doctype{color:#34b}
.CodeRay .doc-string{color:#d42}
.CodeRay .escape{color:#666}
.CodeRay .entity{color:#800}
.CodeRay .error{color:#808}
.CodeRay .exception{color:inherit}
.CodeRay .filename{color:#099}
.CodeRay .function{color:#900;font-weight:bold}
.CodeRay .global-variable{color:#008080}
.CodeRay .hex{color:#058}
.CodeRay .integer,.CodeRay .float{color:#099}
.CodeRay .include{color:#555}
.CodeRay .inline{color:#000}
.CodeRay .inline .inline{background:#ccc}
.CodeRay .inline .inline .inline{background:#bbb}
.CodeRay .inline .inline-delimiter{color:#d14}
.CodeRay .inline-delimiter{color:#d14}
.CodeRay .important{color:#555;font-weight:bold}
.CodeRay .interpreted{color:#b2b}
.CodeRay .instance-variable{color:#008080}
.CodeRay .label{color:#970}
.CodeRay .local-variable{color:#963}
.CodeRay .octal{color:#40e}
.CodeRay .predefined{color:#369}
.CodeRay .preprocessor{color:#579}
.CodeRay .pseudo-class{color:#555}
.CodeRay .directive{font-weight:bold}
.CodeRay .type{font-weight:bold}
.CodeRay .predefined-type{color:inherit}
.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
.CodeRay .key{color:#808}
.CodeRay .key .delimiter{color:#606}
.CodeRay .key .char{color:#80f}
.CodeRay .value{color:#088}
.CodeRay .regexp .delimiter{color:#808}
.CodeRay .regexp .content{color:#808}
.CodeRay .regexp .modifier{color:#808}
.CodeRay .regexp .char{color:#d14}
.CodeRay .regexp .function{color:#404;font-weight:bold}
.CodeRay .string{color:#d20}
.CodeRay .string .string .string{background:#ffd0d0}
.CodeRay .string .content{color:#d14}
.CodeRay .string .char{color:#d14}
.CodeRay .string .delimiter{color:#d14}
.CodeRay .shell{color:#d14}
.CodeRay .shell .delimiter{color:#d14}
.CodeRay .symbol{color:#990073}
.CodeRay .symbol .content{color:#a60}
.CodeRay .symbol .delimiter{color:#630}
.CodeRay .tag{color:#008080}
.CodeRay .tag-special{color:#d70}
.CodeRay .variable{color:#036}
.CodeRay .insert{background:#afa}
.CodeRay .delete{background:#faa}
.CodeRay .change{color:#aaf;background:#007}
.CodeRay .head{color:#f8f;background:#505}
.CodeRay .insert .insert{color:#080}
.CodeRay .delete .delete{color:#800}
.CodeRay .change .change{color:#66f}
.CodeRay .head .head{color:#f4f}
</style>
<link rel="stylesheet" href="../katex/katex.min.css">
<script src="../katex/katex.min.js"></script>
<script src="../katex/contrib/auto-render.min.js"></script>
    <!-- Use KaTeX to render math once document is loaded, see
         https://github.com/Khan/KaTeX/tree/master/contrib/auto-render -->
<script>
    document.addEventListener("DOMContentLoaded", function () {
        renderMathInElement(
            document.body,
            {
                delimiters: [
                    { left: "$$", right: "$$", display: true},
                    { left: "\\[", right: "\\]", display: true},
                    { left: "$", right: "$", display: false},
                    { left: "\\(", right: "\\)", display: false}
                ]
            }
        );
    });
</script></head>
<body class="book toc2 toc-left" style="max-width: 100;">
<div id="header">
<h1>The OpenCL Extension Specification</h1>
<div class="details">
<span id="author" class="author">Khronos OpenCL Working Group</span><br>
<span id="revnumber">version 2.2-7,</span>
<span id="revdate">Sat, 12 May 2018 13:21:27 +0000</span>
<br><span id="revremark">from git branch: master commit: ab6da3001e9eeafaa36c18888ca7eb4ebb9768af</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#optional-extensions">1. Optional Extensions</a></li>
<li><a href="#cl_khr_fp16">2. Half Precision Floating-Point</a></li>
<li><a href="#cl_khr_gl_sharing">3. Creating an OpenCL Context from an OpenGL Context or Share Group</a></li>
<li><a href="#cl_khr_gl_sharing__memobjs">4. Creating OpenCL Memory Objects from OpenGL Objects</a></li>
<li><a href="#cl_khr_gl_event-creating">5. Creating OpenCL Event Objects from OpenGL Sync Objects</a></li>
<li><a href="#cl_khr_dx9_media_sharing">6. Creating OpenCL Memory Objects from DirectX 9 Media Surfaces</a></li>
<li><a href="#cl_khr_d3d10_sharing">7. Creating OpenCL Memory Objects from Direct3D 10 Buffers and Textures</a></li>
<li><a href="#cl_khr_d3d11_sharing">8. Creating OpenCL Memory Objects from Direct3D 11 Buffers and Textures</a></li>
<li><a href="#cl_khr_gl_depth_images">9. Sharing OpenGL and OpenGL ES Depth and Depth-Stencil Images</a></li>
<li><a href="#cl_khr_gl_msaa_sharing">10. Creating OpenCL Memory Obejcts from OpenGL MSAA Textures</a></li>
<li><a href="#cl_khr_initialize_memory">11. Local and Private Memory Initialization</a></li>
<li><a href="#cl_khr_terminate_context">12. Terminating OpenCL contexts</a></li>
<li><a href="#cl_khr_spir">13. SPIR 1.2 Binaries</a></li>
<li><a href="#cl_khr_icd-opencl">14. OpenCL Installable Client Driver (ICD)</a></li>
<li><a href="#cl_khr_subgroups">15. Subgroups</a></li>
<li><a href="#cl_khr_mipmap_image">16. Mipmaps</a></li>
<li><a href="#cl_khr_egl_image">17. Creating OpenCL Memory Objects from EGL Images</a></li>
<li><a href="#cl_khr_egl_event">18. Creating OpenCL Event Objects from EGL Sync Objects</a></li>
<li><a href="#cl_khr_priority_hints">19. Priority Hints</a></li>
<li><a href="#cl_khr_throttle_hints">20. Throttle Hints</a></li>
<li><a href="#cl_khr_subgroup_named_barrier">21. Named Barriers for Subgroups</a></li>
<li><a href="#_summary_of_changes_from_opencl_2_1">Appendix A: Summary of Changes from OpenCL 2.1</a></li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Copyright 2008-2018 The Khronos Group.</p>
</div>
<div class="paragraph">
<p>This specification is protected by copyright laws and contains material proprietary
to the Khronos Group, Inc. Except as described by these terms, it or any components
may not be reproduced, republished, distributed, transmitted, displayed, broadcast
or otherwise exploited in any manner without the express prior written permission
of Khronos Group.</p>
</div>
<div class="paragraph">
<p>Khronos Group grants a conditional copyright license to use and reproduce the
unmodified specification for any purpose, without fee or royalty, EXCEPT no licenses
to any patent, trademark or other intellectual property rights are granted under
these terms. Parties desiring to implement the specification and make use of
Khronos trademarks in relation to that implementation, and receive reciprocal patent
license protection under the Khronos IP Policy must become Adopters and confirm the
implementation as conformant under the process defined by Khronos for this
specification; see <a href="https://www.khronos.org/adopters" class="bare">https://www.khronos.org/adopters</a>.</p>
</div>
<div class="paragraph">
<p>Khronos Group makes no, and expressly disclaims any, representations or warranties,
express or implied, regarding this specification, including, without limitation:
merchantability, fitness for a particular purpose, non-infringement of any
intellectual property, correctness, accuracy, completeness, timeliness, and
reliability. Under no circumstances will the Khronos Group, or any of its Promoters,
Contributors or Members, or their respective partners, officers, directors,
employees, agents or representatives be liable for any damages, whether direct,
indirect, special or consequential damages for lost revenues, lost profits, or
otherwise, arising from or in connection with these materials.</p>
</div>
<div class="paragraph">
<p>Vulkan is a registered trademark and Khronos, OpenXR, SPIR, SPIR-V, SYCL, WebGL,
WebCL, OpenVX, OpenVG, EGL, COLLADA, glTF, NNEF, OpenKODE, OpenKCAM, StreamInput,
OpenWF, OpenSL ES, OpenMAX, OpenMAX AL, OpenMAX IL, OpenMAX DL, OpenML and DevU are
trademarks of the Khronos Group Inc. ASTC is a trademark of ARM Holdings PLC,
OpenCL is a trademark of Apple Inc. and OpenGL and OpenML are registered trademarks
and the OpenGL ES and OpenGL SC logos are trademarks of Silicon Graphics
International used under license by Khronos. All other product names, trademarks,
and/or company names are used solely for identification and belong to their
respective owners.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect1">
<h2 id="optional-extensions">1. Optional Extensions</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This document describes the list of optional features supported by OpenCL
2.2.
Optional extensions may be supported by some OpenCL devices.
Optional extensions are not required to be supported by a conformant OpenCL
implementation, but are expected to be widely available; they define
functionality that is likely to move into the required feature set in a
future revision of the OpenCL specification.
A brief description of how OpenCL extensions are defined is provided below.</p>
</div>
<div class="paragraph">
<p>For OpenCL extensions approved by the OpenCL working group, the following
naming conventions are used:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A unique <em>name string</em> of the form <code>"<strong>cl_khr_&lt;<em>name</em>&gt;</strong>"</code> is associated
with each extension.
If the extension is supported by an implementation, this string will be
present in the implementation&#8217;s CL_PLATFORM_EXTENSIONS string or
CL_DEVICE_EXTENSIONS string.</p>
</li>
<li>
<p>All API functions defined by the extension will have names of the form
<strong>cl&lt;<em>function_name</em>&gt;KHR</strong>.</p>
</li>
<li>
<p>All enumerants defined by the extension will have names of the form
<strong>CL_&lt;<em>enum_name</em>&gt;_KHR.</strong></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>OpenCL extensions approved by the OpenCL working group can be <em>promoted</em> to
required core features in later revisions of OpenCL.
When this occurs, the extension specifications are merged into the core
specification.
Functions and enumerants that are part of such promoted extensions will have
the <strong>KHR</strong> affix removed.
OpenCL implementations of such later revisions must also export the name
strings of promoted extensions in the CL_PLATFORM_EXTENSIONS or
CL_DEVICE_EXTENSIONS string, and support the <strong>KHR</strong>-affixed versions of
functions and enumerants as a transition aid.</p>
</div>
<div class="paragraph">
<p>For vendor extensions, the following naming conventions are used:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A unique <em>name string</em> of the form <code>"<strong>cl_&lt;<em>vendor_name</em>&gt;_&lt;<em>name&gt;</em></strong>"</code>
is associated with each extension.
If the extension is supported by an implementation, this string will be
present in the implementation&#8217;s CL_PLATFORM_EXTENSIONS string or
CL_DEVICE_EXTENSIONS string.</p>
</li>
<li>
<p>All API functions defined by the vendor extension will have names of the
form <strong>cl&lt;<em>function_name</em>&gt;&lt;<em>vendor_name</em>&gt;</strong>.</p>
</li>
<li>
<p>All enumerants defined by the vendor extension will have names of the
form <strong>CL_&lt;<em>enum_name</em>&gt;_&lt;<em>vendor_name</em>&gt;.</strong></p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="compiler-directives-for-optional-extensions">1.1. Compiler Directives for Optional Extensions</h3>
<div class="paragraph">
<p>The <strong>#pragma OPENCL EXTENSION</strong> directive controls the behavior of the OpenCL
compiler with respect to extensions.
The <strong>#pragma OPENCL EXTENSION</strong> directive is defined as:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#pragma OPENCL EXTENSION &lt;extension_name&gt; : &lt;behavior&gt;
#pragma OPENCL EXTENSION all : &lt;behavior&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>where <em>extension_name</em> is the name of the extension.
The <em>extension_name</em> will have names of the form <strong>cl_khr_&lt;<em>name</em>&gt;</strong> for an
extension approved by the OpenCL working group and will have names of the
form <strong>cl_&lt;<em>vendor_name</em>&gt;_&lt;<em>name</em>&gt;</strong> for vendor extensions.
The token <strong>all</strong> means that the behavior applies to all extensions supported
by the compiler.
The <em>behavior</em> can be set to one of the following values given by the table
below.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>behavior</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>enable</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Behave as specified by the extension <em>extension_name</em>.</p>
<p class="tableblock">  Report an error on the <strong><code>#pragma OPENCL EXTENSION</code></strong> if the
  <em>extension_name</em> is not supported, or if <strong>all</strong> is specified.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>disable</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Behave (including issuing errors and warnings) as if the extension
  <em>extension_name</em> is not part of the language definition.</p>
<p class="tableblock">  If <strong>all</strong> is specified, then behavior must revert back to that of the
  non-extended core version of the language being compiled to.</p>
<p class="tableblock">  Warn on the <strong><code>#pragma OPENCL EXTENSION</code></strong> if the extension <em>extension_name</em>
  is not supported.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The <strong><code>#pragma OPENCL EXTENSION</code></strong> directive is a simple, low-level mechanism
to set the behavior for each extension.
It does not define policies such as which combinations are appropriate;
those must be defined elsewhere.
The order of directives matter in setting the behavior for each extension.
Directives that occur later override those seen earlier.
The <strong>all</strong> variant sets the behavior for all extensions, overriding all
previously issued extension directives, but only if the <em>behavior</em> is set to
<strong>disable</strong>.</p>
</div>
<div class="paragraph">
<p>The initial state of the compiler is as if the directive</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#pragma OPENCL EXTENSION all : disable</code></pre>
</div>
</div>
<div class="paragraph">
<p>was issued, telling the compiler that all error and warning reporting must
be done according to this specification, ignoring any extensions.</p>
</div>
<div class="paragraph">
<p>Every extension which affects the OpenCL language semantics, syntax or adds
built-in functions to the language must create a preprocessor <code>#define</code> that
matches the extension name string.
This <code>#define</code> would be available in the language if and only if the
extension is supported on a given implementation.</p>
</div>
<div class="paragraph">
<p><strong>Example</strong>:</p>
</div>
<div class="paragraph">
<p>An extension which adds the extension string <code>"cl_khr_3d_image_writes"</code>
should also add a preprocessor <code>#define</code> called <strong><code>cl_khr_3d_image_writes</code></strong>.
A kernel can now use this preprocessor <code>#define</code> to do something like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#ifdef cl_khr_3d_image_writes
    // do something using the extension
#else
    // do something else or #error!
#endif</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="getting-opencl-api-extension-function-pointers">1.2. Getting OpenCL API Extension Function Pointers</h3>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>void clGetExtensionFunctionAddressForPlatform(cl_platform_id platform,
                                              const char *funcname)</code></pre>
</div>
</div>
<div class="paragraph">
<p>returns the address of the extension function named by <em>funcname</em> for a
given <em>platform</em> The pointer returned should be cast to a function pointer
type matching the extension function&#8217;s definition defined in the appropriate
extension specification and header file.
A return value of <code>NULL</code> indicates that the specified function does not
exist for the implementation or <em>platform</em> is not a valid platform.
A non-<code>NULL</code> return value for <strong>clGetExtensionFunctionAddressForPlatform</strong>
does not guarantee that an extension function is actually supported by the
platform.
The application must also make a corresponding query using
<strong>clGetPlatformInfo</strong>(platform, CL_PLATFORM_EXTENSIONS, &#8230;&#8203;) or
<strong>clGetDeviceInfo</strong>(device, CL_DEVICE_EXTENSIONS, &#8230;&#8203;) to determine if an
extension is supported by the OpenCL implementation.</p>
</div>
<div class="paragraph">
<p>Since there is no way to qualify the query with a
device, the function pointer returned must work for all implementations of
that extension on different devices for a platform.
The behavior of calling a device extension function on a device not
supporting that extension is undefined.</p>
</div>
<div class="paragraph">
<p><strong>clGetExtensionFunctionAddressForPlatform</strong> may not be be used to query for core
(non-extension) functions in OpenCL.
For extension functions that may be queried using
<strong>clGetExtensionFunctionAddressForPlatform</strong>, implementations may also choose to
export those functions statically from the object libraries
implementing those functions, however, portable applications cannot rely on
this behavior.</p>
</div>
<div class="paragraph">
<p>Function pointer typedefs must be declared for all extensions that add API
entrypoints.
These typedefs are a required part of the extension interface, to be
provided in an appropriate header (such as cl_ext.h if the extension is an
OpenCL extension, or cl_gl_ext.h if the extension is an OpenCL / OpenGL
sharing extension).</p>
</div>
<div class="paragraph">
<p>The following convention must be followed for all extensions affecting the
host API:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#ifndef extension_name
#define extension_name 1

// all data typedefs, token #defines, prototypes, and
// function pointer typedefs for this extension

// function pointer typedefs must use the
// following naming convention

typedef CL_API_ENTRY return_type
            (CL_API_CALL *clExtensionFunctionNameTAG_fn)(...);

#endif // _extension_name_</code></pre>
</div>
</div>
<div class="paragraph">
<p>where <code>TAG</code> can be <code>KHR</code>, <code>EXT</code> or <code>vendor-specific</code>.</p>
</div>
<div class="paragraph">
<p>Consider, for example, the <strong>cl_khr_gl_sharing</strong> extension.
This extension would add the following to cl_gl_ext.h:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#ifndef cl_khr_gl_sharing
#define cl_khr_gl_sharing 1

// all data typedefs, token #defines, prototypes, and
// function pointer typedefs for this extension
#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000
#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006
#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007
#define CL_GL_CONTEXT_KHR 0x2008
#define CL_EGL_DISPLAY_KHR 0x2009
#define CL_GLX_DISPLAY_KHR 0x200A
#define CL_WGL_HDC_KHR 0x200B
#define CL_CGL_SHAREGROUP_KHR 0x200C

// function pointer typedefs must use the
// following naming convention
typedef CL_API_ENTRY cl_int
        (CL_API_CALL *clGetGLContextInfoKHR_fn)(
            const cl_context_properties * /* properties */,
            cl_gl_context_info /* param_name */,
            size_t /* param_value_size */,
            void * /* param_value */,
            size_t * /*param_value_size_ret*/);

#endif // cl_khr_gl_sharing</code></pre>
</div>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_fp16">2. Half Precision Floating-Point</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes the <strong>cl_khr_fp16</strong> extension.
This extension adds support for half scalar and vector types as built-in
types that can be used for arithmetic operations, conversions etc.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_fp16-additions-to-chapter-6-of-the-opencl-2.0-specification">2.1. Additions to Chapter 6 of the OpenCL 2.0 C Specification</h3>
<div class="paragraph">
<p>The list of built-in scalar, and vector data types defined in <em>tables 6.1</em>,
and <em>6.2</em> are extended to include the following:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 25%;">
<col style="width: 75%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half2</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 2-component half-precision floating-point vector.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half3</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 3-component half-precision floating-point vector.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half4</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 4-component half-precision floating-point vector.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half8</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 8-component half-precision floating-point vector.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half16</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 16-component half-precision floating-point vector.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The built-in vector data types for <code>halfn</code> are also declared as appropriate
types in the OpenCL API (and header files) that can be used by an
application.
The following table describes the built-in vector data types for <code>halfn</code> as
defined in the OpenCL C programming language and the corresponding data type
available to the application:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type in OpenCL Language</strong></th>
<th class="tableblock halign-left valign-top"><strong>API type for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half2</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_half2</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half3</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_half3</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half4</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_half4</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half8</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_half8</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>half16</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_half16</strong></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The relational, equality, logical and logical unary operators described in
<em>section 6.3</em> can be used with <code>half</code> scalar and <code>halfn</code> vector types and
shall produce a scalar <code>int</code> and vector <code>shortn</code> result respectively.</p>
</div>
<div class="paragraph">
<p>The OpenCL compiler accepts an h and H suffix on floating point literals,
indicating the literal is typed as a half.</p>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-conversions">2.1.1. Conversions</h4>
<div class="paragraph">
<p>The implicit conversion rules specified in <em>section 6.2.1</em> now include the
<code>half</code> scalar and <code>halfn</code> vector data types.</p>
</div>
<div class="paragraph">
<p>The explicit casts described in <em>section 6.2.2</em> are extended to take a
<code>half</code> scalar data type and a <code>halfn</code> vector data type.</p>
</div>
<div class="paragraph">
<p>The explicit conversion functions described in <em>section 6.2.3</em> are extended
to take a <code>half</code> scalar data type and a <code>halfn</code> vector data type.</p>
</div>
<div class="paragraph">
<p>The <code>as_typen()</code> function for re-interpreting types as described in <em>section
6.2.4.2</em> is extended to allow conversion-free casts between <code>shortn</code>,
<code>ushortn</code>, and <code>halfn</code> scalar and vector data types.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-math-functions">2.1.2. Math Functions</h4>
<div class="paragraph">
<p>The built-in math functions defined in <em>table 6.8</em> (also listed below) are
extended to include appropriate versions of functions that take <code>half</code>, and
<code>half{2|3|4|8|16}</code> as arguments and return values.
<code>gentype</code> now also includes <code>half</code>, <code>half2</code>, <code>half3</code>, <code>half4</code>, <code>half8</code>, and
<code>half16</code>.</p>
</div>
<div class="paragraph">
<p>For any specific use of a function, the actual type has to be the same for
all arguments and the return type.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 1. <em>Half Precision Built-in Math Functions</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>acos</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Arc cosine function.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>acosh</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Inverse hyperbolic cosine.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>acospi</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <strong>acos</strong> (<em>x</em>) / π.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>asin</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Arc sine function.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>asinh</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Inverse hyperbolic sine.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>asinpi</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <strong>asin</strong> (<em>x</em>) / π.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>atan</strong> (gentype <em>y_over_x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Arc tangent function.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>atan2</strong> (gentype <em>y</em>, gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Arc tangent of <em>y</em> / <em>x</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>atanh</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Hyperbolic arc tangent.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>atanpi</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <strong>atan</strong> (<em>x</em>) / π.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>atan2pi</strong> (gentype <em>y</em>, gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <strong>atan2</strong> (<em>y</em>, <em>x</em>) / π.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>cbrt</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute cube-root.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>ceil</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Round to integral value using the round to positive infinity rounding
  mode.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>copysign</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns <em>x</em> with its sign changed to match the sign of <em>y</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>cos</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute cosine.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>cosh</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute hyperbolic consine.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>cospi</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <strong>cos</strong> (π <em>x</em>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>erfc</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Complementary error function.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>erf</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Error function encountered in integrating the normal distribution.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>exp</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute the base- e exponential of <em>x</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>exp2</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Exponential base 2 function.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>exp10</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Exponential base 10 function.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>expm1</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <em>e<sup>x</sup></em>- 1.0.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>fabs</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute absolute value of a floating-point number.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>fdim</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><em>x</em> - <em>y</em> if <em>x</em> &gt; <em>y</em>, +0 if x is less than or equal to y.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>floor</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Round to integral value using the round to negative infinity rounding
  mode.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>fma</strong> (gentype <em>a</em>, gentype <em>b</em>, gentype <em>c</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the correctly rounded floating-point representation of the sum of
  <em>c</em> with the infinitely precise product of <em>a</em> and <em>b</em>.
  Rounding of intermediate products shall not occur.
  Edge case behavior is per the IEEE 754-2008.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>fmax</strong> (gentype x, gentype y)<br>
  gentype <strong>fmax</strong> (gentype <em>x</em>, half <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns <em>y</em> if <em>x</em> &lt; <em>y</em>, otherwise it returns <em>x</em>.
  If one argument is a NaN, <strong>fmax()</strong> returns the other argument.
  If both arguments are NaNs, <strong>fmax()</strong> returns a NaN.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>fmin</strong> (gentype <em>x</em>, gentype <em>y</em>)<br>
  gentype <strong>fmin</strong> (gentype <em>x</em>, half <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns <em>y</em> if <em>y</em> &lt; <em>x</em>, otherwise it returns <em>x</em>.
  If one argument is a NaN, <strong>fmin()</strong> returns the other argument.
  If both arguments are NaNs, <strong>fmin()</strong> returns a NaN.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>fmod</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Modulus.
  Returns <em>x</em> - <em>y</em> * <strong>trunc</strong> (<em>x</em>/<em>y</em>) .</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>fract</strong> (gentype <em>x</em>, gentype *<em>iptr</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns <strong>fmin</strong>( <em>x</em> - <strong>floor</strong> (<em>x</em>), 0x1.ffcp-1f ).</p>
<p class="tableblock">  <strong>floor</strong>(x) is returned in <em>iptr</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half<em>n</em> <strong>frexp</strong> (half<em>n</em> <em>x</em>, int<em>n</em> *exp)<br>
  half <strong>frexp</strong> (half <em>x</em>, int *exp)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Extract mantissa and exponent from <em>x</em>.
  For each component the mantissa returned is a float with magnitude in the
  interval [1/2, 1) or 0.
  Each component of <em>x</em> equals mantissa returned * 2<em><sup>exp</sup></em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>hypot</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute the value of the square root of <em>x</em><sup>2</sup>+ <em>y</em><sup>2</sup> without undue
  overflow or underflow.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int<em>n</em> <strong>ilogb</strong> (half<em>n</em> <em>x</em>)<br>
  int <strong>ilogb</strong> (half <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Return the exponent as an integer value.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half<em>n</em> <strong>ldexp</strong> (half<em>n</em> <em>x</em>, int<em>n</em> <em>k</em>)<br>
  half<em>n</em> <strong>ldexp</strong> (half<em>n</em> <em>x</em>, int <em>k</em>)<br>
  half <strong>ldexp</strong> (half <em>x</em>, int <em>k</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Multiply <em>x</em> by 2 to the power <em>k</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>lgamma</strong> (gentype <em>x</em>)<br>
  half<em>n</em> <strong>lgamma_r</strong> (half<em>n</em> <em>x</em>, int<em>n</em> *<em>signp</em>)<br>
  half <strong>lgamma_r</strong> (half <em>x</em>, int *<em>signp</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Log gamma function.
  Returns the natural logarithm of the absolute value of the gamma function.
  The sign of the gamma function is returned in the <em>signp</em> argument of
  <strong>lgamma_r</strong>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>log</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute natural logarithm.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>log2</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute a base 2 logarithm.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>log10</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute a base 10 logarithm.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>log1p</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute log<sub>e</sub>(1.0 + <em>x</em>) .</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>logb</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute the exponent of <em>x</em>, which is the integral part of
  log<em><sub>r</sub></em>|<em>x</em>|.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>mad</strong> (gentype <em>a</em>, gentype <em>b</em>, gentype <em>c</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>mad</strong> computes <em>a</em> * <em>b</em> + <em>c</em>.
  The function may compute <em>a</em> * <em>b</em> + <em>c</em> with reduced accuracy
  in the embedded profile.  See the SPIR-V OpenCL environment specification
  for details. On some hardware the mad instruction may provide better
  performance than expanded computation of <em>a</em> * <em>b</em> + <em>c</em>.</p>
<p class="tableblock">  Note: For some usages, e.g. <strong>mad</strong>(a, b, -a*b), the half precision
  definition of <strong>mad</strong>() is loose enough that almost any result is allowed
  from <strong>mad</strong>() for some values of a and b.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>maxmag</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns <em>x</em> if |<em>x</em>| &gt; |<em>y</em>|, <em>y</em> if |<em>y</em>| &gt; |<em>x</em>|, otherwise
  <strong>fmax</strong>(<em>x</em>, <em>y</em>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>minmag</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns <em>x</em> if |<em>x</em>| &lt; |<em>y</em>|, <em>y</em> if |<em>y</em>| &lt; |<em>x</em>|, otherwise
  <strong>fmin</strong>(<em>x</em>, <em>y</em>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>modf</strong> (gentype <em>x</em>, gentype *<em>iptr</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Decompose a floating-point number.
  The <strong>modf</strong> function breaks the argument <em>x</em> into integral and fractional
  parts, each of which has the same sign as the argument.
  It stores the integral part in the object pointed to by <em>iptr</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half<em>n</em> <strong>nan</strong> (ushort<em>n</em> <em>nancode</em>)<br>
  half <strong>nan</strong> (ushort <em>nancode</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns a quiet NaN.
  The <em>nancode</em> may be placed in the significand of the resulting NaN.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>nextafter</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Computes the next representable half-precision floating-point value
  following <em>x</em> in the direction of <em>y</em>.
  Thus, if <em>y</em> is less than <em>x</em>, <strong>nextafter</strong>() returns the largest
  representable floating-point number less than <em>x</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>pow</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <em>x</em> to the power <em>y</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half<em>n</em> <strong>pown</strong> (half<em>n</em> <em>x</em>, int<em>n</em> <em>y</em>)<br>
  half <strong>pown</strong> (half <em>x</em>, int <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <em>x</em> to the power <em>y</em>, where <em>y</em> is an integer.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>powr</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <em>x</em> to the power <em>y</em>, where <em>x</em> is &gt;= 0.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>remainder</strong> (gentype <em>x</em>, gentype <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute the value <em>r</em> such that <em>r</em> = <em>x</em> - <em>n</em>*<em>y</em>, where <em>n</em> is the
  integer nearest the exact value of <em>x</em>/<em>y</em>.
  If there are two integers closest to <em>x</em>/<em>y</em>, <em>n</em> shall be the even one.
  If <em>r</em> is zero, it is given the same sign as <em>x</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half<em>n</em> <strong>remquo</strong> (half<em>n</em> <em>x</em>, half<em>n</em> <em>y</em>, int<em>n</em> *<em>quo</em>)<br>
  half <strong>remquo</strong> (half <em>x</em>, half <em>y</em>, int *<em>quo</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The <strong>remquo</strong> function computes the value r such that <em>r</em> = <em>x</em> - <em>k</em>*<em>y</em>,
  where <em>k</em> is the integer nearest the exact value of <em>x</em>/<em>y</em>.
  If there are two integers closest to <em>x</em>/<em>y</em>, <em>k</em> shall be the even one.
  If <em>r</em> is zero, it is given the same sign as <em>x</em>.
  This is the same value that is returned by the <strong>remainder</strong> function.
  <strong>remquo</strong> also calculates the lower seven bits of the integral quotient
  <em>x</em>/<em>y</em>, and gives that value the same sign as <em>x</em>/<em>y</em>.
  It stores this signed value in the object pointed to by <em>quo</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>rint</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Round to integral value (using round to nearest even rounding mode) in
  floating-point format.
  Refer to section 7.1 for description of rounding modes.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half<em>n</em> <strong>rootn</strong> (half<em>n</em> <em>x</em>, int<em>n</em> <em>y</em>)<br>
  half <strong>rootn</strong> (half <em>x</em>, int <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <em>x</em> to the power 1/<em>y</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>round</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Return the integral value nearest to <em>x</em> rounding halfway cases away from
  zero, regardless of the current rounding direction.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>rsqrt</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute inverse square root.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sin</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute sine.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sincos</strong> (gentype <em>x</em>, gentype *<em>cosval</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute sine and cosine of x.
  The computed sine is the return value and computed cosine is returned in
  <em>cosval</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sinh</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute hyperbolic sine.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sinpi</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <strong>sin</strong> (π <em>x</em>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sqrt</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute square root.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>tan</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute tangent.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>tanh</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute hyperbolic tangent.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>tanpi</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute <strong>tan</strong> (π <em>x</em>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>tgamma</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute the gamma function.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>trunc</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Round to integral value using the round to zero rounding mode.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The <strong>FP_FAST_FMA_HALF</strong> macro indicates whether the <strong>fma()</strong> family of
functions are fast compared with direct code for half precision
floating-point.
If defined, the <strong>FP_FAST_FMA_HALF</strong> macro shall indicate that the <strong>fma()</strong>
function generally executes about as fast as, or faster than, a multiply and
an add of <strong>half</strong> operands</p>
</div>
<div class="paragraph">
<p>The macro names given in the following list must use the values specified.
These constant expressions are suitable for use in #if preprocessing
directives.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>#define HALF_DIG            3
#define HALF_MANT_DIG       11
#define HALF_MAX_10_EXP     +4
#define HALF_MAX_EXP        +16
#define HALF_MIN_10_EXP     -4
#define HALF_MIN_EXP        -13
#define HALF_RADIX          2
#define HALF_MAX            0x1.ffcp15h
#define HALF_MIN            0x1.0p-14h
#define HALF_EPSILON        0x1.0p-10h</code></pre>
</div>
</div>
<div class="paragraph">
<p>The following table describes the built-in macro names given above in the
OpenCL C programming language and the corresponding macro names available to
the application.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Macro in OpenCL Language</strong></th>
<th class="tableblock halign-left valign-top"><strong>Macro for application</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_DIG</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_DIG</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_MANT_DIG</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_MANT_DIG</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_MAX_10_EXP</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_MAX_10_EXP</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_MAX_EXP</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_MAX_EXP</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_MIN_10_EXP</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_MIN_10_EXP</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_MIN_EXP</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_MIN_EXP</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_RADIX</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_RADIX</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_MAX</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_MAX</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_MIN</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_MIN</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>HALF_EPSILSON</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_HALF_EPSILON</strong></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The following constants are also available.
They are of type <code>half</code> and are accurate within the precision of the <code>half</code>
type.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Constant</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_E_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_LOG2E_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>2</sub>e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_LOG10E_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>10</sub>e</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_LN2_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>e</sub>2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_LN10_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of log<sub>e</sub>10</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_PI_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_PI_2_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π / 2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_PI_4_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of π / 4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_1_PI_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 1 / π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_2_PI_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 2 / π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_2_SQRTPI_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 2 / √π</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_SQRT2_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of √2</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>M_SQRT1_2_H</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Value of 1 / √2</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-common-functions">2.1.3. Common Functions</h4>
<div class="paragraph">
<p>The built-in common functions defined in <em>table 6.12</em> (also listed below)
are extended to include appropriate versions of functions that take <code>half</code>,
and <code>half{2|3|4|8|16}</code> as arguments and return values.
gentype now also includes <code>half</code>, <code>half2</code>, <code>half3</code>, <code>half4</code>, <code>half8</code> and
<code>half16</code>.
These are described below.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 2. <em>Half Precision Built-in Common Functions</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>clamp</strong> (<br>
  gentype <em>x</em>, gentype <em>minval</em>, gentype <em>maxval</em>)</p>
<p class="tableblock">  gentype <strong>clamp</strong> (<br>
  gentype <em>x</em>, half <em>minval</em>, half <em>maxval</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns <strong>min</strong>(<strong>max</strong>(<em>x</em>, <em>minval</em>), <em>maxval</em>).</p>
<p class="tableblock">  Results are undefined if <em>minval</em> &gt; <em>maxval</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>degrees</strong> (gentype <em>radians</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Converts <em>radians</em> to degrees,<br>
  i.e. (180 / π) * <em>radians</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>max</strong> (gentype <em>x</em>, gentype <em>y</em>)<br>
  gentype <strong>max</strong> (gentype <em>x</em>, half <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns <em>y</em> if <em>x</em> &lt; <em>y</em>, otherwise it returns <em>x</em>.
  If <em>x</em> and <em>y</em> are infinite or NaN, the return values are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>min</strong> (gentype <em>x</em>, gentype <em>y</em>)<br>
  gentype <strong>min</strong> (gentype <em>x</em>, half <em>y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns <em>y</em> if <em>y</em> &lt; <em>x</em>, otherwise it returns <em>x</em>.
  If <em>x</em> and <em>y</em> are infinite or NaN, the return values are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>mix</strong> (gentype <em>x</em>, gentype <em>y</em>, gentype <em>a</em>)<br>
  gentype <strong>mix</strong> (gentype <em>x</em>, gentype <em>y</em>, half <em>a</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the linear blend of <em>x</em> and <em>y</em> implemented as:</p>
<p class="tableblock">  <em>x</em> + (<em>y</em> - <em>x)</em> * <em>a</em></p>
<p class="tableblock">  <em>a</em> must be a value in the range 0.0 &#8230;&#8203; 1.0.
  If <em>a</em> is not in the range 0.0 &#8230;&#8203; 1.0, the return values are undefined.</p>
<p class="tableblock">  Note: The half precision <strong>mix</strong> function can be implemented using contractions such as <strong>mad</strong> or <strong>fma</strong>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>radians</strong> (gentype <em>degrees</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Converts <em>degrees</em> to radians, i.e. (π / 180) * <em>degrees</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>step</strong> (gentype <em>edge</em>, gentype <em>x</em>)<br>
  gentype <strong>step</strong> (half <em>edge</em>, gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns 0.0 if <em>x</em> &lt; <em>edge</em>, otherwise it returns 1.0.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>smoothstep</strong> (<br>
  gentype <em>edge0</em>, gentype <em>edge1</em>, gentype <em>x</em>)</p>
<p class="tableblock">  gentype <strong>smoothstep</strong> (<br>
  half <em>edge0</em>, half <em>edge1</em>, gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns 0.0 if <em>x</em> &lt;= <em>edge0</em> and 1.0 if <em>x</em> &gt;= <em>edge1</em> and performs
  smooth Hermite interpolation between 0 and 1 when <em>edge0</em> &lt; <em>x</em> &lt; <em>edge1</em>.
  This is useful in cases where you would want a threshold function with a
  smooth transition.</p>
<p class="tableblock">  This is equivalent to:</p>
<p class="tableblock">  gentype <em>t</em>;<br>
  <em>t</em> = clamp ((<em>x</em> - <em>edge0</em>) / (<em>edge1</em> - <em>edge0</em>), 0, 1);<br>
  return <em>t</em> * <em>t</em> * (3 - 2 * <em>t</em>);<br></p>
<p class="tableblock">  Results are undefined if <em>edge0</em> &gt;= <em>edge1</em>.</p>
<p class="tableblock">  Note: The half precision <strong>smoothstep</strong> function can be implemented using contractions such as <strong>mad</strong> or <strong>fma</strong>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sign</strong> (gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns 1.0 if <em>x</em> &gt; 0, -0.0 if <em>x</em> = -0.0, +0.0 if <em>x</em> = +0.0, or -1.0 if
  <em>x</em> &lt; 0.
  Returns 0.0 if <em>x</em> is a NaN.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-geometric-functions">2.1.4. Geometric Functions</h4>
<div class="paragraph">
<p>The built-in geometric functions defined in <em>table 6.13</em> (also listed below)
are extended to include appropriate versions of functions that take <code>half</code>,
and <code>half{2|3|4}</code> as arguments and return values.
gentype now also includes <code>half</code>, <code>half2</code>, <code>half3</code> and <code>half4</code>.
These are described below.</p>
</div>
<div class="paragraph">
<p>Note: The half precision geometric functions can be implemented using
contractions such as <strong>mad</strong> or <strong>fma</strong>.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 3. <em>Half Precision Built-in Geometric Functions</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>cross</strong> (half4 <em>p0</em>, half4 <em>p1</em>)<br>
  half3 <strong>cross</strong> (half3 <em>p0</em>, half3 <em>p1</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the cross product of <em>p0.xyz</em> and <em>p1.xyz</em>.
  The <em>w</em> component of the result will be 0.0.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half <strong>dot</strong> (gentype <em>p0</em>, gentype <em>p1</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Compute the dot product of <em>p0</em> and <em>p1</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half <strong>distance</strong> (gentype <em>p0</em>, gentype <em>p1</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the distance between <em>p0</em> and <em>p1</em>.
  This is calculated as <strong>length</strong>(<em>p0</em> - <em>p1</em>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half <strong>length</strong> (gentype <em>p</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Return the length of vector x, i.e.,<br>
  sqrt( <em>p.x</em><sup>2</sup> + <em>p.y</em><sup>2</sup> + &#8230;&#8203; )</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>normalize</strong> (gentype <em>p</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns a vector in the same direction as <em>p</em> but with a length of 1.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-relational-functions">2.1.5. Relational Functions</h4>
<div class="paragraph">
<p>The scalar and vector relational functions described in <em>table 6.14</em> are
extended to include versions that take <code>half</code>, <code>half2</code>, <code>half3</code>, <code>half4</code>,
<code>half8</code> and <code>half16</code> as arguments.</p>
</div>
<div class="paragraph">
<p>The relational and equality operators (&lt;, &lt;=, &gt;, &gt;=, !=, ==) can be used
with <code>halfn</code> vector types and shall produce a vector <code>shortn</code> result as
described in <em>section 6.3</em>.</p>
</div>
<div class="paragraph">
<p>The functions <strong>isequal</strong>, <strong>isnotequal</strong>, <strong>isgreater</strong>, <strong>isgreaterequal</strong>,
<strong>isless</strong>, <strong>islessequal</strong>, <strong>islessgreater</strong>, <strong>isfinite</strong>, <strong>isinf</strong>, <strong>isnan</strong>,
<strong>isnormal</strong>, <strong>isordered</strong>, <strong>isunordered</strong> and <strong>signbit</strong> shall return a 0 if the
specified relation is <em>false</em> and a 1 if the specified relation is true for
scalar argument types.
These functions shall return a 0 if the specified relation is <em>false</em> and a
-1 (i.e. all bits set) if the specified relation is <em>true</em> for vector
argument types.</p>
</div>
<div class="paragraph">
<p>The relational functions <strong>isequal</strong>, <strong>isgreater</strong>, <strong>isgreaterequal</strong>, <strong>isless</strong>,
<strong>islessequal</strong>, and <strong>islessgreater</strong> always return 0 if either argument is not
a number (NaN).
<strong>isnotequal</strong> returns 1 if one or both arguments are not a number (NaN) and
the argument type is a scalar and returns -1 if one or both arguments are
not a number (NaN) and the argument type is a vector.</p>
</div>
<div class="paragraph">
<p>The functions described in <em>table 6.14</em> are extended to include the <code>halfn</code>
vector types.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 4. <em>Half Precision Relational Functions</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isequal</strong> (half <em>x</em>, half <em>y</em>)<br>
  short<em>n</em> <strong>isequal</strong> (half<em>n x</em>, half<em>n y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the component-wise compare of <em>x</em> == <em>y</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isnotequal</strong> (half <em>x</em>, half <em>y</em>)<br>
  short<em>n</em> <strong>isnotequal</strong> (half<em>n x</em>, half<em>n y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the component-wise compare of <em>x</em> != <em>y</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isgreater</strong> (half <em>x</em>, half <em>y</em>)<br>
  short<em>n</em> <strong>isgreater</strong> (half<em>n x</em>, half<em>n y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the component-wise compare of <em>x</em> &gt; <em>y</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isgreaterequal</strong> (half <em>x</em>, half <em>y</em>)<br>
  short<em>n</em> <strong>isgreaterequal</strong> (half<em>n x</em>, half<em>n y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the component-wise compare of <em>x</em> &gt;= <em>y</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isless</strong> (half <em>x</em>, half <em>y</em>)<br>
  short<em>n</em> <strong>isless</strong> (half<em>n x</em>, half<em>n y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the component-wise compare of <em>x</em> &lt; <em>y</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>islessequal</strong> (half <em>x</em>, half <em>y</em>)<br>
  short<em>n</em> <strong>islessequal</strong> (half<em>n x</em>, half<em>n y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the component-wise compare of <em>x</em> &lt;= <em>y</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>islessgreater</strong> (half <em>x</em>, half <em>y</em>)<br>
  short<em>n</em> <strong>islessgreater</strong> (half<em>n x</em>, half<em>n y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the component-wise compare of (<em>x</em> &lt; <em>y</em>) || (<em>x</em> &gt; <em>y</em>) .</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isfinite</strong> (half)<br>
  short<em>n</em> <strong>isfinite</strong> (half<em>n</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for finite value.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isinf</strong> (half)<br>
  short<em>n</em> <strong>isinf</strong> (half<em>n</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for infinity value (positive or negative) .</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isnan</strong> (half)<br>
  short<em>n</em> <strong>isnan</strong> (half<em>n</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for a NaN.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isnormal</strong> (half)<br>
  short<em>n</em> <strong>isnormal</strong> (half<em>n</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for a normal value.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isordered</strong> (half <em>x</em>, half <em>y</em>)<br>
  short<em>n</em> <strong>isordered</strong> (half<em>n x</em>, half<em>n y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test if arguments are ordered.
  <strong>isordered</strong>() takes arguments <em>x</em> and <em>y</em>, and returns the result
  <strong>isequal</strong>(<em>x</em>, <em>x</em>) &amp;&amp; <strong>isequal</strong>(<em>y</em>, <em>y</em>).</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>isunordered</strong> (half <em>x</em>, half <em>y</em>)<br>
  short<em>n</em> <strong>isunordered</strong> (half<em>n x</em>, half<em>n y</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test if arguments are unordered.
  <strong>isunordered</strong>() takes arguments <em>x</em> and <em>y</em>, returning non-zero if <em>x</em> or
  <em>y</em> is a NaN, and zero otherwise.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>signbit</strong> (half)<br>
  short<em>n</em> <strong>signbit</strong> (half<em>n</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for sign bit.
  The scalar version of the function returns a 1 if the sign bit in the half
  is set else returns 0.
  The vector version of the function returns the following for each
  component in half<em>n</em>: -1 (i.e all bits set) if the sign bit in the half
  is set else returns 0.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half<em>n</em> <strong>bitselect</strong> (half<em>n a</em>, half<em>n b</em>, half<em>n c</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Each bit of the result is the corresponding bit of <em>a</em> if the
  corresponding bit of <em>c</em> is 0.
  Otherwise it is the corresponding bit of <em>b</em>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half<em>n</em> <strong>select</strong> (half<em>n a</em>, half<em>n b</em>, short<em>n</em> <em>c</em>)<br>
  half<em>n</em> <strong>select</strong> (half<em>n a</em>, half<em>n b</em>, ushort<em>n</em> <em>c</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For each component,<br>
  <em>result[i]</em> = if MSB of <em>c[i]</em> is set ? <em>b[i]</em> : <em>a[i]</em>.<br></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-vector-data-load-and-store-functions">2.1.6. Vector Data Load and Store Functions</h4>
<div class="paragraph">
<p>The vector data load (<strong>vload<em>n</em></strong>) and store (<strong>vstore<em>n</em></strong>) functions
described in <em>table 6.14</em> (also listed below) are extended to include
versions that read from or write to half scalar or vector values.
The generic type <code>gentype</code> is extended to include <code>half</code>.
The generic type <code>gentypen</code> is extended to include <code>half</code>, <code>half2</code>, <code>half3</code>,
<code>half4</code>, <code>half8</code>, and <code>half16</code>.</p>
</div>
<div class="paragraph">
<p>Note: <strong>vload3</strong> reads <em>x</em>, <em>y</em>, <em>z</em> components from address
(<em>p</em> + (<em>offset</em> * 3)) into a 3-component vector and <strong>vstore3</strong> writes <em>x</em>, <em>y</em>, <em>z</em>
components from a 3-component vector to address (<em>p</em> + (<em>offset</em> * 3)).</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 5. <em>Half Precision Vector Data Load and Store Functions</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype<em>n</em> <strong>vload<em>n</em></strong><br>
  (size_t <em>offset</em>, const gentype *<em>p</em>)</p>
<p class="tableblock">  gentype<em>n</em> <strong>vload<em>n</em></strong><br>
  (size_t <em>offset</em>, const __constant gentype *<em>p</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Return sizeof (gentype<em>n</em>) bytes of data read from address
  (<em>p</em> + (<em>offset * n</em>)).
  The read address computed as (<em>p</em> + (<em>offset * n</em>)) must be 16-bit
  aligned.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>vstore<em>n</em></strong> (<br>
  gentype<em>n</em> <em>data</em>, size_t <em>offset</em>, gentype *<em>p</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Write sizeof (gentype<em>n</em>) bytes given by <em>data</em> to address
  (<em>p</em> + (<em>offset * n</em>)).
  The write address computed as (<em>p</em> + (<em>offset * n</em>)) must be 16-bit
  aligned.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-async-copies-from-global-to-local-memory-local-to-global-memory-and-prefetch">2.1.7. Async Copies from Global to Local Memory, Local to Global Memory, and Prefetch</h4>
<div class="paragraph">
<p>The OpenCL C programming language implements the following functions that
provide asynchronous copies between global and local memory and a prefetch
from global memory.</p>
</div>
<div class="paragraph">
<p>The generic type <code>gentype</code> is extended to include <code>half</code>, <code>half2</code>, <code>half3</code>,
<code>half4</code>, <code>half8</code>, and <code>half16</code>.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 6. <em>Half Precision Built-in Async Copy and Prefetch Functions</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">event_t <strong>async_work_group_copy</strong> (<br>
  __local gentype *<em>dst</em>,<br>
  const __global gentype *<em>src</em>,<br>
  size_t <em>num_gentypes</em>, event_t <em>event</em>)</p>
<p class="tableblock">  event_t <strong>async_work_group_copy</strong> (<br>
  __global gentype <em>*dst</em>,<br>
  const __local gentype *<em>src</em>,<br>
  size_t <em>num_gentypes</em>, event_t <em>event</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Perform an async copy of <em>num_gentypes</em> gentype elements from <em>src</em> to
  <em>dst</em>.
  The async copy is performed by all work-items in a work-group and this
  built-in function must therefore be encountered by all work-items in a
  work-group executing the kernel with the same argument values; otherwise
  the results are undefined.</p>
<p class="tableblock">  Returns an event object that can be used by <strong>wait_group_events</strong> to wait
  for the async copy to finish.
  The <em>event</em> argument can also be used to associate the
  <strong>async_work_group_copy</strong> with a previous async copy allowing an event to be
  shared by multiple async copies; otherwise <em>event</em> should be zero.</p>
<p class="tableblock">  If <em>event</em> argument is not zero, the event object supplied in <em>event</em>
  argument will be returned.</p>
<p class="tableblock">  This function does not perform any implicit synchronization of source data
  such as using a <strong>barrier</strong> before performing the copy.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">event_t <strong>async_work_group_strided_copy</strong> (<br>
  __local gentype <em>*dst</em>,<br>
  const __global gentype *<em>src</em>,<br>
  size_t <em>num_gentypes</em>,<br>
  size_t <em>src_stride</em>, event_t <em>event</em>)</p>
<p class="tableblock">  event_t <strong>async_work_group_strided_copy</strong> (<br>
  __global gentype <em>*dst</em>,<br>
  const __local gentype *<em>src</em>,<br>
  size_t <em>num_gentypes</em>,<br>
  size_t <em>dst_stride</em>, event_t <em>event</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Perform an async gather of <em>num_gentypes</em> gentype elements from <em>src</em> to
  <em>dst</em>.
  The <em>src_stride</em> is the stride in elements for each gentype element read
  from <em>src</em>.
  The async gather is performed by all work-items in a work-group and this
  built-in function must therefore be encountered by all work-items in a
  work-group executing the kernel with the same argument values; otherwise
  the results are undefined.</p>
<p class="tableblock">  Returns an event object that can be used by <strong>wait_group_events</strong> to wait
  for the async copy to finish.
  The <em>event</em> argument can also be used to associate the
  <strong>async_work_group_strided_copy</strong> with a previous async copy allowing an
  event to be shared by multiple async copies; otherwise <em>event</em> should be
  zero.</p>
<p class="tableblock">  If <em>event</em> argument is not zero, the event object supplied in <em>event</em>
  argument will be returned.</p>
<p class="tableblock">  This function does not perform any implicit synchronization of source data
  such as using a <strong>barrier</strong> before performing the copy.</p>
<p class="tableblock">  The behavior of <strong>async_work_group_strided_copy</strong> is undefined if
  <em>src_stride</em> or <em>dst_stride</em> is 0, or if the <em>src_stride</em> or <em>dst_stride</em>
  values cause the <em>src</em> or <em>dst</em> pointers to exceed the upper bounds of the
  address space during the copy.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>wait_group_events</strong> (<br>
  int <em>num_events</em>, event_t *<em>event_list</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Wait for events that identify the <strong>async_work_group_copy</strong> operations to
  complete.
  The event objects specified in <em>event_list</em> will be released after the
  wait is performed.</p>
<p class="tableblock">  This function must be encountered by all work-items in a work-group
  executing the kernel with the same <em>num_events</em> and event objects
  specified in <em>event_list</em>; otherwise the results are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>prefetch</strong> (<br>
  const __global gentype *<em>p</em>, size_t <em>num_gentypes</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Prefetch <em>num_gentypes</em> * sizeof(gentype) bytes into the global cache.
  The prefetch instruction is applied to a work-item in a work-group and
  does not affect the functional behavior of the kernel.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-image-read-and-write-functions">2.1.8. Image Read and Write Functions</h4>
<div class="paragraph">
<p>The image read and write functions defined in <em>tables 6.23</em>, <em>6.24</em> and
<em>6.25</em> are extended to support image color values that are a <code>half</code> type.</p>
</div>
</div>
<div class="sect3">
<h4 id="_built_in_image_read_functions">2.1.9. Built-in Image Read Functions</h4>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 7. <em>Half Precision Built-in Image Read Functions</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  read_only image2d_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  int2 <em>coord</em>)</p>
<p class="tableblock">  half4 <strong>read_imageh</strong> (<br>
  read_only image2d_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  float2 <em>coord</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use the coordinate <em>(coord.x, coord.y)</em> to do an element lookup in the 2D
  image object specified by <em>image</em>.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em> set
  to one of the pre-defined packed formats, CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em>
  set to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values for image
  objects created with <em>image_channel_data_type</em> set to CL_HALF_FLOAT.</p>
<p class="tableblock">  The <strong>read_imageh</strong> calls that take integer coordinates must use a sampler
  with filter mode set to CLK_FILTER_NEAREST, normalized coordinates set to
  CLK_NORMALIZED_COORDS_FALSE and addressing mode set to
  CLK_ADDRESS_CLAMP_TO_EDGE, CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
  otherwise the values returned are undefined.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  <em>image_channel_data_type</em> values not specified in the description above
  are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  read_only image3d_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  int4 <em>coord</em> )</p>
<p class="tableblock">  half4 <strong>read_imageh</strong> (<br>
  read_only image3d_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  float4 <em>coord</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use the coordinate <em>(coord.x</em>, <em>coord.y</em>, <em>coord.z)</em> to do an
  elementlookup in the 3D image object specified by <em>image</em>. <em>coord.w</em> is
  ignored.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em> set
  to one of the pre-defined packed formats or CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em>
  set to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong>returns half precision floating-point values for image
  objects created with <em>image_channel_data_type</em> set to CL_HALF_FLOAT.</p>
<p class="tableblock">  The <strong>read_imageh</strong> calls that take integer coordinates must use a sampler
  with filter mode set to CLK_FILTER_NEAREST, normalized coordinates set to
  CLK_NORMALIZED_COORDS_FALSE and addressing mode set to
  CLK_ADDRESS_CLAMP_TO_EDGE, CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
  otherwise the values returned are undefined.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  <em>image_channel_data_type</em> values not specified in the description are
  undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  read_only image2d_array_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  int4 <em>coord</em>)</p>
<p class="tableblock">  half4 <strong>read_imageh</strong> (<br>
  read_only image2d_array_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  float4 <em>coord</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use <em>coord.xy</em> to do an element lookup in the 2D image identified by
  <em>coord.z</em> in the 2D image array specified by <em>image</em>.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with image_channel_data_type set
  to one of the pre-defined packed formats or CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with image_channel_data_type set
  to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values for image
  objects created with image_channel_data_type set to CL_HALF_FLOAT.</p>
<p class="tableblock">  The <strong>read_imageh</strong> calls that take integer coordinates must use a sampler
  with filter mode set to CLK_FILTER_NEAREST, normalized coordinates set to
  CLK_NORMALIZED_COORDS_FALSE and addressing mode set to
  CLK_ADDRESS_CLAMP_TO_EDGE, CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
  otherwise the values returned are undefined.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  image_channel_data_type values not specified in the description above are
  undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  read_only image1d_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  int <em>coord</em>)</p>
<p class="tableblock">  half4 <strong>read_imageh</strong> (<br>
  read_only image1d_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  float <em>coord</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use <em>coord</em> to do an element lookup in the 1D image object specified by
  <em>image</em>.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em> set
  to one of the pre-defined packed formats or CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em>
  set to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values for image
  objects created with <em>image_channel_data_type</em> set to CL_HALF_FLOAT.</p>
<p class="tableblock">  The <strong>read_imageh</strong> calls that take integer coordinates must use a sampler
  with filter mode set to CLK_FILTER_NEAREST, normalized coordinates set to
  CLK_NORMALIZED_COORDS_FALSE and addressing mode set to
  CLK_ADDRESS_CLAMP_TO_EDGE, CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
  otherwise the values returned are undefined.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  <em>image_channel_data_type</em> values not specified in the description above
  are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  read_only image1d_array_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  int2 <em>coord</em>)</p>
<p class="tableblock">  half4 <strong>read_imageh</strong> (<br>
  read_only image1d_array_t <em>image</em>,<br>
  sampler_t <em>sampler</em>,<br>
  float2 <em>coord</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use <em>coord.x</em> to do an element lookup in the 1D image identified by
  <em>coord.y</em> in the 1D image array specified by <em>image</em>.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with image_channel_data_type set
  to one of the pre-defined packed formats or CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with image_channel_data_type set
  to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values for image
  objects created with image_channel_data_type set to CL_HALF_FLOAT.</p>
<p class="tableblock">  The <strong>read_imageh</strong> calls that take integer coordinates must use a sampler
  with filter mode set to CLK_FILTER_NEAREST, normalized coordinates set to
  CLK_NORMALIZED_COORDS_FALSE and addressing mode set to
  CLK_ADDRESS_CLAMP_TO_EDGE, CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
  otherwise the values returned are undefined.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  image_channel_data_type values not specified in the description above are
  undefined.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="_built_in_image_sampler_less_read_functions">2.1.10. Built-in Image Sampler-less Read Functions</h4>
<div class="paragraph">
<p><em>aQual</em> in Table 6.24 refers to one of the access qualifiers.
For sampler-less read functions this may be <em>read_only</em> or <em>read_write</em>.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 8. <em>Half Precision Built-in Image Sampler-less Read Functions</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  <em>aQual</em> image2d_t <em>image</em>,<br>
  int2 <em>coord</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use the coordinate <em>(coord.x, coord.y)</em> to do an element lookup in the 2D
  image object specified by <em>image</em>.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em> set
  to one of the pre-defined packed formats or CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em>
  set to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values for image
  objects created with <em>image_channel_data_type</em> set to CL_HALF_FLOAT.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  <em>image_channel_data_type</em> values not specified in the description above
  are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  <em>aQual</em> image3d_t <em>image</em>,<br>
  int4 <em>coord</em> )</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use the coordinate <em>(coord.x</em>, <em>coord.y</em>, <em>coord.z)</em> to do an element
  lookup in the 3D image object specified by <em>image</em>. <em>coord.w</em> is ignored.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em> set
  to one of the pre-defined packed formats or CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em>
  set to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values for image
  objects created with <em>image_channel_data_type</em> set to CL_HALF_FLOAT.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  <em>image_channel_data_type</em> values not specified in the description are
  undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  <em>aQual</em> image2d_array_t <em>image</em>,<br>
  int4 <em>coord</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use <em>coord.xy</em> to do an element lookup in the 2D image identified by
  <em>coord.z</em> in the 2D image array specified by <em>image</em>.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em> set
  to one of the pre-defined packed formats or CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em>
  set to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values for image
  objects created with <em>image_channel_data_type</em> set to CL_HALF_FLOAT.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  <em>image_channel_data_type</em> values not specified in the description above
  are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  <em>aQual</em> image1d_t <em>image</em>,<br>
  int <em>coord</em>)</p>
<p class="tableblock">  half4 <strong>read_imageh</strong> (<br>
  <em>aQual</em> image1d_buffer_t <em>image</em>,<br>
  int <em>coord</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use <em>coord</em> to do an element lookup in the 1D image or 1D image buffer
  object specified by <em>image</em>.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em> set
  to one of the pre-defined packed formats or CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em>
  set to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values for image
  objects created with <em>image_channel_data_type</em> set to CL_HALF_FLOAT.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  <em>image_channel_data_type</em> values not specified in the description above
  are undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">half4 <strong>read_imageh</strong> (<br>
  <em>aQual</em> image1d_array_t <em>image</em>,<br>
  int2 <em>coord</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Use <em>coord.x</em> to do an element lookup in the 2D image identified by
  <em>coord.y</em> in the 2D image array specified by <em>image</em>.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [0.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em> set
  to one of the pre-defined packed formats or CL_UNORM_INT8, or
  CL_UNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values in the range
  [-1.0 &#8230;&#8203; 1.0] for image objects created with <em>image_channel_data_type</em>
  set to CL_SNORM_INT8, or CL_SNORM_INT16.</p>
<p class="tableblock">  <strong>read_imageh</strong> returns half precision floating-point values for image
  objects created with <em>image_channel_data_type</em> set to CL_HALF_FLOAT.</p>
<p class="tableblock">  Values returned by <strong>read_imageh</strong> for image objects with
  <em>image_channel_data_type</em> values not specified in the description above
  are undefined.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="_built_in_image_write_functions">2.1.11. Built-in Image Write Functions</h4>
<div class="paragraph">
<p><em>aQual</em> in Table 6.25 refers to one of the access qualifiers.
For write functions this may be <em>write_only</em> or <em>read_write</em>.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 9. <em>Half Precision Built-in Image Write Functions</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>write_imageh</strong> (<br>
  <em>aQual</em> image2d_t <em>image</em>,<br>
  int2 <em>coord</em>,<br>
  half4 <em>color</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Write <em>color</em> value to location specified by <em>coord.xy</em> in the 2D image
  specified by <em>image</em>.</p>
<p class="tableblock">  Appropriate data format conversion to the specified image format is done
  before writing the color value. <em>x</em> &amp; <em>y</em> are considered to be
  unnormalized coordinates and must be in the range 0 &#8230;&#8203; width - 1, and 0
  &#8230;&#8203; height - 1.</p>
<p class="tableblock">  <strong>write_imageh</strong> can only be used with image objects created with
  <em>image_channel_data_type</em> set to one of the pre-defined packed formats or
  set to CL_SNORM_INT8, CL_UNORM_INT8, CL_SNORM_INT16, CL_UNORM_INT16 or
  CL_HALF_FLOAT.</p>
<p class="tableblock">  The behavior of <strong>write_imageh</strong> for image objects created with
  <em>image_channel_data_type</em> values not specified in the description above or
  with (<em>x</em>, <em>y</em>) coordinate values that are not in the range (0 &#8230;&#8203; width -
  1, 0 &#8230;&#8203; height - 1) respectively, is undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>write_imageh</strong> (<br>
  <em>aQual</em> image2d_array_t <em>image</em>,<br>
  int4 <em>coord</em>,<br>
  half4 <em>color</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Write <em>color</em> value to location specified by <em>coord.xy</em> in the 2D image
  identified by <em>coord.z</em> in the 2D image array specified by <em>image</em>.</p>
<p class="tableblock">  Appropriate data format conversion to the specified image format is done
  before writing the color value. <em>coord.x</em>, <em>coord.y</em> and <em>coord.z</em> are
  considered to be unnormalized coordinates and must be in the range 0 &#8230;&#8203;
  image width - 1, 0 &#8230;&#8203; image height - 1 and 0 &#8230;&#8203; image number of layers -
  1.</p>
<p class="tableblock">  <strong>write_imageh</strong> can only be used with image objects created with
  <em>image_channel_data_type</em> set to one of the pre-defined packed formats or
  set to CL_SNORM_INT8, CL_UNORM_INT8, CL_SNORM_INT16, CL_UNORM_INT16 or
  CL_HALF_FLOAT.</p>
<p class="tableblock">  The behavior of <strong>write_imageh</strong> for image objects created with
  <em>image_channel_data_type</em> values not specified in the description above or
  with (<em>x</em>, <em>y, z</em>) coordinate values that are not in the range (0 &#8230;&#8203;
  image width - 1, 0 &#8230;&#8203; image height - 1, 0 &#8230;&#8203; image number of layers -
  1), respectively, is undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>write_imageh</strong> (<br>
  <em>aQual</em> image1d_t <em>image</em>,<br>
  int <em>coord</em>,<br>
  half4 <em>color</em>)</p>
<p class="tableblock">  void <strong>write_imageh</strong> (<br>
  <em>aQual</em> image1d_buffer_t <em>image</em>,<br>
  int <em>coord</em>,<br>
  half4 <em>color</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Write <em>color</em> value to location specified by <em>coord</em> in the 1D image or 1D
  image buffer object specified by <em>image</em>.
  Appropriate data format conversion to the specified image format is done
  before writing the color value.
  <em>coord</em> is considered to be unnormalized coordinates and must be in the
  range 0 &#8230;&#8203; image width - 1.</p>
<p class="tableblock">  <strong>write_imageh</strong> can only be used with image objects created with
  <em>image_channel_data_type</em> set to one of the pre-defined packed formats or
  set to CL_SNORM_INT8, CL_UNORM_INT8, CL_SNORM_INT16, CL_UNORM_INT16 or
  CL_HALF_FLOAT.
  Appropriate data format conversion will be done to convert channel data
  from a floating-point value to actual data format in which the channels
  are stored.</p>
<p class="tableblock">  The behavior of <strong>write_imageh</strong> for image objects created with
  <em>image_channel_data_type</em> values not specified in the description above or
  with coordinate values that is not in the range (0 &#8230;&#8203; image width - 1),
  is undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>write_imageh</strong> (<br>
  <em>aQual</em> image1d_array_t <em>image</em>,<br>
  int2 <em>coord</em>,<br>
  half4 <em>color</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Write <em>color</em> value to location specified by <em>coord.x</em> in the 1D image
  identified by <em>coord.y</em> in the 1D image array specified by <em>image</em>.
  Appropriate data format conversion to the specified image format is done
  before writing the color value. <em>coord.x</em> and <em>coord.y</em> are considered to
  be unnormalized coordinates and must be in the range 0 &#8230;&#8203; image width - 1
  and 0 &#8230;&#8203; image number of layers - 1.</p>
<p class="tableblock">  <strong>write_imageh</strong> can only be used with image objects created with
  <em>image_channel_data_type</em> set to one of the pre-defined packed formats or
  set to CL_SNORM_INT8, CL_UNORM_INT8, CL_SNORM_INT16, CL_UNORM_INT16 or
  CL_HALF_FLOAT.
  Appropriate data format conversion will be done to convert channel data
  from a floating-point value to actual data format in which the channels
  are stored.</p>
<p class="tableblock">  The behavior of <strong>write_imageh</strong> for image objects created with
  <em>image_channel_data_type</em> values not specified in the description above or
  with (<em>x</em>, <em>y</em>) coordinate values that are not in the range (0 &#8230;&#8203; image
  width - 1, 0 &#8230;&#8203; image number of layers - 1), respectively, is undefined.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>write_imageh</strong> (<br>
  <em>aQual</em> image3d_t <em>image</em>,<br>
  int4 <em>coord</em>,<br>
  half4 <em>color</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Write color value to location specified by coord.xyz in the 3D image
  object specified by <em>image</em>.</p>
<p class="tableblock">  Appropriate data format conversion to the specified image format is done
  before writing the color value.
  coord.x, coord.y and coord.z are considered to be unnormalized coordinates
  and must be in the range 0 &#8230;&#8203; image width - 1, 0 &#8230;&#8203; image height - 1 and
  0 &#8230;&#8203; image depth - 1.</p>
<p class="tableblock">  <strong>write_imageh</strong> can only be used with image objects created with
  image_channel_data_type set to one of the pre-defined packed formats or
  set to CL_SNORM_INT8, CL_UNORM_INT8, CL_SNORM_INT16, CL_UNORM_INT16 or
  CL_HALF_FLOAT.</p>
<p class="tableblock">  The behavior of <strong>write_imageh</strong> for image objects created with
  image_channel_data_type values not specified in the description above or
  with (x, y, z) coordinate values that are not in the range (0 &#8230;&#8203; image
  width - 1, 0 &#8230;&#8203; image height - 1, 0 &#8230;&#8203; image depth - 1), respectively,
  is undefined.</p>
<p class="tableblock">  Note: This built-in function is only available if the
  cl_khr_3d_image_writes extension is also supported by the device.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-ieee754-compliance">2.1.12. IEEE754 Compliance</h4>
<div class="paragraph">
<p>The following table entry describes the additions to <em>table 4.3,</em> which
allows applications to query the configuration information using
<strong>clGetDeviceInfo</strong> for an OpenCL device that supports half precision
floating-point.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Op-code</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_DEVICE_HALF_FP_CONFIG</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">cl_device_fp_config</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Describes half precision floating-point capability of the OpenCL device.
  This is a bit-field that describes one or more of the following values:</p>
<p class="tableblock">  CL_FP_DENORM&#8201;&#8212;&#8201;denorms are supported</p>
<p class="tableblock">  CL_FP_INF_NAN&#8201;&#8212;&#8201;INF and NaNs are supported</p>
<p class="tableblock">  CL_FP_ROUND_TO_NEAREST&#8201;&#8212;&#8201;round to nearest even rounding mode supported</p>
<p class="tableblock">  CL_FP_ROUND_TO_ZERO&#8201;&#8212;&#8201;round to zero rounding mode supported</p>
<p class="tableblock">  CL_FP_ROUND_TO_INF&#8201;&#8212;&#8201;round to positive and negative infinity rounding
  modes supported</p>
<p class="tableblock">  CP_FP_FMA&#8201;&#8212;&#8201;IEEE754-2008 fused multiply-add is supported</p>
<p class="tableblock">  CL_FP_SOFT_FLOAT&#8201;&#8212;&#8201;Basic floating-point operations (such as addition,
  subtraction, multiplication) are implemented in software.</p>
<p class="tableblock">  The required minimum half precision floating-point capability as
  implemented by this extension is:</p>
<p class="tableblock">  CL_FP_ROUND_TO_ZERO, or CL_FP_ROUND_TO_NEAREST | CL_FP_INF_NAN.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-rounding-modes">2.1.13. Rounding Modes</h4>
<div class="paragraph">
<p>If CL_FP_ROUND_TO_NEAREST is supported, the default rounding mode for
half-precision floating-point operations will be round to nearest even;
otherwise the default rounding mode will be round to zero.</p>
</div>
<div class="paragraph">
<p>Conversions to half floating point format must be correctly rounded using
the indicated <code>convert</code> operator rounding mode or the default rounding mode
for half-precision floating-point operations if no rounding mode is
specified by the operator, or a C-style cast is used.</p>
</div>
<div class="paragraph">
<p>Conversions from half to integer format shall correctly round using the
indicated <code>convert</code> operator rounding mode, or towards zero if no rounding
mode is specified by the operator or a C-style cast is used.
All conversions from half to floating point formats are exact.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_fp16-relative-error-as-ulps">2.1.14. Relative Error as ULPs</h4>
<div class="paragraph">
<p>In this section we discuss the maximum relative error defined as <em>ulp</em>
(units in the last place).</p>
</div>
<div class="paragraph">
<p>Addition, subtraction, multiplication, fused multiply-add operations on half
types are required to be correctly rounded using the default rounding mode
for half-precision floating-point operations.</p>
</div>
<div class="paragraph">
<p>The following table describes the minimum accuracy of half precision
floating-point arithmetic operations given as ULP values.
0 ULP is used for math functions that do not require rounding.
The reference value used to compute the ULP value of an arithmetic operation
is the infinitely precise result.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 10. <em>ULP Values for Half Precision Floating-Point Arithmetic Operations</em></caption>
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Min Accuracy - Full Profile</strong></th>
<th class="tableblock halign-left valign-top"><strong>Min Accuracy - Embedded Profile</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>x</em> + <em>y</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>x</em> - <em>y</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>x</em> * <em>y</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>1.0 / <em>x</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 1 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>x</em> / <em>y</em></strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 1 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>acos</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>acosh</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>acospi</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>asin</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>asinh</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>asinpi</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>atan</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>atanh</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>atanpi</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>atan2</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>atan2pi</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cbrt</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>ceil</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>copysign</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cos</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cosh</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cospi</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>erfc</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>erf</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>exp</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>exp2</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>exp10</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>expm1</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>fabs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>fdim</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>floor</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>fma</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>fmax</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>fmin</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>fmod</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>fract</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>frexp</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>hypot</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>ilogb</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>ldexp</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>log</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>log2</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>log10</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>log1p</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>logb</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>mad</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Implementation-defined</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>maxmag</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>minmag</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>modf</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>nan</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>nextafter</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>pow(x, y)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>pown(x, y)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>powr(x, y)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>remainder</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>remquo</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp for the remainder, at least the lower 7 bits of the integral quotient</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0 ulp for the remainder, at least the lower 7 bits of the integral quotient</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>rint</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>rootn</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 5 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>round</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>rsqrt</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;=1 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;=1 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>sin</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>sincos</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp for sine and cosine values</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp for sine and cosine values</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>sinh</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>sinpi</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>sqrt</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 1 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>tan</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>tanh</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>tanpi</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 2 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 3 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>tgamma</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;= 4 ulp</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>trunc</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Correctly rounded</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Note: <em>Implementations may perform floating-point operations on</em> <code>half</code>
<em>scalar or vector data types by converting the</em> <code>half</code> <em>values to single
precision floating-point values and performing the operation in single
precision floating-point.
In this case, the implementation will use the</em> <code>half</code> <em>scalar or vector data
type as a storage only format</em>.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_gl_sharing">3. Creating an OpenCL Context from an OpenGL Context or Share Group</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="cl_khr_gl_sharing-overview">3.1. Overview</h3>
<div class="paragraph">
<p>This section describes the <strong>cl_khr_gl_sharing</strong> extension.
The section <a href="#cl_khr_gl_sharing__memobjs">Creating OpenCL Memory Objects from
OpenGL Objects</a> defines how to share data with texture and buffer objects
in a parallel OpenGL implementation, but does not define how the association
between an OpenCL context and an OpenGL context or share group is
established.
This extension defines optional attributes to OpenCL context creation
routines which associate a OpenGL context or share group object with a newly
created OpenCL context.</p>
</div>
<div class="paragraph">
<p>An OpenGL implementation supporting buffer objects and sharing of texture
and buffer object images with OpenCL is required by this extension.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing-new-procedures-and-functions">3.2. New Procedures and Functions</h3>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetGLContextInfoKHR(const cl_context_properties *properties,
                             cl_gl_context_info param_name,
                             size_t param_value_size,
                             void *param_value,
                             size_t *param_value_size_ret);</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing-new-tokens">3.3. New Tokens</h3>
<div class="paragraph">
<p>Returned by <strong>clCreateContext</strong>, <strong>clCreateContextFromType</strong>, and
<strong>clGetGLContextInfoKHR</strong> when an invalid OpenGL context or share group object
handle is specified in <em>properties</em>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR      -1000</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as the <em>param_name</em> argument of <strong>clGetGLContextInfoKHR</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR        0x2006
CL_DEVICES_FOR_GL_CONTEXT_KHR               0x2007</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as an attribute name in the <em>properties</em> argument of
<strong>clCreateContext</strong> and <strong>clCreateContextFromType</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_GL_CONTEXT_KHR                           0x2008
CL_EGL_DISPLAY_KHR                          0x2009
CL_GLX_DISPLAY_KHR                          0x200A
CL_WGL_HDC_KHR                              0x200B
CL_CGL_SHAREGROUP_KHR                       0x200C</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing-additions-to-chapter-4">3.4. Additions to Chapter 4 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>In <em>section 4.4</em>, replace the description of <em>properties</em> under
<strong>clCreateContext</strong> with:</p>
</div>
<div class="paragraph">
<p>"`<em>properties</em> points to an attribute list, which is a array of ordered
&lt;attribute name, value&gt; pairs terminated with zero.
If an attribute is not specified in <em>properties</em>, then its default value
(listed in <em>table 4.5</em>) is used (it is said to be specified implicitly).
If <em>properties</em> is <code>NULL</code> or empty (points to a list whose first value is
zero), all attributes take on their default values.</p>
</div>
<div class="paragraph">
<p>Attributes control sharing of OpenCL memory objects with OpenGL buffer,
texture, and renderbuffer objects.
Depending on the platform-specific API used to bind OpenGL contexts to the
window system, the following attributes may be set to identify an OpenGL
context:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>When the CGL binding API is supported, the attribute
CL_CGL_SHAREGROUP_KHR should be set to a CGLShareGroup handle to a CGL
share group object.</p>
</li>
<li>
<p>When the EGL binding API is supported, the attribute CL_GL_CONTEXT_KHR
should be set to an EGLContext handle to an OpenGL ES or OpenGL context,
and the attribute CL_EGL_DISPLAY_KHR should be set to the EGLDisplay
handle of the display used to create the OpenGL ES or OpenGL context.</p>
</li>
<li>
<p>When the GLX binding API is supported, the attribute CL_GL_CONTEXT_KHR
should be set to a GLXContext handle to an OpenGL context, and the
attribute CL_GLX_DISPLAY_KHR should be set to the Display handle of the
X Window System display used to create the OpenGL context.</p>
</li>
<li>
<p>When the WGL binding API is supported, the attribute CL_GL_CONTEXT_KHR
should be set to an HGLRC handle to an OpenGL context, and the attribute
CL_WGL_HDC_KHR should be set to the HDC handle of the display used to
create the OpenGL context.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Memory objects created in the context so specified may be shared with the
specified OpenGL or OpenGL ES context (as well as with any other OpenGL
contexts on the share list of that context, according to the description of
sharing in the GLX 1.4 and EGL 1.4 specifications, and the WGL documentation
for OpenGL implementations on Microsoft Windows), or with the explicitly
identified OpenGL share group for CGL.
If no OpenGL or OpenGL ES context or share group is specified in the
attribute list, then memory objects may not be shared, and calling any of
the commands described in <a href="#cl_khr_gl_sharing__memobjs">Creating OpenCL
Memory Objects from OpenGL Objects</a> will result in a
CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR error.`"</p>
</div>
<div class="paragraph">
<p>OpenCL / OpenGL sharing does not support the CL_CONTEXT_INTEROP_USER_SYNC
property defined in <em>table 4.5</em>.
Specifying this property when creating a context with OpenCL / OpenGL
sharing will return an appropriate error.</p>
</div>
<div class="paragraph">
<p>Add to <em>table 4.5</em>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<caption class="title">Table 11. <em>OpenGL Sharing Context Creation Attributes</em></caption>
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Attribute Name</strong></th>
<th class="tableblock halign-left valign-top"><strong>Allowed Values</strong>

  <strong>(Default value is in bold)</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_GL_CONTEXT_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>0</strong>, OpenGL context handle</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">OpenGL context to associated the OpenCL context with</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_CGL_SHAREGROUP_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>0</strong>, CGL share group handle</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CGL share group to associate the OpenCL context with</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_EGL_DISPLAY_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>EGL_NO_DISPLAY</strong>, EGLDisplay handle</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">EGLDisplay an OpenGL context was created with respect to</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_GLX_DISPLAY_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>None</strong>, X handle</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">X Display an OpenGL context was created with respect to</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_WGL_HDC_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>0</strong>, HDC handle</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HDC an OpenGL context was created with respect to</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Replace the first error in the list for <strong>clCreateContext</strong> with:</p>
</div>
<div class="paragraph">
<p>"`<em>errcode_ret</em> returns CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR if a context
was specified by any of the following means:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A context was specified for an EGL-based OpenGL ES or OpenGL
implementation by setting the attributes CL_GL_CONTEXT_KHR and
CL_EGL_DISPLAY_KHR.</p>
</li>
<li>
<p>A context was specified for a GLX-based OpenGL implementation by setting
the attributes CL_GL_CONTEXT_KHR and CL_GLX_DISPLAY_KHR.</p>
</li>
<li>
<p>A context was specified for a WGL-based OpenGL implementation by setting
the attributes CL_GL_CONTEXT_KHR and CL_WGL_HDC_KHR</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>and any of the following conditions hold:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The specified display and context attributes do not identify a valid
OpenGL or OpenGL ES context.</p>
</li>
<li>
<p>The specified context does not support buffer and renderbuffer objects.</p>
</li>
<li>
<p>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 it does not support sharing data
with OpenCL due to implementation restrictions).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> returns CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR if a share
group was specified for a CGL-based OpenGL implementation by setting the
attribute CL_CGL_SHAREGROUP_KHR, and the specified share group does not
identify a valid CGL share group object.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> returns CL_INVALID_OPERATION if a context was specified as
described above and any of the following conditions hold:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A context or share group object was specified for one of CGL, EGL, GLX,
or WGL and the OpenGL implementation does not support that window-system
binding API.</p>
</li>
<li>
<p>More than one of the attributes CL_CGL_SHAREGROUP_KHR,
CL_EGL_DISPLAY_KHR, CL_GLX_DISPLAY_KHR, and CL_WGL_HDC_KHR is set to a
non-default value.</p>
</li>
<li>
<p>Both of the attributes CL_CGL_SHAREGROUP_KHR and CL_GL_CONTEXT_KHR are
set to non-default values.</p>
</li>
<li>
<p>Any of the devices specified in the <em>devices</em> argument cannot support
OpenCL objects which share the data store of an OpenGL object.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> returns CL_INVALID_PROPERTY if an attribute name other than
those specified in <em>table 4.5</em> or if CL_CONTEXT_INTEROP_USER_SYNC is
specified in <em>properties</em>.`"</p>
</div>
<div class="paragraph">
<p>Replace the description of <em>properties</em> under <strong>clCreateContextFromType</strong>
with:</p>
</div>
<div class="paragraph">
<p>&#8220;_properties_ points to an attribute list whose format and valid contents
are identical to the <strong>properties</strong> argument of <strong>clCreateContext</strong>.&#8221;</p>
</div>
<div class="paragraph">
<p>Replace the first error in the list for <strong>clCreateContextFromType</strong> with the
same two new errors described above for <strong>clCreateContext</strong>.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing-additions-to-chapter-5">3.5. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>Add a new section to describe the new API for querying OpenCL devices that
support sharing with OpenGL:</p>
</div>
<div class="paragraph">
<p>"`OpenCL device(s) corresponding to an OpenGL context may be queried.
Such a device may not always exist (for example, if an OpenGL context is
specified on a GPU not supporting OpenCL command queues, but which does
support shared CL/GL objects), and if it does exist, may change over time.
When such a device does exist, acquiring and releasing shared CL/GL objects
may be faster on a command queue corresponding to this device than on
command queues corresponding to other devices available to an OpenCL
context.</p>
</div>
<div class="paragraph">
<p>To query the currently corresponding device, use the function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetGLContextInfoKHR(const cl_context_properties *properties,
                             cl_gl_context_info param_name,
                             size_t param_value_size,
                             void *param_value,
                             size_t *param_value_size_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>properties</em> points to an attribute list whose format and valid contents are
identical to the <em>properties</em> argument of <strong>clCreateContext</strong>.
<em>properties</em> must identify a single valid GL context or GL share group
object.</p>
</div>
<div class="paragraph">
<p><em>param_name</em> is a constant that specifies the device types to query, and
must be one of the values shown in the table below.</p>
</div>
<div class="paragraph">
<p><em>param_value</em> is a pointer to memory where the result of the query is
returned as described in the table below.
If <em>param_value</em> is <code>NULL</code>, it is ignored.</p>
</div>
<div class="paragraph">
<p><em>param_value_size</em> specifies the size in bytes of memory pointed to by
<em>param_value</em>.
This size must be greater than or equal to the size of the return type
described in the table below.</p>
</div>
<div class="paragraph">
<p><em>param_value_size_ret</em> returns the actual size in bytes of data being
queried by <em>param_value</em>.
If <em>param_value_size_ret</em> is <code>NULL</code>, it is ignored.</p>
</div>
<table id="cl_khr_gl_sharing-clGetGLContextInfoKHR-table" class="tableblock frame-all grid-all spread">
<caption class="title">Table 12. <em>Supported Device Types for</em> <strong>clGetGLContextInfoKHR</strong></caption>
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>param_name</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Information returned in param_value</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_device_id</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Return the OpenCL device currently associated with the specified OpenGL
  context.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_DEVICES_FOR_GL_CONTEXT_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_device_id[]</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Return all OpenCL devices which may be associated with the specified
  OpenGL context.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>clGetGLContextInfoKHR</strong> returns CL_SUCCESS if the function is executed
successfully.
If no device(s) exist corresponding to <em>param_name</em>, the call will not fail,
but the value of <em>param_value_size_ret</em> will be zero.</p>
</div>
<div class="paragraph">
<p><strong>clGetGLContextInfoKHR</strong> returns CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR if a
context was specified by any of the following means:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A context was specified for an EGL-based OpenGL ES or OpenGL
implementation by setting the attributes CL_GL_CONTEXT_KHR and
CL_EGL_DISPLAY_KHR.</p>
</li>
<li>
<p>A context was specified for a GLX-based OpenGL implementation by setting
the attributes CL_GL_CONTEXT_KHR and CL_GLX_DISPLAY_KHR.</p>
</li>
<li>
<p>A context was specified for a WGL-based OpenGL implementation by setting
the attributes CL_GL_CONTEXT_KHR and CL_WGL_HDC_KHR.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>and any of the following conditions hold:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The specified display and context attributes do not identify a valid
OpenGL or OpenGL ES context.</p>
</li>
<li>
<p>The specified context does not support buffer and renderbuffer objects.</p>
</li>
<li>
<p>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 it does not support sharing data
with OpenCL due to implementation restrictions).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>clGetGLContextInfoKHR</strong> returns CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR if a
share group was specified for a CGL-based OpenGL implementation by setting
the attribute CL_CGL_SHAREGROUP_KHR, and the specified share group does not
identify a valid CGL share group object.</p>
</div>
<div class="paragraph">
<p><strong>clGetGLContextInfoKHR</strong> returns CL_INVALID_OPERATION if a context was
specified as described above and any of the following conditions hold:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A context or share group object was specified for one of CGL, EGL, GLX,
or WGL and the OpenGL implementation does not support that window-system
binding API.</p>
</li>
<li>
<p>More than one of the attributes CL_CGL_SHAREGROUP_KHR,
CL_EGL_DISPLAY_KHR, CL_GLX_DISPLAY_KHR, and CL_WGL_HDC_KHR is set to a
non-default value.</p>
</li>
<li>
<p>Both of the attributes CL_CGL_SHAREGROUP_KHR and CL_GL_CONTEXT_KHR are
set to non-default values.</p>
</li>
<li>
<p>Any of the devices specified in the &lt;devices&gt; argument cannot support
OpenCL objects which share the data store of an OpenGL object.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>clGetGLContextInfoKHR</strong> returns CL_INVALID_VALUE if an attribute name other
than those specified in <em>table 4.5</em> is specified in <em>properties</em>.</p>
</div>
<div class="paragraph">
<p>Additionally, <strong>clGetGLContextInfoKHR</strong> returns CL_INVALID_VALUE if
<em>param_name</em> is not one of the values listed in the table
<a href="#cl_khr_gl_sharing-clGetGLContextInfoKHR-table"><em>GL context information that
can be queried with</em> <strong>clGetGLContextInfoKHR</strong></a>, or if the size in bytes
specified by <em>param_value_size</em> is less than the size of the return type
shown in the table and <em>param_value</em> is not a <code>NULL</code> value;
CL_OUT_OF_RESOURCES if there is a failure to allocate resources required by
the OpenCL implementation on the device; or CL_OUT_OF_HOST_MEMORY if there
is a failure to allocate resources required by the OpenCL implementation on
the host.`"</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing-issues">3.6. Issues</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>How should the OpenGL context be identified when creating an associated
OpenCL context?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: by using a (display,context handle) attribute pair to identify an
arbitrary OpenGL or OpenGL ES context with respect to one of the
window-system binding layers EGL, GLX, or WGL, or a share group handle to
identify a CGL share group.
If a context is specified, it need not be current to the thread calling
clCreateContext*.</p>
</div>
<div class="paragraph">
<p>A previously suggested approach would use a single boolean attribute
CL_USE_GL_CONTEXT_KHR to allow creating a context associated with the
currently bound OpenGL context.
This may still be implemented as a separate extension, and might allow more
efficient acquire/release behavior in the special case where they are being
executed in the same thread as the bound GL context used to create the CL
context.</p>
</div>
</div>
</div>
</li>
<li>
<p>What should the format of an attribute list be?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>After considerable discussion, we think we can live with a list of
&lt;attribute name,value&gt; pairs terminated by zero.
The list is passed as 'cl_context_properties *<em>properties'</em>, where
cl_context_properties is typedefed to be 'intptr_t' in cl.h.</p>
</div>
<div class="paragraph">
<p>This effectively allows encoding all scalar integer, pointer, and handle
values in the host API into the argument list and is analogous to the
structure and type of EGL attribute lists.
<code>NULL</code> attribute lists are also allowed.
Again as for EGL, any attributes not explicitly passed in the list will take
on a defined default value that does something reasonable.</p>
</div>
<div class="paragraph">
<p>Experience with EGL, GLX, and WGL has shown attribute lists to be a
sufficiently flexible and general mechanism to serve the needs of management
calls such as context creation.
It is not completely general (encoding floating-point and non-scalar
attribute values is not straightforward), and other approaches were
suggested such as opaque attribute lists with getter/setter methods, or
arrays of varadic structures.</p>
</div>
</div>
</div>
</li>
<li>
<p>What&#8217;s the behavior of an associated OpenGL or OpenCL context when using
resources defined by the other associated context, and that context is
destroyed?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: OpenCL objects place a reference on the data store underlying the
corresponding GL object when they&#8217;re created.
The GL name corresponding to that data store may be deleted, but the data
store itself remains so long as any CL object has a reference to it.
However, destroying all GL contexts in the share group corresponding to a CL
context results in implementation-dependent behavior when using a
corresponding CL object, up to and including program termination.</p>
</div>
</div>
</div>
</li>
<li>
<p>How about sharing with D3D?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Sharing between D3D and OpenCL should use the same attribute list mechanism,
though obviously with different parameters, and be exposed as a similar
parallel OpenCL extension.
There may be an interaction between that extension and this one since it&#8217;s
not yet clear if it will be possible to create a CL context simultaneously
sharing GL and D3D objects.</p>
</div>
</div>
</div>
</li>
<li>
<p>Under what conditions will context creation fail due to sharing?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: Several cross-platform failure conditions are described (GL
context or CGL share group doesn&#8217;t exist, GL context doesn&#8217;t support types
of GL objects, GL context implementation doesn&#8217;t allow sharing), but
additional failures may result due to implementation-dependent reasons and
should be added to this extension as such failures are discovered.
Sharing between OpenCL and OpenGL requires integration at the driver
internals level.</p>
</div>
</div>
</div>
</li>
<li>
<p>What command queues can <strong>clEnqueueAcquire/ReleaseGLObjects</strong> be placed
on?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: All command queues.
This restriction is enforced at context creation time.
If any device passed to context creation cannot support shared CL/GL
objects, context creation will fail with a CL_INVALID_OPERATION error.</p>
</div>
</div>
</div>
</li>
<li>
<p>How can applications determine which command queue to place an
Acquire/Release on?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: The <strong>clGetGLContextInfoKHR</strong> returns either the CL device currently
corresponding to a specified GL context (typically the display it&#8217;s running
on), or a list of all the CL devices the specified context might run on
(potentially useful in multiheaded / &#8220;virtual screen&#8221; environments).
This command is not simply placed in <a href="#cl_khr_gl_sharing__memobjs">Creating
OpenCL Memory Objects from OpenGL Objects</a> because it relies on the same
property-list method of specifying a GL context introduced by this
extension.</p>
</div>
<div class="paragraph">
<p>If no devices are returned, it means that the GL context exists on an older
GPU not capable of running OpenCL, but still capable of sharing objects
between GL running on that GPU and CL running elsewhere.</p>
</div>
</div>
</div>
</li>
<li>
<p>What is the meaning of the CL_DEVICES_FOR_GL_CONTEXT_KHR query?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: The list of all CL devices that may ever be associated with a
specific GL context.
On platforms such as MacOS X, the &#8220;virtual screen&#8221; concept allows multiple
GPUs to back a single virtual display.
Similar functionality might be implemented on other windowing systems, such
as a transparent heterogenous multiheaded X server.
Therefore the exact meaning of this query is interpreted relative to the
binding layer API in use.</p>
</div>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_gl_sharing__memobjs">4. Creating OpenCL Memory Objects from OpenGL Objects</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes OpenCL functions that allow applications to use
OpenGL buffer, texture and renderbuffer objects as OpenCL memory objects.
This allows efficient sharing of data between OpenCL and OpenGL.
The OpenCL API may be used to execute kernels that read and/or write memory
objects that are also OpenGL objects.</p>
</div>
<div class="paragraph">
<p>An OpenCL image object may be created from an OpenGL texture or renderbuffer
object.
An OpenCL buffer object may be created from an OpenGL buffer object.</p>
</div>
<div class="paragraph">
<p>OpenCL memory objects may be created from OpenGL objects if and only if the
OpenCL context has been created from an OpenGL share group object or
context.
OpenGL share groups and contexts are created using platform specific APIs
such as EGL, CGL, WGL, and GLX.
On MacOS X, an OpenCL context may be created from an OpenGL share group
object using the OpenCL platform extension <strong>cl_apple_gl_sharing</strong>.
On other platforms including Microsoft Windows, Linux/Unix, and others, an
OpenCL context may be created from an OpenGL context using the extension
<strong>cl_khr_gl_sharing</strong>.
Refer to the platform documentation for your OpenCL implementation, or visit
the Khronos Registry at <a href="http://www.khronos.org/registry/cl/" class="bare">http://www.khronos.org/registry/cl/</a> for more
information.</p>
</div>
<div class="paragraph">
<p>Any supported OpenGL object defined within the GL share group object, or the
share group associated with the GL context from which the OpenCL context is
created, may be shared, with the exception of the default OpenGL objects
(i.e. objects named zero), which may not be shared.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing__memobjs-lifetime-of-shared-objects">4.1. Lifetime of Shared Objects</h3>
<div class="paragraph">
<p>An OpenCL memory object created from an OpenGL object (hereinafter refered
to as a &#8220;shared CL/GL object&#8221;) remains valid as long as the corresponding
GL object has not been deleted.
If the GL object is deleted through the GL API (e.g. <strong>glDeleteBuffers</strong>,
<strong>glDeleteTextures,</strong> or <strong>glDeleteRenderbuffers</strong>), subsequent use of the CL
buffer or image object will result in undefined behavior, including but not
limited to possible CL errors and data corruption, but may not result in
program termination.</p>
</div>
<div class="paragraph">
<p>The CL context and corresponding command-queues are dependent on the
existence of the GL share group object, or the share group associated with
the GL context from which the CL context is created.
If the GL share group object or all GL contexts in the share group are
destroyed, any use of the CL context or command-queue(s) will result in
undefined behavior, which may include program termination.
Applications should destroy the CL command-queue(s) and CL context before
destroying the corresponding GL share group or contexts</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing__memobjs-cl-buffer-objects-from-gl-buffer-objects">4.2. OpenCL Buffer Objects from OpenGL Buffer Objects</h3>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromGLBuffer(cl_context context,
                            cl_mem_flags flags,
                            GLuint bufobj,
                            cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an OpenCL buffer object from an OpenGL buffer object.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from an OpenGL context.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information.
Refer to <em>table 5.3</em> for a description of <em>flags</em>.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> can be used.</p>
</div>
<div class="paragraph">
<p><em>bufobj</em> is the name of a GL buffer object.
The data store of the GL buffer object must have have been previously
created by calling <strong>glBufferData</strong>, although its contents need not be
initialized.
The size of the data store will be used to determine the size of the CL
buffer object.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code as described below.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromGLBuffer</strong> returns a valid non-zero OpenCL buffer object and
<em>errcode_ret</em> is set to CL_SUCCESS if the buffer object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context or was not
created from a GL context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid.</p>
</li>
<li>
<p>CL_INVALID_GL_OBJECT if <em>bufobj</em> is not a GL buffer object or is a GL
buffer object but does not have an existing data store or the size of
the buffer is 0.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The size of the GL buffer object data store at the time
<strong>clCreateFromGLBuffer</strong> is called will be used as the size of buffer object
returned by <strong>clCreateFromGLBuffer</strong>.
If the state of a GL buffer object is modified through the GL API (e.g.
<strong>glBufferData</strong>) while there exists a corresponding CL buffer object,
subsequent use of the CL buffer object will result in undefined behavior.</p>
</div>
<div class="paragraph">
<p>The <strong>clRetainMemObject</strong> and <strong>clReleaseMemObject</strong> functions can be used to
retain and release the buffer object.</p>
</div>
<div class="paragraph">
<p>The CL buffer object created using clCreateFromGLBuffer can also be used to
create a CL 1D image buffer object.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing__memobjs-cl-image-objects-from-gl-textures">4.3. OpenCL Image Objects from OpenGL Textures</h3>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromGLTexture(cl_context context,
                             cl_mem_flags flags,
                             GLenum texture_target,
                             GLint miplevel,
                             GLuint texture,
                             cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates the following:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>an OpenCL 2D image object from an OpenGL 2D texture object or a single
face of an OpenGL cubemap texture object,</p>
</li>
<li>
<p>an OpenCL 2D image array object from an OpenGL 2D texture array object,</p>
</li>
<li>
<p>an OpenCL 1D image object from an OpenGL 1D texture object,</p>
</li>
<li>
<p>an OpenCL 1D image buffer object from an OpenGL texture buffer object,</p>
</li>
<li>
<p>an OpenCL 1D image array object from an OpenGL 1D texture array object,</p>
</li>
<li>
<p>an OpenCL 3D image object from an OpenGL 3D texture object.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from an OpenGL context.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information.
Refer to <em>table 5.3</em> for a description of <em>flags</em>.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> may be used.</p>
</div>
<div class="paragraph">
<p><em>texture_target</em> must be one of GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY,
GL_TEXTURE_BUFFER, GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D,
GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or
GL_TEXTURE_RECTANGLE (Note: CL_TEXTURE_RECTANGLE requires OpenGL 3.1.
Alternatively, GL_TEXTURE_RECTANGLE_ARB may be specified if the OpenGL
extension <strong>GL_ARB_texture_rectangle</strong> is supported.).
<em>texture_target</em> is used only to define the image type of <em>texture</em>.
No reference to a bound GL texture object is made or implied by this
parameter.</p>
</div>
<div class="paragraph">
<p><em>miplevel</em> is the mipmap level to be used.
If <em>texture_target</em> is GL_TEXTURE_BUFFER, <em>miplevel</em> must be 0.
Note: Implementations may return CL_INVALID_OPERATION for miplevel
values &gt; 0.</p>
</div>
<div class="paragraph">
<p><em>texture</em> is the name of a GL 1D, 2D, 3D, 1D array, 2D array, cubemap,
rectangle or buffer texture object.
The texture object must be a complete texture as per OpenGL rules on texture
completeness.
The <em>texture</em> format and dimensions defined by OpenGL for the specified
<em>miplevel</em> of the texture will be used to create the OpenCL image memory
object.
Only GL texture objects with an internal format that maps to appropriate
image channel order and data type specified in <em>tables 5.5</em> and <em>5.6</em> may be
used to create the OpenCL image memory object.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code as described below.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromGLTexture</strong> returns a valid non-zero OpenCL image object and
<em>errcode_ret</em> is set to CL_SUCCESS if the image object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context or was not
created from a GL context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid or if
value specified in <em>texture_target</em> is not one of the values specified
in the description of <em>texture_target</em>.</p>
</li>
<li>
<p>CL_INVALID_MIP_LEVEL if <em>miplevel</em> is less than the value of
<em>level<sub>base</sub></em> (for OpenGL implementations) or zero (for OpenGL ES
implementations); or greater than the value of <em>q</em> (for both OpenGL and
OpenGL ES).
<em>level<sub>base</sub></em> and <em>q</em> are defined for the texture in <em>section 3.8.10</em>
(Texture Completeness) of the OpenGL 2.1 specification and <em>section
3.7.10</em> of the OpenGL ES 2.0.</p>
</li>
<li>
<p>CL_INVALID_MIP_LEVEL if <em>miplevel</em> is greather than zero and the OpenGL
implementation does not support creating from non-zero mipmap levels.</p>
</li>
<li>
<p>CL_INVALID_GL_OBJECT if <em>texture</em> is not a GL texture object whose type
matches <em>texture_target</em>, if the specified <em>miplevel</em> of <em>texture</em> is
not defined, or if the width or height of the specified <em>miplevel</em> is
zero or if the GL texture object is incomplete.</p>
</li>
<li>
<p>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR if the OpenGL texture internal format
does not map to a supported OpenCL image format.</p>
</li>
<li>
<p>CL_INVALID_OPERATION if <em>texture</em> is a GL texture object created with a
border width value greater than zero.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the state of a GL texture object is modified through the GL API (e.g.
<strong>glTexImage2D</strong>, <strong>glTexImage3D</strong> or the values of the texture parameters
GL_TEXTURE_BASE_LEVEL or GL_TEXTURE_MAX_LEVEL are modified) while there
exists a corresponding CL image object, subsequent use of the CL image
object will result in undefined behavior.</p>
</div>
<div class="paragraph">
<p>The <strong>clRetainMemObject</strong> and <strong>clReleaseMemObject</strong> functions can be used to
retain and release the image objects.</p>
</div>
<div class="sect3">
<h4 id="cl_khr_gl_sharing__memobjs-list-of-opengl-and-corresponding-opencl-image-formats">4.3.1. List of OpenGL and corresponding OpenCL Image Formats</h4>
<div class="paragraph">
<p>The table below describes the list of OpenGL texture internal formats and
the corresponding OpenCL image formats.
If a OpenGL texture object with an internal format from the table below is
successfully created by OpenGL, then there is guaranteed to be a mapping to
one of the corresponding OpenCL image format(s) in that table.
Texture objects created with other OpenGL internal formats may (but are not
guaranteed to) have a mapping to an OpenCL image format; if such mappings
exist, they are guaranteed to preserve all color components, data types, and
at least the number of bits/component actually allocated by OpenGL for that
format.</p>
</div>
<table id="cl_khr_gl_sharing__memobjs-mapping-of-image-formats" class="tableblock frame-all grid-all spread">
<caption class="title">Table 13. <em>OpenGL internal formats and corresponding OpenCL internal formats</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>GL internal format</strong></th>
<th class="tableblock halign-left valign-top"><strong>CL image format</strong>

  <strong>(channel order, channel data type)</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT8 or</p>
<p class="tableblock">CL_BGRA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_SRGB8_ALPHA8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_sRGBA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_BGRA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA8I, GL_RGBA8I_EXT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA16I, GL_RGBA16I_EXT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA32I, GL_RGBA32I_EXT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA8UI, GL_RGBA8UI_EXT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNSIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA16UI, GL_RGBA16UI_EXT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNSIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA32UI, GL_RGBA32UI_EXT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNSIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA8_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA16_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA16F, GL_RGBA16F_ARB</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RGBA32F, GL_RGBA32F_ARB</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R8_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R16_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R16F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R32F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R8I</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R16I</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R32I</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R8UI</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNSIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R16UI</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNSIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_R32UI</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNSIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG8_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG16_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG16F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG32F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG8I</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG16I</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG32I</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG8UI</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNSIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG16UI</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNSIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_RG32UI</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNSIGNED_INT32</p></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing__memobjs-cl-image-objects-from-gl-renderbuffers">4.4. OpenCL Image Objects from OpenGL Renderbuffers</h3>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromGLRenderbuffer(cl_context context,
                                  cl_mem_flags flags,
                                  GLuint renderbuffer,
                                  cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an OpenCL 2D image object from an OpenGL renderbuffer object.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from an OpenGL context.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information.
Refer to <em>table 5.3</em> for a description of <em>flags</em>.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> can be used.</p>
</div>
<div class="paragraph">
<p><em>renderbuffer</em> is the name of a GL renderbuffer object.
The renderbuffer storage must be specified before the image object can be
created.
The <em>renderbuffer</em> format and dimensions defined by OpenGL will be used to
create the 2D image object.
Only GL renderbuffers with internal formats that maps to appropriate image
channel order and data type specified in <em>tables 5.5</em> and <em>5.6</em> can be used
to create the 2D image object.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code as described below.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromGLRenderbuffer</strong> returns a valid non-zero OpenCL image object
and <em>errcode_ret</em> is set to CL_SUCCESS if the image object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context or was not
created from a GL context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid.</p>
</li>
<li>
<p>CL_INVALID_GL_OBJECT if <em>renderbuffer</em> is not a GL renderbuffer object
or if the width or height of <em>renderbuffer</em> is zero.</p>
</li>
<li>
<p>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR if the OpenGL renderbuffer internal
format does not map to a supported OpenCL image format.</p>
</li>
<li>
<p>CL_INVALID_OPERATION if <em>renderbuffer</em> is a multi-sample GL renderbuffer
object.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the state of a GL renderbuffer object is modified through the GL API
(i.e. changes to the dimensions or format used to represent pixels of the GL
renderbuffer using appropriate GL API calls such as <strong>glRenderbufferStorage</strong>)
while there exists a corresponding CL image object, subsequent use of the CL
image object will result in undefined behavior.</p>
</div>
<div class="paragraph">
<p>The <strong>clRetainMemObject</strong> and <strong>clReleaseMemObject</strong> functions can be used to
retain and release the image objects.</p>
</div>
<div class="paragraph">
<p>The table <a href="#cl_khr_gl_sharing__memobjs-mapping-of-image-formats"><em>OpenGL
internal formats and corresponding OpenCL internal formats</em></a> describes the
list of OpenGL renderbuffer internal formats and the corresponding OpenCL
image formats.
If an OpenGL renderbuffer object with an internal format from the table is
successfully created by OpenGL, then there is guaranteed to be a mapping to
one of the corresponding OpenCL image format(s) in that table.
Renderbuffer objects created with other OpenGL internal formats may (but are
not guaranteed to) have a mapping to an OpenCL image format; if such
mappings exist, they are guaranteed to preserve all color components, data
types, and at least the number of bits/component actually allocated by
OpenGL for that format.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing__memobjs-querying-gl-object-information-from-a-cl-memory-object">4.5. Querying OpenGL object information from an OpenCL memory object</h3>
<div class="paragraph">
<p>The OpenGL object used to create the OpenCL memory object and information
about the object type i.e. whether it is a texture, renderbuffer or buffer
object can be queried using the following function.
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetGLObjectInfo(cl_mem memobj,
                         cl_gl_object_type *gl_object_type,
                         GLuint *gl_object_name)</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>gl_object_type</em> returns the type of GL object attached to <em>memobj</em> and can
be CL_GL_OBJECT_BUFFER, CL_GL_OBJECT_TEXTURE2D, CL_GL_OBJECT_TEXTURE3D,
CL_GL_OBJECT_TEXTURE2D_ARRAY, CL_GL_OBJECT_TEXTURE1D,
CL_GL_OBJECT_TEXTURE1D_ARRAY, CL_GL_OBJECT_TEXTURE_BUFFER, or
CL_GL_OBJECT_RENDERBUFFER.
If <em>gl_object_type</em> is <code>NULL</code>, it is ignored</p>
</div>
<div class="paragraph">
<p><em>gl_object_name</em> returns the GL object name used to create <em>memobj</em>.
If <em>gl_object_name</em> is <code>NULL</code>, it is ignored.</p>
</div>
<div class="paragraph">
<p><strong>clGetGLObjectInfo</strong> returns CL_SUCCESS if the call was executed
successfully.
Otherwise, it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_MEM_OBJECT if <em>memobj</em> is not a valid OpenCL memory object.</p>
</li>
<li>
<p>CL_INVALID_GL_OBJECT if there is no GL object associated with <em>memobj</em>.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetGLTextureInfo(cl_mem memobj,
                          cl_gl_texture_info param_name,
                          size_t param_value_size,
                          void *param_value,
                          size_t *param_value_size_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>returns additional information about the GL texture object associated with
<em>memobj</em>.</p>
</div>
<div class="paragraph">
<p><em>param_name</em> specifies what additional information about the GL texture
object associated with <em>memobj</em> to query.
The list of supported <em>param_name</em> types and the information returned in
<em>param_value</em> by <strong>clGetGLTextureInfo</strong> is described in the table below.</p>
</div>
<div class="paragraph">
<p><em>param_value</em> is a pointer to memory where the result being queried is
returned.
If <em>param_value</em> is <code>NULL</code>, it is ignored.</p>
</div>
<div class="paragraph">
<p><em>param_value_size</em> is used to specify the size in bytes of memory pointed to
by <em>param_value</em>.
This size must be &gt;= size of return type as described in the table below.</p>
</div>
<div class="paragraph">
<p><em>param_value_size_ret</em> returns the actual size in bytes of data copied to
<em>param_value</em>.
If <em>param_value_size_ret</em> is <code>NULL</code>, it is ignored.</p>
</div>
<table id="cl_khr_gl_sharing__memobjs-clGetGLTextureInfo-queries" class="tableblock frame-all grid-all spread">
<caption class="title">Table 14. <em>OpenGL texture info that may be queried with</em> <strong>clGetGLTextureInfo</strong></caption>
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_gl_texture_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Info. returned in <em>param_value</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_GL_TEXTURE_TARGET</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GLenum</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The <em>texture_target</em> argument specified in <strong>clCreateFromGLTexture</strong>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_GL_MIPMAP_LEVEL</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GLint</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The <em>miplevel</em> argument specified in <strong>clCreateFromGLTexture</strong>.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>clGetGLTextureInfo</strong> returns CL_SUCCESS if the function is executed
successfully.
Otherwise, it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_MEM_OBJECT if <em>memobj</em> is not a valid OpenCL memory object.</p>
</li>
<li>
<p>CL_INVALID_GL_OBJECT if there is no GL texture object associated with
<em>memobj</em>.</p>
</li>
<li>
<p>CL_INVALID_VALUE if <em>param_name</em> is not valid, or if size in bytes
specified by <em>param_value_size</em> is less than the size of the return type
as described in the table above and <em>param_value</em> is not <code>NULL</code>, or if
<em>param_value</em> and <em>param_value_size_ret</em> are <code>NULL</code>.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_sharing__memobjs-sharing-memory-objects-that-map-to-gl-objects-between-gl-and-cl-contexts">4.6. Sharing memory objects that map to GL objects between GL and CL contexts</h3>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int  clEnqueueAcquireGLObjects(cl_command_queue command_queue,
                                  cl_uint num_objects,
                                  const cl_mem *mem_objects,
                                  cl_uint num_events_in_wait_list,
                                  const cl_event *event_wait_list,
                                  cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to acquire OpenCL memory objects that have been created from OpenGL
objects.
These objects need to be acquired before they can be used by any OpenCL
commands queued to a command-queue.
The OpenGL objects are acquired by the OpenCL context associated with
<em>command_queue</em> and can therefore be used by all command-queues associated
with the OpenCL context.</p>
</div>
<div class="paragraph">
<p><em>command_queue</em> is a valid command-queue.
All devices used to create the OpenCL context associated with
<em>command_queue</em> must support acquiring shared CL/GL objects.
This constraint is enforced at context creation time.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be acquired in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of CL memory objects that correspond to
GL objects.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this particular command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> act as synchronization points.</p>
</div>
<div class="paragraph">
<p><em>event</em> returns an event object that identifies this command and can be used
to query or queue a wait for the command to complete.
<em>event</em> can be <code>NULL</code> in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.
If the <em>event_wait_list</em> and the <em>event</em> arguments are not <code>NULL</code>, the
<em>event</em> argument should not refer to an element of the <em>event_wait_list</em>
array.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueAcquireGLObjects</strong> returns CL_SUCCESS if the function is executed
successfully.
If <em>num_objects</em> is 0 and <em>mem_objects</em> is <code>NULL</code> the function does nothing
and returns CL_SUCCESS.
Otherwise, it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if <em>num_objects</em> &gt; 0 and <em>mem_objects</em> is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_CONTEXT if context associated with <em>command_queue</em> was not
created from an OpenGL context</p>
</li>
<li>
<p>CL_INVALID_GL_OBJECT if memory objects in <em>mem_objects</em> have not been
created from a GL object(s).</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em> is 0, or if event objects in <em>event_wait_list</em>
are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clEnqueueReleaseGLObjects(cl_command_queue command_queue,
                                 cl_uint num_objects,
                                 const cl_mem *mem_objects,
                                 cl_uint num_events_in_wait_list,
                                 const cl_event *event_wait_list,
                                 cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to release OpenCL memory objects that have been created from OpenGL
objects.
These objects need to be released before they can be used by OpenGL.
The OpenGL objects are released by the OpenCL context associated with
<em>command_queue</em>.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be released in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of CL memory objects that correspond to
GL objects.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in <em>event_wait_list</em> act as synchronization points.</p>
</div>
<div class="paragraph">
<p><em>event</em> returns an event object that identifies this particular read / write
command and can be used to query or queue a wait for the command to
complete.
<em>event</em> can be`NULL` in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.
If the <em>event_wait_list</em> and the <em>event</em> arguments are not <code>NULL</code>, the
<em>event</em> argument should not refer to an element of the <em>event_wait_list</em>
array.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueReleaseGLObjects</strong> returns CL_SUCCESS if the function is executed
successfully.
If <em>num_objects</em> is 0 and <em>mem_objects</em> is <code>NULL</code> the function does nothing
and returns CL_SUCCESS.
Otherwise, it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if <em>num_objects</em> &gt; 0 and <em>mem_objects</em> is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_CONTEXT if context associated with <em>command_queue</em> was not
created from an OpenGL context</p>
</li>
<li>
<p>CL_INVALID_GL_OBJECT if memory objects in <em>mem_objects</em> have not been
created from a GL object(s).</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em> is 0, or if event objects in <em>event_wait_list</em>
are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="cl_khr_gl_sharing__memobjs-synchronizing-opencl-and-opengl-access-to-shared-objects">4.6.1. Synchronizing OpenCL and OpenGL Access to Shared Objects</h4>
<div class="paragraph">
<p>In order to ensure data integrity, the application is responsible for
synchronizing access to shared CL/GL objects by their respective APIs.
Failure to provide such synchronization may result in race conditions and
other undefined behavior including non-portability between implementations.</p>
</div>
<div class="paragraph">
<p>Prior to calling <strong>clEnqueueAcquireGLObjects</strong>, the application must ensure
that any pending GL operations which access the objects specified in
<em>mem_objects</em> have completed.
This may be accomplished portably by issuing and waiting for completion of a
<strong>glFinish</strong> command on all GL contexts with pending references to these
objects.
Implementations may offer more efficient synchronization methods; for
example on some platforms calling <strong>glFlush</strong> may be sufficient, or
synchronization may be implicit within a thread, or there may be
vendor-specific extensions that enable placing a fence in the GL command
stream and waiting for completion of that fence in the CL command queue.
Note that no synchronization methods other than <strong>glFinish</strong> are portable
between OpenGL implementations at this time.</p>
</div>
<div class="paragraph">
<p>Similarly, after calling <strong>clEnqueueReleaseGLObjects</strong>, the application is
responsible for ensuring that any pending OpenCL operations which access the
objects specified in <em>mem_objects</em> have completed prior to executing
subsequent GL commands which reference these objects.
This may be accomplished portably by calling <strong>clWaitForEvents</strong> with the
event object returned by <strong>clEnqueueReleaseGLObjects,</strong> or by calling
<strong>clFinish</strong>.
As above, some implementations may offer more efficient methods.</p>
</div>
<div class="paragraph">
<p>The application is responsible for maintaining the proper order of
operations if the CL and GL contexts are in separate threads.</p>
</div>
<div class="paragraph">
<p>If a GL context is bound to a thread other than the one in which
<strong>clEnqueueReleaseGLObjects</strong> is called, changes to any of the objects in
<em>mem_objects</em> may not be visible to that context without additional steps
being taken by the application.
For an OpenGL 3.1 (or later) context, the requirements are described in
Appendix D (&#8220;Shared Objects and Multiple Contexts&#8221;) of the OpenGL 3.1
Specification.
For prior versions of OpenGL, the requirements are implementation-dependent.</p>
</div>
<div class="paragraph">
<p>Attempting to access the data store of an OpenGL object after it has been
acquired by OpenCL and before it has been released will result in undefined
behavior.
Similarly, attempting to access a shared CL/GL object from OpenCL before it
has been acquired by the OpenCL command queue, or after it has been
released, will result in undefined behavior.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_gl_event-creating">5. Creating OpenCL Event Objects from OpenGL Sync Objects</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="cl_khr_gl_event-overview">5.1. Overview</h3>
<div class="paragraph">
<p>This section describes the <strong>cl_khr_gl_event</strong> extension.
This extension allows creating OpenCL event objects linked to OpenGL fence
sync objects, potentially improving efficiency of sharing images and buffers
between the two APIs.
The companion <strong>GL_ARB_cl_event</strong> extension provides the complementary
functionality of creating an OpenGL sync object from an OpenCL event object.</p>
</div>
<div class="paragraph">
<p>In addition, this extension modifies the behavior of
<strong>clEnqueueAcquireGLObjects</strong> and <strong>clEnqueueReleaseGLObjects</strong> to implicitly
guarantee synchronization with an OpenGL context bound in the same thread as
the OpenCL context.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_event-new-procedures-and-functions">5.2. New Procedures and Functions</h3>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_event clCreateEventFromGLsyncKHR(cl_context context,
                                    GLsync sync,
                                    cl_int *errcode_ret);</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_event-new-tokens">5.3. New Tokens</h3>
<div class="paragraph">
<p>Returned by <strong>clGetEventInfo</strong> when <em>param_name</em> is CL_EVENT_COMMAND_TYPE:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_event-additions-to-chapter-5">5.4. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>Add following to the fourth paragraph of <em>section 5.11</em> (prior to the
description of <strong>clWaitForEvents</strong>):</p>
</div>
<div class="paragraph">
<p>&#8220;Event objects can also be used to reflect the status of an OpenGL sync
object.
The sync object in turn refers to a fence command executing in an OpenGL
command stream.
This provides another method of coordinating sharing of buffers and images
between OpenGL and OpenCL.&#8221;</p>
</div>
<div class="paragraph">
<p>Add CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR to the valid <em>param_value</em> values
returned by <strong>clGetEventInfo</strong> for <em>param_name</em> CL_EVENT_COMMAND_TYPE (in the
third row and third column of <em>table 5.22</em>).</p>
</div>
<div class="paragraph">
<p>Add new <em>subsection 5.11.1</em>:</p>
</div>
<div class="paragraph">
<p>"`<strong>5.11.1 Linking Event Objects to OpenGL Synchronization Objects</strong></p>
</div>
<div class="paragraph">
<p>An event object may be created by linking to an OpenGL <strong>sync object</strong>.
Completion of such an event object is equivalent to waiting for completion
of the fence command associated with the linked GL sync object.</p>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_event clCreateEventFromGLsyncKHR(cl_context context,
                                    GLsync sync,
                                    cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates a linked event object.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from an OpenGL context or share
group, using the <strong>cl_khr_gl_sharing</strong> extension.</p>
</div>
<div class="paragraph">
<p><em>sync</em> is the name of a sync object in the GL share group associated with
<em>context</em>.</p>
</div>
<div class="paragraph">
<p><strong>clCreateEventFromGLsyncKHR</strong> returns a valid OpenCL event object and
<em>errcode_ret</em> is set to CL_SUCCESS if the event object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context, or was not
created from a GL context.</p>
</li>
<li>
<p>CL_INVALID_GL_OBJECT if <em>sync</em> is not the name of a sync object in the
GL share group associated with <em>context</em>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The parameters of an event object linked to a GL sync object will return the
following values when queried with <strong>clGetEventInfo</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The CL_EVENT_COMMAND_QUEUE of a linked event is <code>NULL</code>, because the
event is not associated with any OpenCL command queue.</p>
</li>
<li>
<p>The CL_EVENT_COMMAND_TYPE of a linked event is
CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR, indicating that the event is
associated with a GL sync object, rather than an OpenCL command.</p>
</li>
<li>
<p>The CL_EVENT_COMMAND_EXECUTION_STATUS of a linked event is either
CL_SUBMITTED, indicating that the fence command associated with the sync
object has not yet completed, or CL_COMPLETE, indicating that the fence
command has completed.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>clCreateEventFromGLsyncKHR</strong> performs an implicit <strong>clRetainEvent</strong> on the
returned event object.
Creating a linked event object also places a reference on the linked GL sync
object.
When the event object is deleted, the reference will be removed from the GL
sync object.</p>
</div>
<div class="paragraph">
<p>Events returned from <strong>clCreateEventFromGLsyncKHR</strong> can be used in the
<em>event_wait_list</em> argument to <strong>clEnqueueAcquireGLObjects</strong> and CL APIs that
take a cl_event as an argument but do not enqueue commands.
Passing such events to any other CL API that enqueues commands will generate
a CL_INVALID_EVENT error.`"</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_event-additions-to-extension-specification">5.5. Additions to the OpenCL Extension Specification</h3>
<div class="paragraph">
<p>Add following the paragraph describing parameter <em>event</em> to
<strong>clEnqueueAcquireGLObjects</strong>:</p>
</div>
<div class="paragraph">
<p>"`If an OpenGL context is bound to the current thread, then any OpenGL
commands which</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>affect or access the contents of a memory object listed in the
<em>mem_objects</em> list, and</p>
</li>
<li>
<p>were issued on that OpenGL context prior to the call to
<strong>clEnqueueAcquireGLObjects</strong></p>
</li>
</ol>
</div>
<div class="paragraph">
<p>will complete before execution of any OpenCL commands following the
<strong>clEnqueueAcquireGLObjects</strong> which affect or access any of those memory
objects.
If a non-<code>NULL</code> <em>event</em> object is returned, it will report completion only
after completion of such OpenGL commands.`"</p>
</div>
<div class="paragraph">
<p>Add following the paragraph describing parameter <em>event</em> to
<strong>clEnqueueReleaseGLObjects</strong>:</p>
</div>
<div class="paragraph">
<p>"`If an OpenGL context is bound to the current thread, then then any OpenGL
commands which</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>affect or access the contents of the memory objects listed in the
<em>mem_objects</em> list, and</p>
</li>
<li>
<p>are issued on that context after the call to <strong>clEnqueueReleaseGLObjects</strong></p>
</li>
</ol>
</div>
<div class="paragraph">
<p>will not execute until after execution of any OpenCL commands preceding the</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueReleaseGLObjects</strong> which affect or access any of those memory
objects.
If a non-<code>NULL</code> <em>event</em> object is returned, it will report completion before
execution of such OpenGL commands.`"</p>
</div>
<div class="paragraph">
<p>Replace the second paragraph of
<a href="#cl_khr_gl_sharing__memobjs-synchronizing-opencl-and-opengl-access-to-shared-objects">Synchronizing OpenCL and OpenGL Access to Shared Objects</a> with:</p>
</div>
<div class="paragraph">
<p>"`Prior to calling <strong>clEnqueueAcquireGLObjects</strong>, the application must ensure
that any pending OpenGL operations which access the objects specified in
<em>mem_objects</em> have completed.</p>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_gl_event</strong> extension is supported, then the OpenCL
implementation will ensure that any such pending OpenGL operations are
complete for an OpenGL context bound to the same thread as the OpenCL
context.
This is referred to as <em>implicit synchronization</em>.</p>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_gl_event</strong> extension is supported and the OpenGL context in
question supports fence sync objects, completion of OpenGL commands may also
be determined by placing a GL fence command after those commands using
<strong>glFenceSync</strong>, creating an event from the resulting GL sync object using
<strong>clCreateEventFromGLsyncKHR</strong>, and determining completion of that event
object via <strong>clEnqueueAcquireGLObjects</strong>.
This method may be considerably more efficient than calling <strong>glFinish</strong>, and
is referred to as <em>explicit synchronization</em>.
Explicit synchronization is most useful when an OpenGL context bound to
another thread is accessing the memory objects.</p>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_gl_event</strong> extension is not supported, completion of OpenGL
commands may be determined by issuing and waiting for completion of a
<strong>glFinish</strong> command on all OpenGL contexts with pending references to these
objects.
Some implementations may offer other efficient synchronization methods.
If such methods exist they will be described in platform-specific
documentation.</p>
</div>
<div class="paragraph">
<p>Note that no synchronization method other than <strong>glFinish</strong> is portable
between all OpenGL implementations and all OpenCL implementations.
While this is the only way to ensure completion that is portable to all
platforms, <strong>glFinish</strong> is an expensive operation and its use should be
avoided if the <strong>cl_khr_gl_event</strong> extension is supported on a platform.`"</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_event-issues">5.6. Issues</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>How are references between CL events and GL syncs handled?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>PROPOSED: The linked CL event places a single reference on the GL sync
object.
That reference is removed when the CL event is deleted.
A more expensive alternative would be to reflect changes in the CL event
reference count through to the GL sync.</p>
</div>
</div>
</div>
</li>
<li>
<p>How are linkages to synchronization primitives in other APIs handled?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>UNRESOLVED.
We will at least want to have a way to link events to EGL sync objects.
There is probably no analogous DX concept.
There would be an entry point for each type of synchronization primitive to
be linked to, such as clCreateEventFromEGLSyncKHR.</p>
</div>
<div class="paragraph">
<p>An alternative is a generic clCreateEventFromExternalEvent taking an
attribute list.
The attribute list would include information defining the type of the
external primitive and additional information (GL sync object handle, EGL
display and sync object handle, etc.) specific to that type.
This allows a single entry point to be reused.</p>
</div>
<div class="paragraph">
<p>These will probably be separate extensions following the API proposed here.</p>
</div>
</div>
</div>
</li>
<li>
<p>Should the CL_EVENT_COMMAND_TYPE correspond to the type of command
(fence) or the type of the linked sync object?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>PROPOSED: To the type of the linked sync object.</p>
</div>
</div>
</div>
</li>
<li>
<p>Should we support both explicit and implicit synchronization?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>PROPOSED: Yes.
Implicit synchronization is suitable when GL and CL are executing in the
same application thread.
Explicit synchronization is suitable when they are executing in different
threads but the expense of glFinish is too high.</p>
</div>
</div>
</div>
</li>
<li>
<p>Should this be a platform or device extension?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>PROPOSED: Platform extension.
This may result in considerable under-the-hood work to implement the
sync&#8594;event semantics using only the public GL API, however, when multiple
drivers and devices with different GL support levels coexist in the same
runtime.</p>
</div>
</div>
</div>
</li>
<li>
<p>Where can events generated from GL syncs be usable?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>PROPOSED: Only with clEnqueueAcquireGLObjects, and attempting to use such an
event elsewhere will generate an error.
There is no apparent use case for using such events elsewhere, and possibly
some cost to supporting it, balanced by the cost of checking the source of
events in all other commands accepting them as parameters.</p>
</div>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_dx9_media_sharing">6. Creating OpenCL Memory Objects from DirectX 9 Media Surfaces</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="cl_khr_dx9_media_sharing-overview">6.1. Overview</h3>
<div class="paragraph">
<p>This section describes the <strong>cl_khr_dx9_media_sharing</strong> extension.
The goal of this extension is to allow applications to use media surfaces as
OpenCL memory objects.
This allows efficient sharing of data between OpenCL and selected adapter
APIs (only DX9 for now).
If this extension is supported, an OpenCL image object can be created from a
media surface and the OpenCL API can be used to execute kernels that read
and/or write memory objects that are media surfaces.
Note that OpenCL memory objects may be created from the adapter media
surface if and only if the OpenCL context has been created from that
adapter.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_dx9_media_sharing-new-procedures-and-functions">6.2. New Procedures and Functions</h3>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetDeviceIDsFromDX9MediaAdapterKHR(
                                    cl_platform_id platform,
                                    cl_uint num_media_adapters,
                                    cl_dx9_media_adapter_type_khr *media_adapters_type,
                                    void *media_adapters,
                                    cl_dx9_media_adapter_set_khr media_adapter_set,
                                    cl_uint num_entries,
                                    cl_device_id *devices,
                                    cl_int *num_devices)

cl_mem clCreateFromDX9MediaSurfaceKHR(cl_context context,
                                      cl_mem_flags flags,
                                      cl_dx9_media_adapter_type_khr adapter_type,
                                      void *surface_info,
                                      cl_uint plane,
                                      cl_int *errcode_ret)

cl_int clEnqueueAcquireDX9MediaSurfacesKHR(cl_command_queue command_queue,
                                           cl_uint num_objects,
                                           const cl_mem *mem_objects,
                                           cl_uint num_events_in_wait_list,
                                           const cl_event *event_wait_list,
                                           cl_event *event)

cl_int clEnqueueReleaseDX9MediaSurfacesKHR(cl_command_queue command_queue,
                                           cl_uint num_objects,
                                           const cl_mem *mem_objects,
                                           cl_uint num_events_in_wait_list,
                                           const cl_event *event_wait_list,
                                           cl_event *event)</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_dx9_media_sharing-new-tokens">6.3. New Tokens</h3>
<div class="paragraph">
<p>Accepted by the <em>media_adapter_type</em> parameter of
<strong>clGetDeviceIDsFromDX9MediaAdapterKHR</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_ADAPTER_D3D9_KHR         0x2020
CL_ADAPTER_D3D9EX_KHR       0x2021
CL_ADAPTER_DXVA_KHR         0x2022</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted by the <em>media_adapter_set</em> parameter of
<strong>clGetDeviceIDsFromDX9MediaAdapterKHR</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR  0x2023
CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR        0x2024</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as a property name in the <em>properties</em> parameter of
<strong>clCreateContext</strong> and <strong>clCreateContextFromType</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_CONTEXT_ADAPTER_D3D9_KHR     0x2025
CL_CONTEXT_ADAPTER_D3D9EX_KHR   0x2026
CL_CONTEXT_ADAPTER_DXVA_KHR     0x2027</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as the property being queried in the <em>param_name</em> parameter of
<strong>clGetMemObjectInfo</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR   0x2028
CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR   0x2029</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as the property being queried in the <em>param_name</em> parameter of
<strong>clGetImageInfo</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_IMAGE_DX9_MEDIA_PLANE_KHR    0x202A</pre>
</div>
</div>
<div class="paragraph">
<p>Returned in the <em>param_value</em> parameter of <strong>clGetEventInfo</strong> when
<em>param_name</em> is CL_EVENT_COMMAND_TYPE:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR   0x202B
CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR   0x202C</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clCreateContext</strong> and <strong>clCreateContextFromType</strong> if the media
adapter specified for interoperability is not compatible with the devices
against which the context is to be created:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_INVALID_DX9_MEDIA_ADAPTER_KHR    -1010</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clCreateFromDX9MediaSurfaceKHR</strong> when <em>adapter_type</em> is set to a
media adapter and the <em>surface_info</em> does not reference a media surface of
the required type, or if <em>adapter_type</em> is set to a media adapter type and
<em>surface_info</em> does not contain a valid reference to a media surface on that
adapter, by <strong>clGetMemObjectInfo</strong> when <em>param_name</em> is a surface or handle
when the image was not created from an appropriate media surface, and from
<strong>clGetImageInfo</strong> when <em>param_name</em> is CL IMAGE_DX9_MEDIA_PLANE KHR and image
was not created from an appropriate media surface.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_INVALID_DX9_MEDIA_SURFACE_KHR    -1011</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clEnqueueAcquireDX9MediaSurfacesKHR</strong> when any of <em>mem_objects</em>
are currently acquired by OpenCL</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR   -1012</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clEnqueueReleaseDX9MediaSurfacesKHR</strong> when any of <em>mem_objects</em>
are not currently acquired by OpenCL</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR   -1013</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_dx9_media_sharing-additions-to-chapter-4">6.4. Additions to Chapter 4 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>In <em>section 4.4</em>, replace the description of <em>properties</em> under
<strong>clCreateContext</strong> with:</p>
</div>
<div class="paragraph">
<p>&#8220;_properties_ 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 <em>properties</em>, then its default value
(listed in <em>table 4.5</em>) is used (it is said to be specified implicitly).
If <em>properties</em> is <code>NULL</code> or empty (points to a list whose first value is
zero), all attributes take on their default values.&#8221;</p>
</div>
<div class="paragraph">
<p>Add the following to <em>table 4.5</em>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_context_properties enum</strong></th>
<th class="tableblock halign-left valign-top"><strong>Property value</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_CONTEXT_ADAPTER_D3D9_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IDirect3DDevice9 *</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies an IDirect3DDevice9 to use for D3D9 interop.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_CONTEXT_ADAPTER_D3D9EX_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IDirect3DDeviceEx*</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies an IDirect3DDevice9Ex to use for D3D9 interop.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_CONTEXT_ADAPTER_DXVA_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IDXVAHD_Device *</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies an IDXVAHD_Device to use for DXVA interop.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add to the list of errors for <strong>clCreateContext</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_ADAPTER_KHR if any of the values of the properties
CL_CONTEXT_ADAPTER_D3D9_KHR, CL_CONTEXT_ADAPTER_D3D9EX_KHR or
CL_CONTEXT_ADAPTER_DXVA_KHR is non-<code>NULL</code> and does not specify a valid
media adapter with which the <em>cl_device_ids</em> against which this context
is to be created may interoperate.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Add to the list of errors for <strong>clCreateContextFromType</strong> the same new errors
described above for <strong>clCreateContext</strong>.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_dx9_media_sharing-additions-to-chapter-5">6.5. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>Add to the list of errors for <strong>clGetMemObjectInfo</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_DX9_MEDIA_SURFACE_KHR if <em>param_name</em> is
CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR and <em>memobj</em> was not created by the
function <strong>clCreateFromDX9MediaSurfaceKHR</strong> from a Direct3D9 surface.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Extend <em>table 5.12</em> to include the following entry:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_mem_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Info. returned in <em>param_value</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_dx9_media_adapter_type_khr</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the <em>cl_dx9_media_adapter_type_khr</em> argument value specified when
  <em>memobj</em> is created using <strong>clCreateFromDX9MediaSurfaceKHR</strong>.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_dx9_surface_info_khr</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the <em>cl_dx9_surface_info_khr</em> argument value specified when
  <em>memobj</em> is created using <strong>clCreateFromDX9MediaSurfaceKHR</strong>.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add to the list of errors for <strong>clGetImageInfo</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_DX9_MEDIA_SURFACE_KHR if <em>param_name</em> is
CL_IMAGE_DX9_MEDIA_PLANE_KHR and <em>image</em> was not created by the function
<strong>clCreateFromDX9MediaSurfaceKHR</strong>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Extend <em>table 5.9</em> to include the following entry.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_image_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Info. returned in <em>param_value</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_IMAGE_DX9_MEDIA_PLANE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_uint</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the <em>plane</em> argument value specified when <em>memobj</em> is created
  using <strong>clCreateFromDX9MediaSurfaceKHR</strong>.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add to <em>table 5.22</em> in the <strong>Info returned in param_value</strong> column for
<em>cl_event_info</em> = CL_EVENT_COMMAND_TYPE:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR
CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_dx9_media_sharing-sharing-media-surfaces-with-opencl">6.6. Sharing Media Surfaces with OpenCL</h3>
<div class="paragraph">
<p>This section discusses OpenCL functions that allow applications to use media
surfaces as OpenCL memory objects.
This allows efficient sharing of data between OpenCL and media surface APIs.
The OpenCL API may be used to execute kernels that read and/or write memory
objects that are also media surfaces.
An OpenCL image object may be created from a media surface.
OpenCL memory objects may be created from media surfaces if and only if the
OpenCL context has been created from a media adapter.</p>
</div>
<div class="sect3">
<h4 id="cl_khr_dx9_media_sharing-querying-opencl-devices-corresponding-to-media-adapters">6.6.1. Querying OpenCL Devices corresponding to Media Adapters</h4>
<div class="paragraph">
<p>Media adapters are an abstraction associated with devices that provide media
capabilities.</p>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetDeviceIDsFromDX9MediaAdapterKHR(
                                    cl_platform_id platform,
                                    cl_uint num_media_adapters,
                                    cl_dx9_media_adapter_type_khr *media_adapters_type,
                                    void *media_adapters,
                                    cl_dx9_media_adapter_set_khr media_adapter_set,
                                    cl_uint num_entries,
                                    cl_device_id *devices,
                                    cl_int *num_devices)</code></pre>
</div>
</div>
<div class="paragraph">
<p>queries a media adapter for any associated OpenCL devices.
Adapters with associated OpenCL devices can enable media surface sharing
between the two.</p>
</div>
<div class="paragraph">
<p><em>platform</em> refers to the platform ID returned by <strong>clGetPlatformIDs</strong>.</p>
</div>
<div class="paragraph">
<p><em>num_media_adapters</em> specifies the number of media adapters.</p>
</div>
<div class="paragraph">
<p><em>media_adapters_type</em> is an array of <em>num_media_adapters</em> entries.
Each entry specifies the type of media adapter and must be one of the values
described in the table below.</p>
</div>
<table id="cl_khr_dx9_media_sharing-media-adapter-types" class="tableblock frame-all grid-all spread">
<caption class="title">Table 15. <em>cl_dx9_media_adapter_type_khr values</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_dx9_media_adapter_type_khr</strong></th>
<th class="tableblock halign-left valign-top"><strong>Type of media adapters</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_ADAPTER_D3D9_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IDirect3DDevice9 *</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_ADAPTER_D3D9EX_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IDirect3DDevice9Ex *</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_ADAPTER_DXVA_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IDXVAHD_Device *</p></td>
</tr>
</tbody>
</table>
<table id="cl_khr_dx9_media_sharing-media-adapter-sets" class="tableblock frame-all grid-all spread">
<caption class="title">Table 16. <em>cl_dx9_media_adapter_set_khr values</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_dx9_media_adapter_set_khr</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The preferred OpenCL devices associated with the media adapter.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_ALL_DEVICES_FOR_MEDIA_DX9_ADAPTER_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All OpenCL devices that may interoperate with the media adapter</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><em>media_adapters</em> is an array of <em>num_media_adapters</em> entries.
Each entry specifies the actual adapter whose type is specified by
<em>media_adapter_type</em>.
The <em>media_adapters</em> must be one of the types described in the table
<a href="#cl_khr_dx9_media_sharing-media-adapter-types"><em>cl_dx9_media_adapter_type_khr
values</em></a>.
<em>media_adapter_set</em> specifies the set of adapters to return and must be one
of the values described in the table
&lt;&lt;[[cl_khr_dx9_media_sharing-media-adapter-sets,<em>cl_dx9_media_adapter_set_khr
values</em>&gt;&gt;.</p>
</div>
<div class="paragraph">
<p><em>num_entries</em> is the number of cl_device_id entries that can be added to
<em>devices</em>.
If <em>devices</em> is not <code>NULL</code>, the <em>num_entries</em> must be greater than zero.</p>
</div>
<div class="paragraph">
<p><em>devices</em> returns a list of OpenCL devices found that support the list of
media adapters specified.
The cl_device_id values returned in <em>devices</em> can be used to identify a
specific OpenCL device.
If <em>devices</em> argument is <code>NULL</code>, this argument is ignored.
The number of OpenCL devices returned is the minimum of the value specified
by <em>num_entries</em> or the number of OpenCL devices whose type matches
<em>device_type</em>.</p>
</div>
<div class="paragraph">
<p><em>num_devices</em> returns the number of OpenCL devices.
If <em>num_devices</em> is <code>NULL</code>, this argument is ignored.</p>
</div>
<div class="paragraph">
<p><strong>clGetDeviceIDsFromDX9MediaAdapterKHR</strong> returns CL_SUCCESS if the function is
executed successfully.
Otherwise, it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_PLATFORM if <em>platform</em> is not a valid platform.</p>
</li>
<li>
<p>CL_INVALID_VALUE if <em>num_media_adapters</em> is zero or if
<em>media_adapters_type</em> is <code>NULL</code> or if <em>media_adapters</em> is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_VALUE if any of the entries in <em>media_adapters_type</em> or
<em>media_adapters</em> is not a valid value.</p>
</li>
<li>
<p>CL_INVALID_VALUE if <em>media_adapter_set</em> is not a valid value.</p>
</li>
<li>
<p>CL_INVALID_VALUE if <em>num_entries</em> is equal to zero and <em>devices</em> is not
<code>NULL</code> or if both <em>num_devices</em> and <em>devices</em> are <code>NULL</code>.</p>
</li>
<li>
<p>CL_DEVICE_NOT_FOUND if no OpenCL devices that correspond to adapters
specified in <em>media_adapters</em> and <em>media_adapters_type</em> were found.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_dx9_media_sharing-creating-media-resources-as-opencl-image-objects">6.6.2. Creating Media Resources as OpenCL Image Objects</h4>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromDX9MediaSurfaceKHR(cl_context context,
                                      cl_mem_flags flags,
                                      cl_dx9_media_adapter_type_khr adapter_type,
                                      void *surface_info,
                                      cl_uint plane,
                                      cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an OpenCL image object from a media surface.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from a media adapter.</p>
</div>
<div class="paragraph">
<p>flags is a bit-field that is used to specify usage information.
Refer to <em>table 5.3</em> for a description of flags.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> can be used.</p>
</div>
<div class="paragraph">
<p><em>adapter_type</em> is a value from enumeration of supported adapters described
in the table
<a href="#cl_khr_dx9_media_sharing-media-adapter-types"><em>cl_dx9_media_adapter_type_khr
values</em></a>.
The type of <em>surface_info</em> is determined by the adapter type.
The implementation does not need to support all adapter types.
This approach provides flexibility to support additional adapter types in
the future.
Supported adapter types are CL_ADAPTER_D3D9_KHR, CL_ADAPTER_D3D9EX_KHR and
CL_ADAPTER_DXVA_KHR.</p>
</div>
<div class="paragraph">
<p>If <em>adapter_type</em> is CL_ADAPTER_D3D9_KHR, CL_ADAPTER_D3D9EX_KHR and
CL_ADAPTER_DXVA_KHR, the <em>surface_info</em> points to the following structure:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>typedef struct _cl_dx9_surface_info_khr
{
    IDirect3DSurface9 *resource;
    HANDLE shared_handle;
} cl_dx9_surface_info_khr;</code></pre>
</div>
</div>
<div class="paragraph">
<p>For DX9 surfaces, we need both the handle to the resource and the resource
itself to have a sufficient amount of information to eliminate a copy of the
surface for sharing in cases where this is possible.
Elimination of the copy is driver dependent.
<em>shared_handle</em> may be <code>NULL</code> and this may result in sub-optimal
performance.</p>
</div>
<div class="paragraph">
<p><em>surface_info</em> is a pointer to one of the structures defined in the
<em>adapter_type</em> description above passed in as a void *.</p>
</div>
<div class="paragraph">
<p><em>plane</em> is the plane of resource to share for planar surface formats.
For planar formats, we use the plane parameter to obtain a handle to thie
specific plane (Y, U or V for example).
For non-planar formats used by media, <em>plane</em> must be 0.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromDX9MediaSurfaceKHR</strong> returns a valid non-zero 2D image object
and <em>errcode_ret</em> is set to CL_SUCCESS if the 2D image object is created
successfully.
Otherwise it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid or if
<em>plane</em> is not a valid plane of <em>resource</em> specified in <em>surface_info</em>.</p>
</li>
<li>
<p>CL_INVALID_DX9_MEDIA_SURFACE_KHR if <em>resource</em> specified in
<em>surface_info</em> is not a valid resource or is not associated with
<em>adapter_type</em> (e.g., <em>adapter_type</em> is set to CL_ADAPTER_D3D9_KHR and
<em>resource</em> is not a Direct3D 9 surface created in D3DPOOL_DEFAULT).</p>
</li>
<li>
<p>CL_INVALID_DX9_MEDIA_SURFACE_KHR if <em>shared_handle</em> specified in
<em>surface_info</em> is not <code>NULL</code> or a valid handle value.</p>
</li>
<li>
<p>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR if the texture format of <em>resource</em>
is not listed in <a href="#cl_khr_dx9_media_sharing-fourcc-image-formats"><em>YUV
FourCC codes and corresponding OpenCL image format</em></a> or
<a href="#cl_khr_dx9_media_sharing-d3d-image-formats"><em>Direct3D formats and
corresponding OpenCL image formats</em></a>.</p>
</li>
<li>
<p>CL_INVALID_OPERATION if there are no devices in <em>context</em> that support
<em>adapter_type</em>.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The width and height of the returned OpenCL 2D image object are determined
by the width and height of the plane of resource.
The channel type and order of the returned image object is determined by the
format and plane of resource and are described in the table
<a href="#cl_khr_dx9_media_sharing-fourcc-image-formats"><em>YUV FourCC codes and
corresponding OpenCL image format</em></a> or
<a href="#cl_khr_dx9_media_sharing-d3d-image-formats"><em>Direct3D formats and
corresponding OpenCL image formats</em></a>.</p>
</div>
<div class="paragraph">
<p>This call will increment the internal media surface count on <em>resource</em>.
The internal media surface reference count on <em>resource</em> will be decremented
when the OpenCL reference count on the returned OpenCL memory object drops
to zero.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_dx9_media_sharing-querying-media-surface-properties-of-memory-objects-created-from-media-surfaces">6.6.3. Querying Media Surface Properties of Memory Objects created from Media Surfaces</h4>
<div class="paragraph">
<p>Properties of media surface objects may be queried using
<strong>clGetMemObjectInfo</strong> and <strong>clGetImageInfo</strong> with <em>param_name</em>
CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR, CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR and
CL_IMAGE_DX9_MEDIA_PLANE_KHR as described in <em>sections 5.4.3</em> and <em>5.3.6</em>.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_dx9_media_sharing-sharing-memory-objects-created-from-media-surfaces-between-a-media-adapter-and-opencl">6.6.4. Sharing Memory Objects created from Media Surfaces between a Media Adapter and OpenCL</h4>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clEnqueueAcquireDX9MediaSurfacesKHR(cl_command_queue command_queue,
                                           cl_uint num_objects,
                                           const cl_mem *mem_objects,
                                           cl_uint num_events_in_wait_list,
                                           const cl_event *event_wait_list,
                                           cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to acquire OpenCL memory objects that have been created from a media
surface.
The media surfaces are acquired by the OpenCL context associated with
<em>command_queue</em> and can therefore be used by all command-queues associated
with the OpenCL context.</p>
</div>
<div class="paragraph">
<p>OpenCL memory objects created from media surfaces must be acquired before
they can be used by any OpenCL commands queued to a command-queue.
If an OpenCL memory object created from a media surface is used while it is
not currently acquired by OpenCL, the call attempting to use that OpenCL
memory object will return CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR.</p>
</div>
<div class="paragraph">
<p>If CL_CONTEXT_INTEROP_USER_SYNC is not specified as CL_TRUE during context
creation, <strong>clEnqueueAcquireDX9MediaSurfacesKHR</strong> provides the synchronization
guarantee that any media adapter API calls involving the interop device(s)
used in the OpenCL context made before <strong>clEnqueueAcquireDX9MediaSurfacesKHR</strong>
is called will complete executing before <em>event</em> reports completion and
before the execution of any subsequent OpenCL work issued in <em>command_queue</em>
begins.
If the context was created with properties specifying
CL_CONTEXT_INTEROP_USER_SYNC as CL_TRUE, the user is responsible for
guaranteeing that any media adapter API calls involving the interop
device(s) used in the OpenCL context made before
<strong>clEnqueueAcquireDX9MediaSurfacesKHR</strong> is called have completed before
calling <strong>clEnqueueAcquireDX9MediaSurfacesKHR</strong> <strong>.</strong></p>
</div>
<div class="paragraph">
<p><em>command_queue</em> is a valid command-queue.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be acquired in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of OpenCL memory objects that were
created from media surfaces.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this particular command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in <em>event_wait_list</em> act as synchronization points.</p>
</div>
<div class="paragraph">
<p><em>event</em> returns an event object that identifies this particular command and
can be used to query or queue a wait for this particular command to
complete.
<em>event</em> can be <code>NULL</code> in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.
If the <em>event_wait_list</em> and the <em>event</em> arguments are not <code>NULL</code>, the
<em>event</em> argument should not refer to an element of the <em>event_wait_list</em>
array.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueAcquireDX9MediaSurfacesKHR</strong> returns CL_SUCCESS if the function is
executed successfully.
If <em>num_objects</em> is 0 and <em>mem_objects</em> is <code>NULL</code> then the function does
nothing and returns CL_SUCCESS.
Otherwise it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if <em>num_objects</em> &gt; 0 and <em>mem_objects</em> is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects or if memory objects in <em>mem_objects</em> have not
been created from media surfaces.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_CONTEXT if context associated with <em>command_queue</em> was not
created from a device that can share the media surface referenced by
<em>mem_objects</em>.</p>
</li>
<li>
<p>CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR if memory objects in
<em>mem_objects</em> have previously been acquired using
<strong>clEnqueueAcquireDX9MediaSurfacesKHR</strong> but have not been released using
<strong>clEnqueueReleaseDX9MediaSurfacesKHR</strong>.</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em> is 0, or if event objects in <em>event_wait_list</em>
are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clEnqueueReleaseDX9MediaSurfacesKHR(cl_command_queue command_queue,
                                           cl_uint num_objects,
                                           const cl_mem *mem_objects,
                                           cl_uint num_events_in_wait_list,
                                           const cl_event *event_wait_list,
                                           cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to release OpenCL memory objects that have been created from media
surfaces.
The media surfaces are released by the OpenCL context associated with
<em>command_queue</em>.</p>
</div>
<div class="paragraph">
<p>OpenCL memory objects created from media surfaces which have been acquired
by OpenCL must be released by OpenCL before they may be accessed by the
media adapter API.
Accessing a media surface while its corresponding OpenCL memory object is
acquired is in error and will result in undefined behavior, including but
not limited to possible OpenCL errors, data corruption, and program
termination.</p>
</div>
<div class="paragraph">
<p>If CL_CONTEXT_INTEROP_USER_SYNC is not specified as CL_TRUE during context
creation, <strong>clEnqueueReleaseDX9MediaSurfacesKHR</strong> provides the synchronization
guarantee that any calls to media adapter APIs involving the interop
device(s) used in the OpenCL context made after the call to
<strong>clEnqueueReleaseDX9MediaSurfacesKHR</strong> will not start executing until after
all events in <em>event_wait_list</em> are complete and all work already submitted
to <em>command_queue</em> completes execution.
If the context was created with properties specifying
CL_CONTEXT_INTEROP_USER_SYNC as CL_TRUE, the user is responsible for
guaranteeing that any media adapter API calls involving the interop
device(s) used in the OpenCL context made after
<strong>clEnqueueReleaseDX9MediaSurfacesKHR</strong> will not start executing until after
event returned by <strong>clEnqueueReleaseDX9MediaSurfacesKHR</strong> reports completion.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be released in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of OpenCL memory objects that were
created from media surfaces.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this particular command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in <em>event</em> returns an event object that identifies this
particular command and can be used to query or queue a wait for this
particular command to complete.
<em>event</em> can be <code>NULL</code> in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.
If the <em>event_wait_list</em> and the <em>event</em> arguments are not <code>NULL</code>, the
<em>event</em> argument should not refer to an element of the <em>event_wait_list</em>
array.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueReleaseDX9MediaSurfaceKHR</strong> returns CL_SUCCESS if the function is
executed successfully.
If <em>num_objects</em> is 0 and &lt;<em>mem_objects</em>&gt; is <code>NULL</code> the function does
nothing and returns CL_SUCCESS.
Otherwise it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if <em>num_objects</em> &gt; 0 and <em>mem_objects</em> is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects or if memory objects in <em>mem_objects</em> have not
been created from valid media surfaces.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_CONTEXT if context associated with <em>command_queue</em> was not
created from a media object.</p>
</li>
<li>
<p>CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR if memory objects in <em>mem_objects</em>
have not previously been acquired using
<strong>clEnqueueAcquireDX9MediaSurfacesKHR</strong>, or have been released using
<strong>clEnqueueReleaseDX9MediaSurfacesKHR</strong> since the last time that they were
acquired.</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em>&gt; is 0, or if event objects in
<em>event_wait_list</em> are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_dx9_media_sharing-surface-formats-for-media-surface-sharing">6.6.5. Surface formats for Media Surface Sharing</h4>
<div class="paragraph">
<p>This section includes the D3D surface formats that are supported when the
adapter type is one of the Direct 3D lineage .
Using a D3D surface format not listed here is an error.
To extend the use of this extension to support media adapters beyond
DirectX9 tables similar to the ones in this section will need to be defined
for the surface formats supported by the new media adapter.
All implementations that support this extension are required to support the
NV12 surface format, the other surface formats supported are the same
surface formats that the adapter you are sharing with supports as long as
they are listed in the table
<a href="#cl_khr_dx9_media_sharing-fourcc-image-formats"><em>YUV FourCC codes and
corresponding OpenCL image format</em></a> or in the table
<a href="#cl_khr_dx9_media_sharing-d3d-image-formats"><em>Direct3D formats and
corresponding OpenCL image formats</em></a>.</p>
</div>
<table id="cl_khr_dx9_media_sharing-fourcc-image-formats" class="tableblock frame-all grid-all spread">
<caption class="title">Table 17. <em>YUV FourCC codes and corresponding OpenCL image format</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>FOUR CC code</strong></th>
<th class="tableblock halign-left valign-top"><strong>CL image format</strong>

<strong>(channel order, channel data type)</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">FOURCC('N','V','1','2'), Plane 0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">FOURCC('N','V','1','2'), Plane 1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">FOURCC('Y','V','1','2'), Plane 0</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">FOURCC('Y','V','1','2'), Plane 1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">FOURCC('Y','V','1','2'), Plane 2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT8</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>In the table <a href="#cl_khr_dx9_media_sharing-fourcc-image-formats"><em>YUV FourCC
codes and corresponding OpenCL image format</em></a> above, NV12 Plane 0
corresponds to the luminance (Y) channel and Plane 1 corresponds to the UV
channels.
The YV12 Plane 0 corresponds to the Y channel, Plane 1 corresponds to the V
channel and Plane 2 corresponds to the U channel.
Note that the YUV formats map to CL_R and CL_RG but do not perform any YUV
to RGB conversion and vice-versa.</p>
</div>
<table id="cl_khr_dx9_media_sharing-d3d-image-formats" class="tableblock frame-all grid-all spread">
<caption class="title">Table 18. <em>Direct3D formats and corresponding OpenCL image formats</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>D3D format</strong></th>
<th class="tableblock halign-left valign-top"><strong>CL image format</strong><br>
<strong>(channel order, channel data type)</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_R32F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_R16F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_L16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_A8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_A, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_L8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_G32R32F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_G16R16F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_G16R16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_A8L8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_A32B32G32R32F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_A16B16G16R16F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_A16B16G16R16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_A8B8G8R8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_X8B8G8R8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_A8R8G8B8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_BGRA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">D3DFMT_X8R8G8B8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_BGRA, CL_UNORM_INT8</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Note: The D3D9 format names in the table above seem to imply that the
order of the color channels are switched relative to OpenCL but this is
not the case.
For example, the layout of channels for each pixel for D3DFMT_A32FB32FG32FR32F
is the same as CL_RGBA, CL_FLOAT.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_d3d10_sharing">7. Creating OpenCL Memory Objects from Direct3D 10 Buffers and Textures</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="cl_khr_d3d10_sharing-overview">7.1. Overview</h3>
<div class="paragraph">
<p>This section describes the <strong>cl_khr_d3d10_sharing</strong> extension.
The goal of this extension is to provide interoperability between OpenCL and
Direct3D 10.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d10_sharing-new-procedures-and-functions">7.2. New Procedures and Functions</h3>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetDeviceIDsFromD3D10KHR(cl_platform_id platform,
                                  cl_d3d10_device_source_khr d3d_device_source,
                                  void *d3d_object,
                                  cl_d3d10_device_set_khr d3d_device_set,
                                  cl_uint num_entries,
                                  cl_device_id *devices,
                                  cl_uint *num_devices)

cl_mem clCreateFromD3D10BufferKHR(cl_context context,
                                  cl_mem_flags flags,
                                  ID3D10Buffer *resource,
                                  cl_int *errcode_ret)

cl_mem clCreateFromD3D10Texture2DKHR(cl_context context,
                                     cl_mem_flags flags,
                                     ID3D10Texture2D *resource,
                                     UINT subresource,
                                     cl_int *errcode_ret)

cl_mem clCreateFromD3D10Texture3DKHR(cl_context context,
                                     cl_mem_flags flags,
                                     ID3D10Texture3D *resource,
                                     UINT subresource,
                                     cl_int *errcode_ret)

cl_int clEnqueueAcquireD3D10ObjectsKHR(cl_command_queue command_queue,
                                       cl_uint num_objects,
                                       const cl_mem *mem_objects,
                                       cl_uint num_events_in_wait_list,
                                       const cl_event *event_wait_list,
                                       cl_event *event)

cl_int clEnqueueReleaseD3D10ObjectsKHR(cl_command_queue command_queue,
                                       cl_uint num_objects,
                                       const cl_mem *mem_objects,
                                       cl_uint num_events_in_wait_list,
                                       const cl_event *event_wait_list,
                                       cl_event *event)</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d10_sharing-new-tokens">7.3. New Tokens</h3>
<div class="paragraph">
<p>Accepted as a Direct3D 10 device source in the <em>d3d_device_source</em> parameter
of <strong>clGetDeviceIDsFromD3D10KHR</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_D3D10_DEVICE_KHR                 0x4010
CL_D3D10_DXGI_ADAPTER_KHR           0x4011</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as a set of Direct3D 10 devices in the <em>d3d_device_set</em> parameter
of <strong>clGetDeviceIDsFromD3D10KHR</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_PREFERRED_DEVICES_FOR_D3D10_KHR  0x4012
CL_ALL_DEVICES_FOR_D3D10_KHR        0x4013</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as a property name in the <em>properties</em> parameter of
<strong>clCreateContext</strong> and <strong>clCreateContextFromType</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_CONTEXT_D3D10_DEVICE_KHR         0x4014</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as a property name in the <em>param_name</em> parameter of
<strong>clGetContextInfo</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR    0x402C</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as the property being queried in the <em>param_name</em> parameter of
<strong>clGetMemObjectInfo</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_MEM_D3D10_RESOURCE_KHR           0x4015</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as the property being queried in the <em>param_name</em> parameter of
<strong>clGetImageInfo</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_IMAGE_D3D10_SUBRESOURCE_KHR      0x4016</pre>
</div>
</div>
<div class="paragraph">
<p>Returned in the <em>param_value</em> parameter of <strong>clGetEventInfo</strong> when
<em>param_name</em> is CL_EVENT_COMMAND_TYPE:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR    0x4017
CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR    0x4018</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clCreateContext</strong> and <strong>clCreateContextFromType</strong> if the Direct3D
10 device specified for interoperability is not compatible with the devices
against which the context is to be created:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_INVALID_D3D10_DEVICE_KHR         -1002</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clCreateFromD3D10BufferKHR</strong> when <em>resource</em> is not a Direct3D
10 buffer object, and by <strong>clCreateFromD3D10Texture2DKHR</strong> and
<strong>clCreateFromD3D10Texture3DKHR</strong> when <em>resource</em> is not a Direct3D 10 texture
object:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_INVALID_D3D10_RESOURCE_KHR       -1003</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clEnqueueAcquireD3D10ObjectsKHR</strong> when any of <em>mem_objects</em> are
currently acquired by OpenCL:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR  -1004</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clEnqueueReleaseD3D10ObjectsKHR</strong> when any of <em>mem_objects</em> are
not currently acquired by OpenCL:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR  -1005</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d10_sharing-additions-to-chapter-4">7.4. Additions to Chapter 4 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>In <em>section 4.4</em>, replace the description of <em>properties</em> under
<strong>clCreateContext</strong> with:</p>
</div>
<div class="paragraph">
<p>&#8220;_properties_ 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 <em>properties</em>, then its default value
(listed in <em>table 4.5</em>) is used (it is said to be specified implicitly).
If <em>properties</em> is <code>NULL</code> or empty (points to a list whose first value is
zero), all attributes take on their default values.&#8221;</p>
</div>
<div class="paragraph">
<p>Add the following to <em>table 4.5</em>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_context_properties enum</strong></th>
<th class="tableblock halign-left valign-top"><strong>Property value</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_CONTEXT_D3D10_DEVICE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ID3D10Device *</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the ID3D10Device * to use for Direct3D 10 interoperability.
  The default value is <code>NULL</code>.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add to the list of errors for <strong>clCreateContext</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_D3D10_DEVICE_KHR if the value of the property
CL_CONTEXT_D3D10_DEVICE_KHR is non-<code>NULL</code> and does not specify a valid
Direct3D 10 device with which the <em>cl_device_ids</em> against which this
context is to be created may interoperate.</p>
</li>
<li>
<p>CL_INVALID_OPERATION if Direct3D 10 interoperability is specified by
setting CL_INVALID_D3D10_DEVICE_KHR to a non-<code>NULL</code> value, and
interoperability with another graphics API is also specified.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Add to the list of errors for <strong>clCreateContextFromType</strong> the same new errors
described above for <strong>clCreateContext</strong>.</p>
</div>
<div class="paragraph">
<p>Add the following row to <em>table 4.6</em>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_context_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Information returned in param_value</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_bool</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns CL_TRUE if Direct3D 10 resources created as shared by setting
  <em>MiscFlags</em> to include D3D10_RESOURCE_MISC_SHARED will perform faster when
  shared with OpenCL, compared with resources which have not set this flag.
  Otherwise returns CL_FALSE.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d10_sharing-additions-to-chapter-5">7.5. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>Add to the list of errors for <strong>clGetMemObjectInfo</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_D3D10_RESOURCE_KHR if <em>param_name</em> is
CL_MEM_D3D10_RESOURCE_KHR and <em>memobj</em> was not created by the function
<strong>clCreateFromD3D10BufferKHR</strong>, <strong>clCreateFromD3D10Texture2DKHR</strong>, or
<strong>clCreateFromD3D10Texture3DKHR</strong>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Extend <em>table 5.12</em> to include the following entry.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_mem_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Info. returned in <em>param_value</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_MEM_D3D10_RESOURCE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ID3D10Resource *</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <em>memobj</em> was created using <strong>clCreateFromD3D10BufferKHR</strong>,
  <strong>clCreateFromD3D10Texture2DKHR</strong>, or <strong>clCreateFromD3D10Texture3DKHR</strong>,
  returns the <em>resource</em> argument specified when <em>memobj</em> was created.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add to the list of errors for <strong>clGetImageInfo</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_D3D10_RESOURCE_KHR if <em>param_name</em> is
CL_MEM_D3D10_SUBRESOURCE_KHR and <em>image</em> was not created by the function
<strong>clCreateFromD3D10Texture2DKHR</strong>, or <strong>clCreateFromD3D10Texture3DKHR</strong>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Extend <em>table 5.9</em> to include the following entry.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_image_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Info. returned in <em>param_value</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_MEM_D3D10_SUBRESOURCE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <em>image</em> was created using <strong>clCreateFromD3D10Texture2DKHR</strong>, or
  <strong>clCreateFromD3D10Texture3DKHR</strong>, returns the <em>subresource</em> argument
  specified when <em>image</em> was created.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add to <em>table 5.22</em> in the <strong>Info returned in &lt;param_value&gt;</strong> column for
<em>cl_event_info</em> = CL_EVENT_COMMAND_TYPE:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR
CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d10_sharing-sharing-memory-objects-with-direct3d-10-resources">7.6. Sharing Memory Objects with Direct3D 10 Resources</h3>
<div class="paragraph">
<p>This section discusses OpenCL functions that allow applications to use
Direct3D 10 resources as OpenCL memory objects.
This allows efficient sharing of data between OpenCL and Direct3D 10.
The OpenCL API may be used to execute kernels that read and/or write memory
objects that are also Direct3D 10 resources.
An OpenCL image object may be created from a Direct3D 10 texture resource.
An OpenCL buffer object may be created from a Direct3D 10 buffer resource.
OpenCL memory objects may be created from Direct3D 10 objects if and only if
the OpenCL context has been created from a Direct3D 10 device.</p>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d10_sharing-querying-opencl-devices-corresponding-to-direct3d-10-devices">7.6.1. Querying OpenCL Devices Corresponding to Direct3D 10 Devices</h4>
<div class="paragraph">
<p>The OpenCL devices corresponding to a Direct3D 10 device may be queried.
The OpenCL devices corresponding to a DXGI adapter may also be queried.
The OpenCL devices corresponding to a Direct3D 10 device will be a subset of
the OpenCL devices corresponding to the DXGI adapter against which the
Direct3D 10 device was created.</p>
</div>
<div class="paragraph">
<p>The OpenCL devices corresponding to a Direct3D 10 device or a DXGI device
may be queried using the function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetDeviceIDsFromD3D10KHR(cl_platform_id platform,
                                  cl_d3d10_device_source_khr d3d_device_source,
                                  void *d3d_object,
                                  cl_d3d10_device_set_khr d3d_device_set,
                                  cl_uint num_entries,
                                  cl_device_id *devices,
                                  cl_uint *num_devices)</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>platform</em> refers to the platform ID returned by <strong>clGetPlatformIDs</strong>.</p>
</div>
<div class="paragraph">
<p><em>d3d_device_source</em> specifies the type of <em>d3d_object</em>, and must be one of
the values shown in the table below.</p>
</div>
<div class="paragraph">
<p><em>d3d_object</em> specifies the object whose corresponding OpenCL devices are
being queried.
The type of <em>d3d_object</em> must be as specified in the table below.</p>
</div>
<div class="paragraph">
<p><em>d3d_device_set</em> specifies the set of devices to return, and must be one of
the values shown in the table below.</p>
</div>
<div class="paragraph">
<p><em>num_entries</em> is the number of cl_device_id entries that can be added to
<em>devices</em>.
If <em>devices</em> is not <code>NULL</code> then <em>num_entries</em> must be greater than zero.</p>
</div>
<div class="paragraph">
<p><em>devices</em> returns a list of OpenCL devices found.
The cl_device_id values returned in <em>devices</em> can be used to identify a
specific OpenCL device.
If <em>devices</em> is <code>NULL</code>, this argument is ignored.
The number of OpenCL devices returned is the minimum of the value specified
by <em>num_entries</em> and the number of OpenCL devices corresponding to
<em>d3d_object</em>.</p>
</div>
<div class="paragraph">
<p><em>num_devices</em> returns the number of OpenCL devices available that correspond
to <em>d3d_object</em>.
If <em>num_devices</em> is <code>NULL</code>, this argument is ignored.</p>
</div>
<div class="paragraph">
<p><strong>clGetDeviceIDsFromD3D10KHR</strong> returns CL_SUCCESS if the function is executed
successfully.
Otherwise it may return</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_PLATFORM if <em>platform</em> is not a valid platform.</p>
</li>
<li>
<p>CL_INVALID_VALUE if <em>d3d_device_source</em> is not a valid value,
<em>d3d_device_set</em> is not a valid value, <em>num_entries</em> is equal to zero
and <em>devices</em> is not <code>NULL</code>, or if both <em>num_devices</em> and <em>devices</em> are
<code>NULL</code>.</p>
</li>
<li>
<p>CL_DEVICE_NOT_FOUND if no OpenCL devices that correspond to <em>d3d_object</em>
were found.</p>
</li>
</ul>
</div>
<table id="cl_khr_d3d10_sharing-clGetDeviceIDsFromD3D10KHR-object-type" class="tableblock frame-all grid-all spread">
<caption class="title">Table 19. <em>Direct3D 10 object types that may be used by</em> <strong>clGetDeviceIDsFromD3D10KHR</strong></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_d3d_device_source_khr</strong></th>
<th class="tableblock halign-left valign-top"><strong>Type of <em>d3d_object</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_D3D10_DEVICE_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ID3D10Device *</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_D3D10_DXGI_ADAPTER_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IDXGIAdapter *</p></td>
</tr>
</tbody>
</table>
<table id="cl_khr_d3d10_sharing-clGetDeviceIDsFromD3D10KHR-devices" class="tableblock frame-all grid-all spread">
<caption class="title">Table 20. <em>Sets of devices queriable using</em> <strong>clGetDeviceIDsFromD3D10KHR</strong></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_d3d_device_set_khr</strong></th>
<th class="tableblock halign-left valign-top"><strong>Devices returned in <em>devices</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_PREFERRED_DEVICES_FOR_D3D10_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The preferred OpenCL devices associated with the specified Direct3D
  object.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_ALL_DEVICES_FOR_D3D10_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All OpenCL devices which may interoperate with the specified Direct3D
  object.
  Performance of sharing data on these devices may be considerably less than
  on the preferred devices.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d10_sharing-lifetime-of-shared-objects">7.6.2. Lifetime of Shared Objects</h4>
<div class="paragraph">
<p>An OpenCL memory object created from a Direct3D 10 resource remains valid as
long as the corresponding Direct3D 10 resource has not been deleted.
If the Direct3D 10 resource is deleted through the Direct3D 10 API,
subsequent use of the OpenCL memory object will result in undefined
behavior, including but not limited to possible OpenCL errors, data
corruption, and program termination.</p>
</div>
<div class="paragraph">
<p>The successful creation of a cl_context against a Direct3D 10 device
specified via the context create parameter CL_CONTEXT_D3D10_DEVICE_KHR will
increment the internal Direct3D reference count on the specified Direct3D 10
device.
The internal Direct3D reference count on that Direct3D 10 device will be
decremented when the OpenCL reference count on the returned OpenCL context
drops to zero.</p>
</div>
<div class="paragraph">
<p>The OpenCL context and corresponding command-queues are dependent on the
existence of the Direct3D 10 device from which the OpenCL context was
created.
If the Direct3D 10 device is deleted through the Direct3D 10 API, subsequent
use of the OpenCL context will result in undefined behavior, including but
not limited to possible OpenCL errors, data corruption, and program
termination.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d10_sharing-sharing-direct3d-10-buffer-resources-as-opencl-buffer-objects">7.6.3. Sharing Direct3D 10 Buffer Resources as OpenCL Buffer Objects</h4>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromD3D10BufferKHR(cl_context context,
                                  cl_mem_flags flags,
                                  ID3D10Buffer *resource,
                                  cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an OpenCL buffer object from a Direct3D 10 buffer.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from a Direct3D 10 device.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information.
Refer to <em>table 5.3</em> for a description of <em>flags</em>.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> can be used.</p>
</div>
<div class="paragraph">
<p><em>resource</em> is a pointer to the Direct3D 10 buffer to share.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromD3D10BufferKHR</strong> returns a valid non-zero OpenCL buffer object
and <em>errcode_ret</em> is set to CL_SUCCESS if the buffer object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid.</p>
</li>
<li>
<p>CL_INVALID_D3D10_RESOURCE_KHR if <em>resource</em> is not a Direct3D 10 buffer
resource, if <em>resource</em> was created with the D3D10_USAGE flag
D3D10_USAGE_IMMUTABLE, if a cl_mem from <em>resource</em> has already been
created using <strong>clCreateFromD3D10BufferKHR</strong>, or if <em>context</em> was not
created against the same Direct3D 10 device from which <em>resource</em> was
created.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The size of the returned OpenCL buffer object is the same as the size of
<em>resource</em>.
This call will increment the internal Direct3D reference count on
<em>resource</em>.
The internal Direct3D reference count on <em>resource</em> will be decremented when
the OpenCL reference count on the returned OpenCL memory object drops to
zero.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d10_sharing-sharing-direct3d-10-texture-and-resources-as-opencl-image-objects">7.6.4. Sharing Direct3D 10 Texture and Resources as OpenCL Image Objects</h4>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromD3D10Texture2DKHR(cl_context context,
                                     cl_mem_flags flags,
                                     ID3D10Texture2D *resource,
                                     UINT subresource,
                                     cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an OpenCL 2D image object from a subresource of a Direct3D 10 2D
texture.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from a Direct3D 10 device.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information.
Refer to <em>table 5.3</em> for a description of <em>flags</em>.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> can be used.</p>
</div>
<div class="paragraph">
<p><em>resource</em> is a pointer to the Direct3D 10 2D texture to share.</p>
</div>
<div class="paragraph">
<p><em>subresource</em> is the subresource of <em>resource</em> to share.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromD3D10Texture2DKHR</strong> returns a valid non-zero OpenCL image object
and <em>errcode_ret</em> is set to CL_SUCCESS if the image object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid or if
<em>subresource</em> is not a valid subresource index for <em>resource</em>.</p>
</li>
<li>
<p>CL_INVALID_D3D10_RESOURCE_KHR if <em>resource</em> is not a Direct3D 10 texture
resource, if <em>resource</em> was created with the D3D10_USAGE flag
D3D10_USAGE_IMMUTABLE, if <em>resource</em> is a multisampled texture, if a
cl_mem from subresource <em>subresource</em> of <em>resource</em> has already been
created using <strong>clCreateFromD3D10Texture2DKHR</strong>, or if <em>context</em> was not
created against the same Direct3D 10 device from which <em>resource</em> was
created.</p>
</li>
<li>
<p>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR if the Direct3D 10 texture format of
<em>resource</em> is not listed in the table
<a href="#cl_khr_d3d10_sharing-mapping-of-image-formats"><em>Direct3D 10 formats and
corresponding OpenCL image formats</em></a> or if the Direct3D 10 texture
format of <em>resource</em> does not map to a supported OpenCL image format.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The width and height of the returned OpenCL 2D image object are determined
by the width and height of subresource <em>subresource</em> of <em>resource</em>.
The channel type and order of the returned OpenCL 2D image object is
determined by the format of <em>resource</em> by the table
<a href="#cl_khr_d3d10_sharing-mapping-of-image-formats"><em>Direct3D 10 formats and
corresponding OpenCL image formats</em></a>.</p>
</div>
<div class="paragraph">
<p>This call will increment the internal Direct3D reference count on
<em>resource</em>.
The internal Direct3D reference count on <em>resource</em> will be decremented when
the OpenCL reference count on the returned OpenCL memory object drops to
zero.</p>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromD3D10Texture3DKHR(cl_context context,
                                     cl_mem_flags flags,
                                     ID3D10Texture3D *resource,
                                     UINT subresource,
                                     cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an OpenCL 3D image object from a subresource of a Direct3D 10 3D
texture.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from a Direct3D 10 device.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information.
Refer to table 5.3 for a description of <em>flags</em>.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> can be used.</p>
</div>
<div class="paragraph">
<p><em>resource</em> is a pointer to the Direct3D 10 3D texture to share.</p>
</div>
<div class="paragraph">
<p><em>subresource</em> is the subresource of <em>resource</em> to share.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromD3D10Texture3DKHR</strong> returns a valid non-zero OpenCL image object
and <em>errcode_ret</em> is set to CL_SUCCESS if the image object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid or if
<em>subresource</em> is not a valid subresource index for <em>resource</em>.</p>
</li>
<li>
<p>CL_INVALID_D3D10_RESOURCE_KHR if <em>resource</em> is not a Direct3D 10 texture
resource, if <em>resource</em> was created with the D3D10_USAGE flag
D3D10_USAGE_IMMUTABLE, if <em>resource</em> is a multisampled texture, if a
cl_mem from subresource <em>subresource</em> of <em>resource</em> has already been
created using <strong>clCreateFromD3D10Texture3DKHR</strong>, or if <em>context</em> was not
created against the same Direct3D 10 device from which <em>resource</em> was
created.</p>
</li>
<li>
<p>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR if the Direct3D 10 texture format of
<em>resource</em> is not listed in the table
<a href="#cl_khr_d3d10_sharing-mapping-of-image-formats"><em>Direct3D 10 formats and
corresponding OpenCL image formats</em></a> or if the Direct3D 10 texture
format of <em>resource</em> does not map to a supported OpenCL image format.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The width, height and depth of the returned OpenCL 3D image object are
determined by the width, height and depth of subresource <em>subresource</em> of
<em>resource</em>.
The channel type and order of the returned OpenCL 3D image object is
determined by the format of <em>resource</em> by the table
<a href="#cl_khr_d3d10_sharing-mapping-of-image-formats"><em>Direct3D 10 formats and
corresponding OpenCL image formats</em></a>.</p>
</div>
<div class="paragraph">
<p>This call will increment the internal Direct3D reference count on
<em>resource</em>.
The internal Direct3D reference count on <em>resource</em> will be decremented when
the OpenCL reference count on the returned OpenCL memory object drops to
zero.</p>
</div>
<table id="cl_khr_d3d10_sharing-mapping-of-image-formats" class="tableblock frame-all grid-all spread">
<caption class="title">Table 21. <em>Direct3D 10 formats and corresponding OpenCL image formats</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>DXGI format</strong></th>
<th class="tableblock halign-left valign-top"><strong>CL image format</strong>

<strong>(channel order, channel data type)</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32B32A32_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32B32A32_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNSIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32B32A32_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNSIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_B8G8R8A8_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_BGRA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8B8A8_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8B8A8_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNSIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8B8A8_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8B8A8_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNSIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNSIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNSIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNSIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNSIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNSIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SIGNED_INT8</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d10_sharing-querying-direct3d-properties-of-memory-objects-created-from-direct3d-10-resources">7.6.5. Querying Direct3D properties of memory objects created from Direct3D 10 resources</h4>
<div class="paragraph">
<p>Properties of Direct3D 10 objects may be queried using <strong>clGetMemObjectInfo</strong>
and <strong>clGetImageInfo</strong> with <em>param_name</em> CL_MEM_D3D10_RESOURCE_KHR and</p>
</div>
<div class="paragraph">
<p>CL_IMAGE_D3D10_SUBRESOURCE_KHR respectively as described in <em>sections 5.4.3</em>
and <em>5.3.6</em>.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d10_sharing-sharing-memory-objects-created-from-direct3d-10-resources-between-direct3d-10-and-opencl-contexts">7.6.6. Sharing memory objects created from Direct3D 10 resources between Direct3D 10 and OpenCL contexts</h4>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clEnqueueAcquireD3D10ObjectsKHR(cl_command_queue command_queue,
                                       cl_uint num_objects,
                                       const cl_mem *mem_objects,
                                       cl_uint num_events_in_wait_list,
                                       const cl_event *event_wait_list,
                                       cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to acquire OpenCL memory objects that have been created from
Direct3D 10 resources.
The Direct3D 10 objects are acquired by the OpenCL context associated with
<em>command_queue</em> and can therefore be used by all command-queues associated
with the OpenCL context.</p>
</div>
<div class="paragraph">
<p>OpenCL memory objects created from Direct3D 10 resources must be acquired
before they can be used by any OpenCL commands queued to a command-queue.
If an OpenCL memory object created from a Direct3D 10 resource is used while
it is not currently acquired by OpenCL, the call attempting to use that
OpenCL memory object will return CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR.</p>
</div>
<div class="paragraph">
<p>If CL_CONTEXT_INTEROP_USER_SYNC is not specified as CL_TRUE during context
creation, <strong>clEnqueueAcquireD3D10ObjectsKHR</strong> provides the synchronization
guarantee that any Direct3D 10 calls involving the interop device(s) used in
the OpenCL context made before <strong>clEnqueueAcquireD3D10ObjectsKHR</strong> is called
will complete executing before <em>event</em> reports completion and before the
execution of any subsequent OpenCL work issued in <em>command_queue</em> begins.
If the context was created with properties specifying
CL_CONTEXT_INTEROP_USER_SYNC as CL_TRUE, the user is responsible for
guaranteeing that any Direct3D 10 calls involving the interop device(s) used
in the OpenCL context made before <strong>clEnqueueAcquireD3D10ObjectsKHR</strong> is
called have completed before calling <strong>clEnqueueAcquireD3D10ObjectsKHR.</strong></p>
</div>
<div class="paragraph">
<p><em>command_queue</em> is a valid command-queue.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be acquired in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of OpenCL memory objects that were
created from Direct3D 10 resources.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this particular command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in <em>event_wait_list</em> act as synchronization points.</p>
</div>
<div class="paragraph">
<p><em>event</em> returns an event object that identifies this particular command and
can be used to query or queue a wait for this particular command to
complete.
<em>event</em> can be <code>NULL</code> in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.
If the <em>event_wait_list</em> and the <em>event</em> arguments are not <code>NULL</code>, the
<em>event</em> argument should not refer to an element of the <em>event_wait_list</em>
array.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueAcquireD3D10ObjectsKHR</strong> returns CL_SUCCESS if the function is
executed successfully.
If <em>num_objects</em> is 0 and <em>mem_objects</em> is <code>NULL</code> then the function does
nothing and returns CL_SUCCESS.
Otherwise it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if <em>num_objects</em> &gt; 0 and <em>mem_objects</em> is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects or if memory objects in <em>mem_objects</em> have not
been created from Direct3D 10 resources.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_CONTEXT if context associated with <em>command_queue</em> was not
created from an Direct3D 10 context.</p>
</li>
<li>
<p>CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR if memory objects in
<em>mem_objects</em> have previously been acquired using
<strong>clEnqueueAcquireD3D10ObjectsKHR</strong> but have not been released using
<strong>clEnqueueReleaseD3D10ObjectsKHR</strong>.</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em> is 0, or if event objects in <em>event_wait_list</em>
are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clEnqueueReleaseD3D10ObjectsKHR(cl_command_queue command_queue,
                                       cl_uint num_objects,
                                       const cl_mem *mem_objects,
                                       cl_uint num_events_in_wait_list,
                                       const cl_event *event_wait_list,
                                       cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to release OpenCL memory objects that have been created from
Direct3D 10 resources.
The Direct3D 10 objects are released by the OpenCL context associated with
<em>command_queue</em>.</p>
</div>
<div class="paragraph">
<p>OpenCL memory objects created from Direct3D 10 resources which have been
acquired by OpenCL must be released by OpenCL before they may be accessed by
Direct3D 10.
Accessing a Direct3D 10 resource while its corresponding OpenCL memory
object is acquired is in error and will result in undefined behavior,
including but not limited to possible OpenCL errors, data corruption, and
program termination.</p>
</div>
<div class="paragraph">
<p>If CL_CONTEXT_INTEROP_USER_SYNC is not specified as CL_TRUE during context
creation, <strong>clEnqueueReleaseD3D10ObjectsKHR</strong> provides the synchronization
guarantee that any calls to Direct3D 10 calls involving the interop
device(s) used in the OpenCL context made after the call to
<strong>clEnqueueReleaseD3D10ObjectsKHR</strong> will not start executing until after all
events in <em>event_wait_list</em> are complete and all work already submitted to
<em>command_queue</em> completes execution.
If the context was created with properties specifying
CL_CONTEXT_INTEROP_USER_SYNC as CL_TRUE, the user is responsible for
guaranteeing that any Direct3D 10 calls involving the interop device(s) used
in the OpenCL context made after <strong>clEnqueueReleaseD3D10ObjectsKHR</strong> will not
start executing until after event returned by
<strong>clEnqueueReleaseD3D10ObjectsKHR</strong> reports completion.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be released in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of OpenCL memory objects that were
created from Direct3D 10 resources.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this particular command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in <em>event</em> returns an event object that identifies this
particular command and can be used to query or queue a wait for this
particular command to complete.
<em>event</em> can be <code>NULL</code> in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.
If the <em>event_wait_list</em> and the <em>event</em> arguments are not <code>NULL</code>, the
<em>event</em> argument should not refer to an element of the <em>event_wait_list</em>
array.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueReleaseD3D10ObjectsKHR</strong> returns CL_SUCCESS if the function is
executed successfully.
If <em>num_objects</em> is 0 and <em>mem_objects</em> is <code>NULL</code> the function does nothing
and returns CL_SUCCESS.
Otherwise it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if <em>num_objects</em> &gt; 0 and <em>mem_objects</em> is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects or if memory objects in <em>mem_objects</em> have not
been created from Direct3D 10 resources.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_CONTEXT if context associated with <em>command_queue</em> was not
created from a Direct3D 10 device.</p>
</li>
<li>
<p>CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR if memory objects in <em>mem_objects</em>
have not previously been acquired using
<strong>clEnqueueAcquireD3D10ObjectsKHR</strong>, or have been released using
<strong>clEnqueueReleaseD3D10ObjectsKHR</strong> since the last time that they were
acquired.</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em>&gt; is 0, or if event objects in
<em>event_wait_list</em> are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d10_sharing-issues">7.7. Issues</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Should this extension be KHR or EXT?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>PROPOSED: KHR.
If this extension is to be approved by Khronos then it should be KHR,
otherwise EXT.
Not all platforms can support this extension, but that is also true of
OpenGL interop.</p>
</div>
<div class="paragraph">
<p>RESOLVED: KHR.</p>
</div>
</div>
</div>
</li>
<li>
<p>Requiring SharedHandle on ID3D10Resource</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Requiring this can largely simplify things at the DDI level and make some
implementations faster.
However, the DirectX spec only defines the shared handle for a subset of the
resources we would like to support:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>D3D10_RESOURCE_MISC_SHARED - Enables the sharing of resource data between
two or more Direct3D devices.
The only resources that can be shared are 2D non-mipmapped textures.</pre>
</div>
</div>
<div class="paragraph">
<p>PROPOSED A: Add wording to the spec about some implementations needing the
resource setup as shared:</p>
</div>
<div class="paragraph">
<p>&#8220;Some implementations may require the resource to be shared on the D3D10
side of the API&#8221;</p>
</div>
<div class="paragraph">
<p>If we do that, do we need another enum to describe this failure case?</p>
</div>
<div class="paragraph">
<p>PROPOSED B: Require that all implementations support both shared and
non-shared resources.
The restrictions prohibiting multisample textures and the flag
D3D10_USAGE_IMMUTABLE guarantee software access to all shareable resources.</p>
</div>
<div class="paragraph">
<p>RESOLVED: Require that implementations support both
D3D10_RESOURCE_MISC_SHARED being set and not set.
Add the query for CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR to determine
on a per-context basis which method will be faster.</p>
</div>
</div>
</div>
</li>
<li>
<p>Texture1D support</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>There is not a matching CL type, so do we want to support this and map to
buffer or Texture2D? If so the command might correspond to the 2D / 3D
versions:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromD3D10Texture1D(cl_context context,
                                  cl_mem_flags flags,
                                  ID3D10Texture2D *resource,
                                  UINT subresource,
                                  cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>RESOLVED: We will not add support for ID3D10Texture1D objects unless a
corresponding OpenCL 1D Image type is created.</p>
</div>
</div>
</div>
</li>
<li>
<p>CL/D3D10 queries</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>The GL interop has clGetGLObjectInfo and clGetGLTextureInfo.
It is unclear if these are needed on the D3D10 interop side since the D3D10
spec makes these queries trivial on the D3D10 object itself.
Also, not all of the sematics of the GL call map across.</p>
</div>
<div class="paragraph">
<p>PROPOSED: Add the <strong>clGetMemObjectInfo</strong> and <strong>clGetImageInfo</strong> parameter names
CL_MEM_D3D10_RESOURCE_KHR and CL_IMAGE_D3D10_SUBRESOURCE_KHR to query the
D3D10 resource from which a cl_mem was created.
From this data, any D3D10 side information may be queried using the D3D10
API.</p>
</div>
<div class="paragraph">
<p>RESOLVED: We will use <strong>clGetMemObjectInfo</strong> and <strong>clGetImageInfo</strong> to access
this information.</p>
</div>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_d3d11_sharing">8. Creating OpenCL Memory Objects from Direct3D 11 Buffers and Textures</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="cl_khr_d3d11_sharing-overview">8.1. Overview</h3>
<div class="paragraph">
<p>This section describes the <strong>cl_khr_d3d11_sharing</strong> extension.
The goal of this extension is to provide interoperability between OpenCL and
Direct3D 11.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d11_sharing-new-procedures-and-functions">8.2. New Procedures and Functions</h3>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetDeviceIDsFromD3D11KHR(cl_platform_id platform,
                                  cl_d3d11_device_source_khr d3d_device_source,
                                  void *d3d_object,
                                  cl_d3d11_device_set_khr d3d_device_set,
                                  cl_uint num_entries,
                                  cl_device_id *devices,
                                  cl_uint *num_devices)

cl_mem clCreateFromD3D11BufferKHR(cl_context context,
                                  cl_mem_flags flags,
                                  ID3D11Buffer *resource,
                                  cl_int *errcode_ret)

cl_mem clCreateFromD3D11Texture2DKHR(cl_context context,
                                     cl_mem_flags flags,
                                     ID3D11Texture2D *resource,
                                     UINT subresource,
                                     cl_int *errcode_ret)

cl_mem clCreateFromD3D11Texture3DKHR(cl_context context,
                                     cl_mem_flags flags,
                                     ID3D11Texture3D *resource,
                                     UINT subresource,
                                     cl_int *errcode_ret)

cl_int clEnqueueAcquireD3D11ObjectsKHR(cl_command_queue command_queue,
                                       cl_uint num_objects,
                                       const cl_mem *mem_objects,
                                       cl_uint num_events_in_wait_list,
                                       const cl_event *event_wait_list,
                                       cl_event *event)

cl_int clEnqueueReleaseD3D11ObjectsKHR(cl_command_queue command_queue,
                                       cl_uint num_objects,
                                       const cl_mem *mem_objects,
                                       cl_uint num_events_in_wait_list,
                                       const cl_event *event_wait_list,
                                       cl_event *event)</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d11_sharing-new-tokens">8.3. New Tokens</h3>
<div class="paragraph">
<p>Accepted as a Direct3D 11 device source in the <em>d3d_device_source</em> parameter
of <strong>clGetDeviceIDsFromD3D11KHR</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_D3D11_DEVICE_KHR                 0x4019
CL_D3D11_DXGI_ADAPTER_KHR           0x401A</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as a set of Direct3D 11 devices in the _d3d_device_set_parameter of
<strong>clGetDeviceIDsFromD3D11KHR</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_PREFERRED_DEVICES_FOR_D3D11_KHR  0x401B
CL_ALL_DEVICES_FOR_D3D11_KHR        0x401C</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as a property name in the <em>properties</em> parameter of
<strong>clCreateContext</strong> and <strong>clCreateContextFromType</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_CONTEXT_D3D11_DEVICE_KHR         0x401D</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as a property name in the <em>param_name</em> parameter of
<strong>clGetContextInfo</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR    0x402D</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as the property being queried in the <em>param_name</em> parameter of
<strong>clGetMemObjectInfo</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_MEM_D3D11_RESOURCE_KHR           0x401E</pre>
</div>
</div>
<div class="paragraph">
<p>Accepted as the property being queried in the <em>param_name</em> parameter of
<strong>clGetImageInfo</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_IMAGE_D3D11_SUBRESOURCE_KHR      0x401F</pre>
</div>
</div>
<div class="paragraph">
<p>Returned in the <em>param_value</em> parameter of <strong>clGetEventInfo</strong> when
<em>param_name</em> is CL_EVENT_COMMAND_TYPE:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR    0x4020
CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR    0x4021</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clCreateContext</strong> and <strong>clCreateContextFromType</strong> if the Direct3D
11 device specified for interoperability is not compatible with the devices
against which the context is to be created:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_INVALID_D3D11_DEVICE_KHR         -1006</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clCreateFromD3D11BufferKHR</strong> when <em>resource</em> is not a Direct3D
11 buffer object, and by <strong>clCreateFromD3D11Texture2DKHR</strong> and
<strong>clCreateFromD3D11Texture3DKHR</strong> when <em>resource</em> is not a Direct3D 11 texture
object.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_INVALID_D3D11_RESOURCE_KHR       -1007</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clEnqueueAcquireD3D11ObjectsKHR</strong> when any of <em>mem_objects</em> are
currently acquired by OpenCL</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR  -1008</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clEnqueueReleaseD3D11ObjectsKHR</strong> when any of <em>mem_objects</em> are
not currently acquired by OpenCL</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR  -1009</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d11_sharing-additions-to-chapter-4">8.4. Additions to Chapter 4 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>In <em>section 4.4</em>, replace the description of <em>properties</em> under
<strong>clCreateContext</strong> with:</p>
</div>
<div class="paragraph">
<p>&#8220;_properties_ 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 <em>properties</em>, then its default value
(listed in <em>table 4.5</em>) is used (it is said to be specified implicitly).
If <em>properties</em> is <code>NULL</code> or empty (points to a list whose first value is
zero), all attributes take on their default values.&#8221;</p>
</div>
<div class="paragraph">
<p>Add the following to <em>table 4.5</em>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_context_properties enum</strong></th>
<th class="tableblock halign-left valign-top"><strong>Property value</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_CONTEXT_D3D11_DEVICE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ID3D11Device *</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies the ID3D11Device * to use for Direct3D 11 interoperability.</p>
<p class="tableblock">  The default value is <code>NULL</code>.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add to the list of errors for <strong>clCreateContext</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_D3D11_DEVICE_KHR if the value of the property
CL_CONTEXT_D3D11_DEVICE_KHR is non-<code>NULL</code> and does not specify a valid
Direct3D 11 device with which the <em>cl_device_ids</em> against which this
context is to be created may interoperate.</p>
</li>
<li>
<p>CL_INVALID_OPERATION if Direct3D 11 interoperability is specified by
setting CL_INVALID_D3D11_DEVICE_KHR to a non-<code>NULL</code> value, and
interoperability with another graphics API is also specified.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Add to the list of errors for <strong>clCreateContextFromType</strong> the same new errors
described above for <strong>clCreateContext</strong>.</p>
</div>
<div class="paragraph">
<p>Add the following row to <em>table 4.6</em>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_context_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Information returned in param_value</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_bool</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns CL_TRUE if Direct3D 11 resources created as shared by setting
  <em>MiscFlags</em> to include D3D11_RESOURCE_MISC_SHARED will perform faster when
  shared with OpenCL, compared with resources which have not set this flag.
  Otherwise returns CL_FALSE.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d11_sharing-additions-to-chapter-5">8.5. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>Add to the list of errors for <strong>clGetMemObjectInfo</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_D3D11_RESOURCE_KHR if <em>param_name</em> is
CL_MEM_D3D11_RESOURCE_KHR and <em>memobj</em> was not created by the function
<strong>clCreateFromD3D11BufferKHR</strong>, <strong>clCreateFromD3D11Texture2DKHR</strong>, or
<strong>clCreateFromD3D11Texture3DKHR</strong>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Extend <em>table 5.12</em> to include the following entry.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_mem_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Info. returned in <em>param_value</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_MEM_D3D11_RESOURCE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ID3D11Resource *</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <em>memobj</em> was created using <strong>clCreateFromD3D11BufferKHR</strong>,
  <strong>clCreateFromD3D11Texture2DKHR</strong>, or <strong>clCreateFromD3D11Texture3DKHR</strong>,
  returns the <em>resource</em> argument specified when <em>memobj</em> was created.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add to the list of errors for <strong>clGetImageInfo</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_D3D11_RESOURCE_KHR if <em>param_name</em> is
CL_MEM_D3D11_SUBRESOURCE_KHR and <em>image</em> was not created by the function
<strong>clCreateFromD3D11Texture2DKHR</strong>, or <strong>clCreateFromD3D11Texture3DKHR</strong>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Extend <em>table 5.9</em> to include the following entry.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_image_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Info. returned in <em>param_value</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_MEM_D3D11_SUBRESOURCE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If <em>image</em> was created using <strong>clCreateFromD3D11Texture2DKHR</strong>, or
  <strong>clCreateFromD3D11Texture3DKHR</strong>, returns the <em>subresource</em> argument
  specified when <em>image</em> was created.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add to <em>table 5.22</em> in the <strong>Info returned in param_value</strong> column for
<em>cl_event_info</em> = CL_EVENT_COMMAND_TYPE:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR
CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_d3d11_sharing-sharing-memory-objects-with-direct3d-11-resources">8.6. Sharing Memory Objects with Direct3D 11 Resources</h3>
<div class="paragraph">
<p>This section discusses OpenCL functions that allow applications to use
Direct3D 11 resources as OpenCL memory objects.
This allows efficient sharing of data between OpenCL and Direct3D 11.
The OpenCL API may be used to execute kernels that read and/or write memory
objects that are also Direct3D 11 resources.
An OpenCL image object may be created from a Direct3D 11 texture resource.
An OpenCL buffer object may be created from a Direct3D 11 buffer resource.
OpenCL memory objects may be created from Direct3D 11 objects if and only if
the OpenCL context has been created from a Direct3D 11 device.</p>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d11_sharing-querying-opencl-devices-corresponding-to-direct3d-11-devices">8.6.1. Querying OpenCL Devices Corresponding to Direct3D 11 Devices</h4>
<div class="paragraph">
<p>The OpenCL devices corresponding to a Direct3D 11 device may be queried.
The OpenCL devices corresponding to a DXGI adapter may also be queried.
The OpenCL devices corresponding to a Direct3D 11 device will be a subset of
the OpenCL devices corresponding to the DXGI adapter against which the
Direct3D 11 device was created.</p>
</div>
<div class="paragraph">
<p>The OpenCL devices corresponding to a Direct3D 11 device or a DXGI device
may be queried using the function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clGetDeviceIDsFromD3D11KHR(cl_platform_id platform,
                                  cl_d3d11_device_source_khr d3d_device_source,
                                  void *d3d_object,
                                  cl_d3d11_device_set_khr d3d_device_set,
                                  cl_uint num_entries,
                                  cl_device_id *devices,
                                  cl_uint *num_devices)</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>platform</em> refers to the platform ID returned by <strong>clGetPlatformIDs</strong>.</p>
</div>
<div class="paragraph">
<p><em>d3d_device_source</em> specifies the type of <em>d3d_object</em>, and must be one of
the values shown in the table below.</p>
</div>
<div class="paragraph">
<p><em>d3d_object</em> specifies the object whose corresponding OpenCL devices are
being queried.
The type of <em>d3d_object</em> must be as specified in the table below.</p>
</div>
<div class="paragraph">
<p><em>d3d_device_set</em> specifies the set of devices to return, and must be one of
the values shown in the table below.</p>
</div>
<div class="paragraph">
<p><em>num_entries</em> is the number of cl_device_id entries that can be added to
<em>devices</em>.
If <em>devices</em> is not <code>NULL</code> then <em>num_entries</em> must be greater than zero.</p>
</div>
<div class="paragraph">
<p><em>devices</em> returns a list of OpenCL devices found.
The cl_device_id values returned in <em>devices</em> can be used to identify a
specific OpenCL device.
If <em>devices</em> is <code>NULL</code>, this argument is ignored.
The number of OpenCL devices returned is the minimum of the value specified
by <em>num_entries</em> and the number of OpenCL devices corresponding to
<em>d3d_object</em>.</p>
</div>
<div class="paragraph">
<p><em>num_devices</em> returns the number of OpenCL devices available that correspond
to <em>d3d_object</em>.
If <em>num_devices</em> is <code>NULL</code>, this argument is ignored.</p>
</div>
<div class="paragraph">
<p><strong>clGetDeviceIDsFromD3D10KHR</strong> returns CL_SUCCESS if the function is executed
successfully.
Otherwise it may return</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_PLATFORM if <em>platform</em> is not a valid platform.</p>
</li>
<li>
<p>CL_INVALID_VALUE if <em>d3d_device_source</em> is not a valid value,
<em>d3d_device_set</em> is not a valid value, <em>num_entries</em> is equal to zero
and <em>devices</em> is not <code>NULL</code>, or if both <em>num_devices</em> and <em>devices</em> are
<code>NULL</code>.</p>
</li>
<li>
<p>CL_DEVICE_NOT_FOUND if no OpenCL devices that correspond to <em>d3d_object</em>
were found.</p>
</li>
</ul>
</div>
<table id="cl_khr_d3d11_sharing-clGetDeviceIDsFromD3D11KHR-object-type" class="tableblock frame-all grid-all spread">
<caption class="title">Table 22. <em>Direct3D 11 object types that may be used by</em> <strong>clGetDeviceIDsFromD3D11KHR</strong></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_d3d_device_source_khr</strong></th>
<th class="tableblock halign-left valign-top"><strong>Type of <em>d3d_object</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_D3D11_DEVICE_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ID3D11Device *</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_D3D11_DXGI_ADAPTER_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">IDXGIAdapter *</p></td>
</tr>
</tbody>
</table>
<table id="cl_khr_d3d11_sharing-clGetDeviceIDsFromD3D10KHR-devices" class="tableblock frame-all grid-all spread">
<caption class="title">Table 23. <em>Sets of devices queriable using</em> <strong>clGetDeviceIDsFromD3D11KHR</strong></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_d3d_device_set_khr</strong></th>
<th class="tableblock halign-left valign-top"><strong>Devices returned in <em>devices</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_PREFERRED_DEVICES_FOR_D3D11_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The preferred OpenCL devices associated with the specified Direct3D
  object.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_ALL_DEVICES_FOR_D3D11_KHR</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All OpenCL devices which may interoperate with the specified Direct3D
  object.
  Performance of sharing data on these devices may be considerably less than
  on the preferred devices.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d11_sharing-lifetime-of-shared-objects">8.6.2. Lifetime of Shared Objects</h4>
<div class="paragraph">
<p>An OpenCL memory object created from a Direct3D 11 resource remains valid as
long as the corresponding Direct3D 11 resource has not been deleted.
If the Direct3D 11 resource is deleted through the Direct3D 11 API,
subsequent use of the OpenCL memory object will result in undefined
behavior, including but not limited to possible OpenCL errors, data
corruption, and program termination.</p>
</div>
<div class="paragraph">
<p>The successful creation of a cl_context against a Direct3D 11 device
specified via the context create parameter CL_CONTEXT_D3D11_DEVICE_KHR will
increment the internal Direct3D reference count on the specified Direct3D 11
device.
The internal Direct3D reference count on that Direct3D 11 device will be
decremented when the OpenCL reference count on the returned OpenCL context
drops to zero.</p>
</div>
<div class="paragraph">
<p>The OpenCL context and corresponding command-queues are dependent on the
existence of the Direct3D 11 device from which the OpenCL context was
created.
If the Direct3D 11 device is deleted through the Direct3D 11 API, subsequent
use of the OpenCL context will result in undefined behavior, including but
not limited to possible OpenCL errors, data corruption, and program
termination.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d11_sharing-sharing-direct3d-11-buffer-resources-as-opencl-buffer-objects">8.6.3. Sharing Direct3D 11 Buffer Resources as OpenCL Buffer Objects</h4>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromD3D11BufferKHR(cl_context context,
                                  cl_mem_flags flags,
                                  ID3D11Buffer *resource,
                                  cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an OpenCL buffer object from a Direct3D 11 buffer.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from a Direct3D 11 device.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information.
Refer to table 5.3 for a description of <em>flags</em>.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> can be used.</p>
</div>
<div class="paragraph">
<p><em>resource</em> is a pointer to the Direct3D 11 buffer to share.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromD3D11BufferKHR</strong> returns a valid non-zero OpenCL buffer object
and <em>errcode_ret</em> is set to CL_SUCCESS if the buffer object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid.</p>
</li>
<li>
<p>CL_INVALID_D3D11_RESOURCE_KHR if <em>resource</em> is not a Direct3D 11 buffer
resource, if <em>resource</em> was created with the D3D11_USAGE flag
D3D11_USAGE_IMMUTABLE, if a cl_mem from <em>resource</em> has already been
created using <strong>clCreateFromD3D11BufferKHR</strong>, or if <em>context</em> was not
created against the same Direct3D 11 device from which <em>resource</em> was
created.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The size of the returned OpenCL buffer object is the same as the size of
<em>resource</em>.
This call will increment the internal Direct3D reference count on
<em>resource</em>.
The internal Direct3D reference count on <em>resource</em> will be decremented when
the OpenCL reference count on the returned OpenCL memory object drops to
zero.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d11_sharing-sharing-direct3d-11-texture-and-resources-as-opencl-image-objects">8.6.4. Sharing Direct3D 11 Texture and Resources as OpenCL Image Objects</h4>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromD3D11Texture2DKHR(cl_context context,
                                     cl_mem_flags flags,
                                     ID3D11Texture2D *resource,
                                     UINT subresource,
                                     cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an OpenCL 2D image object from a subresource of a Direct3D 11 2D
texture.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from a Direct3D 11 device.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information.
Refer to <em>table 5.3</em> for a description of <em>flags</em>.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> can be used.</p>
</div>
<div class="paragraph">
<p><em>resource</em> is a pointer to the Direct3D 11 2D texture to share.</p>
</div>
<div class="paragraph">
<p><em>subresource</em> is the subresource of <em>resource</em> to share.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromD3D11Texture2DKHR</strong> returns a valid non-zero OpenCL image object
and <em>errcode_ret</em> is set to CL_SUCCESS if the image object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid or if
<em>subresource</em> is not a valid subresource index for <em>resource</em>.</p>
</li>
<li>
<p>CL_INVALID_D3D11_RESOURCE_KHR if <em>resource</em> is not a Direct3D 11 texture
resource, if <em>resource</em> was created with the D3D11_USAGE flag
D3D11_USAGE_IMMUTABLE, if <em>resource</em> is a multisampled texture, if a
cl_mem from subresource <em>subresource</em> of <em>resource</em> has already been
created using <strong>clCreateFromD3D11Texture2DKHR</strong>, or if <em>context</em> was not
created against the same Direct3D 10 device from which <em>resource</em> was
created.</p>
</li>
<li>
<p>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR if the Direct3D 11 texture format of
<em>resource</em> is not listed in the table
<a href="#cl_khr_d3d11_sharing-mapping-of-image-formats"><em>Direct3D 11 formats and
corresponding OpenCL image formats</em></a> or if the Direct3D 11 texture
format of <em>resource</em> does not map to a supported OpenCL image format.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The width and height of the returned OpenCL 2D image object are determined
by the width and height of subresource <em>subresource</em> of <em>resource</em>.
The channel type and order of the returned OpenCL 2D image object is
determined by the format of <em>resource</em> by the table
<a href="#cl_khr_d3d11_sharing-mapping-of-image-formats"><em>Direct3D 11 formats and
corresponding OpenCL image formats</em></a>.</p>
</div>
<div class="paragraph">
<p>This call will increment the internal Direct3D reference count on
<em>resource</em>.
The internal Direct3D reference count on <em>resource</em> will be decremented when
the OpenCL reference count on the returned OpenCL memory object drops to
zero.</p>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromD3D11Texture3DKHR(cl_context context,
                                     cl_mem_flags flags,
                                     ID3D11Texture3D *resource,
                                     UINT subresource,
                                     cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an OpenCL 3D image object from a subresource of a Direct3D 11 3D
texture.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from a Direct3D 11 device.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information.
Refer to <em>table 5.3</em> for a description of <em>flags</em>.
Only CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and CL_MEM_READ_WRITE values
specified in <em>table 5.3</em> can be used.</p>
</div>
<div class="paragraph">
<p><em>resource</em> is a pointer to the Direct3D 11 3D texture to share.</p>
</div>
<div class="paragraph">
<p><em>subresource</em> is the subresource of <em>resource</em> to share.</p>
</div>
<div class="paragraph">
<p><em>errcode_ret</em> will return an appropriate error code.
If <em>errcode_ret</em> is <code>NULL</code>, no error code is returned.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromD3D11Texture3DKHR</strong> returns a valid non-zero OpenCL image object
and <em>errcode_ret</em> is set to CL_SUCCESS if the image object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if values specified in <em>flags</em> are not valid or if
<em>subresource</em> is not a valid subresource index for <em>resource</em>.</p>
</li>
<li>
<p>CL_INVALID_D3D11_RESOURCE_KHR if <em>resource</em> is not a Direct3D 11 texture
resource, if <em>resource</em> was created with the D3D11_USAGE flag
D3D11_USAGE_IMMUTABLE, if <em>resource</em> is a multisampled texture, if a
cl_mem from subresource <em>subresource</em> of <em>resource</em> has already been
created using <strong>clCreateFromD3D11Texture3DKHR</strong>, or if <em>context</em> was not
created against the same Direct3D 11 device from which <em>resource</em> was
created.</p>
</li>
<li>
<p>CL_INVALID_IMAGE_FORMAT_DESCRIPTOR if the Direct3D 11 texture format of
<em>resource</em> is not listed in the table
<a href="#cl_khr_d3d11_sharing-mapping-of-image-formats"><em>Direct3D 11 formats and
corresponding OpenCL image formats</em></a> or if the Direct3D 11 texture
format of <em>resource</em> does not map to a supported OpenCL image format.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The width, height and depth of the returned OpenCL 3D image object are
determined by the width, height and depth of subresource <em>subresource</em> of
<em>resource</em>.
The channel type and order of the returned OpenCL 3D image object is
determined by the format of <em>resource</em> by the table
<a href="#cl_khr_d3d11_sharing-mapping-of-image-formats"><em>Direct3D 11 formats and
corresponding OpenCL image formats</em></a>.</p>
</div>
<div class="paragraph">
<p>This call will increment the internal Direct3D reference count on
<em>resource</em>.
The internal Direct3D reference count on <em>resource</em> will be decremented when
the OpenCL reference count on the returned OpenCL memory object drops to
zero.</p>
</div>
<table id="cl_khr_d3d11_sharing-mapping-of-image-formats" class="tableblock frame-all grid-all spread">
<caption class="title">Table 24. <em>Direct3D 11 formats and corresponding OpenCL image formats</em></caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>DXGI format</strong></th>
<th class="tableblock halign-left valign-top"><strong>CL image format</strong>

<strong>(channel order, channel data type)</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32B32A32_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32B32A32_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNSIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32B32A32_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNSIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16B16A16_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_B8G8R8A8_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_BGRA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8B8A8_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8B8A8_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_UNSIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8B8A8_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8B8A8_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RGBA, CL_SIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNSIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32G32_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNSIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16G16_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_UNSIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8G8_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_RG, CL_SIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNSIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R32_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SIGNED_INT32</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_HALF_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNSIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R16_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SIGNED_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8_UNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8_UINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_UNSIGNED_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8_SNORM</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SNORM_INT8</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">DXGI_FORMAT_R8_SINT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_R, CL_SIGNED_INT8</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d11_sharing-querying-direct3d-properties-of-memory-objects-created-from-direct3d-11-resources">8.6.5. Querying Direct3D properties of memory objects created from Direct3D 11 resources</h4>
<div class="paragraph">
<p>Properties of Direct3D 11 objects may be queried using <strong>clGetMemObjectInfo</strong>
and <strong>clGetImageInfo</strong> with <em>param_name</em> CL_MEM_D3D11_RESOURCE_KHR and</p>
</div>
<div class="paragraph">
<p>CL_IMAGE_D3D11_SUBRESOURCE_KHR respectively as described in <em>sections 5.4.3</em>
and <em>5.3.6</em>.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_d3d11_sharing-sharing-memory-objects-created-from-direct3d-11-resources-between-direct3d-11-and-opencl-contexts">8.6.6. Sharing memory objects created from Direct3D 11 resources between Direct3D 11 and OpenCL contexts</h4>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clEnqueueAcquireD3D11ObjectsKHR(cl_command_queue command_queue,
                                       cl_uint num_objects,
                                       const cl_mem *mem_objects,
                                       cl_uint num_events_in_wait_list,
                                       const cl_event *event_wait_list,
                                       cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to acquire OpenCL memory objects that have been created from
Direct3D 11 resources.
The Direct3D 11 objects are acquired by the OpenCL context associated with
<em>command_queue</em> and can therefore be used by all command-queues associated
with the OpenCL context.</p>
</div>
<div class="paragraph">
<p>OpenCL memory objects created from Direct3D 11 resources must be acquired
before they can be used by any OpenCL commands queued to a command-queue.
If an OpenCL memory object created from a Direct3D 11 resource is used while
it is not currently acquired by OpenCL, the call attempting to use that
OpenCL memory object will return CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR.</p>
</div>
<div class="paragraph">
<p>If CL_CONTEXT_INTEROP_USER_SYNC is not specified as CL_TRUE during context
creation, <strong>clEnqueueAcquireD3D11ObjectsKHR</strong> provides the synchronization
guarantee that any Direct3D 11 calls involving the interop device(s) used in
the OpenCL context made before <strong>clEnqueueAcquireD3D11ObjectsKHR</strong> is called
will complete executing before <em>event</em> reports completion and before the
execution of any subsequent OpenCL work issued in <em>command_queue</em> begins.
If the context was created with properties specifying
CL_CONTEXT_INTEROP_USER_SYNC as CL_TRUE, the user is responsible for
guaranteeing that any Direct3D 11 calls involving the interop device(s) used
in the OpenCL context made before <strong>clEnqueueAcquireD3D11ObjectsKHR</strong> is
called have completed before calling <strong>clEnqueueAcquireD3D11ObjectsKHR.</strong></p>
</div>
<div class="paragraph">
<p><em>command_queue</em> is a valid command-queue.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be acquired in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of OpenCL memory objects that were
created from Direct3D 11 resources.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this particular command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in <em>event_wait_list</em> act as synchronization points.</p>
</div>
<div class="paragraph">
<p><em>event</em> returns an event object that identifies this particular command and
can be used to query or queue a wait for this particular command to
complete.
<em>event</em> can be <code>NULL</code> in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.
If the <em>event_wait_list</em> and the <em>event</em> arguments are not <code>NULL</code>, the
<em>event</em> argument should not refer to an element of the <em>event_wait_list</em>
array.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueAcquireD3D11ObjectsKHR</strong> returns CL_SUCCESS if the function is
executed successfully.
If <em>num_objects</em> is 0 and <em>mem_objects</em> is <code>NULL</code> then the function does
nothing and returns CL_SUCCESS.
Otherwise it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if <em>num_objects</em> &gt; 0 and <em>mem_objects</em> is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects or if memory objects in <em>mem_objects</em> have not
been created from Direct3D 11 resources.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_CONTEXT if context associated with <em>command_queue</em> was not
created from an Direct3D 11 context.</p>
</li>
<li>
<p>CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR if memory objects in
<em>mem_objects</em> have previously been acquired using
<strong>clEnqueueAcquireD3D11ObjectsKHR</strong> but have not been released using
<strong>clEnqueueReleaseD3D11ObjectsKHR</strong>.</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em> is 0, or if event objects in <em>event_wait_list</em>
are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clEnqueueReleaseD3D11ObjectsKHR(cl_command_queue command_queue,
                                       cl_uint num_objects,
                                       const cl_mem *mem_objects,
                                       cl_uint num_events_in_wait_list,
                                       const cl_event *event_wait_list,
                                       cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to release OpenCL memory objects that have been created from
Direct3D 11 resources.
The Direct3D 11 objects are released by the OpenCL context associated with
<em>command_queue</em>.</p>
</div>
<div class="paragraph">
<p>OpenCL memory objects created from Direct3D 11 resources which have been
acquired by OpenCL must be released by OpenCL before they may be accessed by
Direct3D 11.
Accessing a Direct3D 11 resource while its corresponding OpenCL memory
object is acquired is in error and will result in undefined behavior,
including but not limited to possible OpenCL errors, data corruption, and
program termination.</p>
</div>
<div class="paragraph">
<p>If CL_CONTEXT_INTEROP_USER_SYNC is not specified as CL_TRUE during context
creation, <strong>clEnqueueReleaseD3D11ObjectsKHR</strong> provides the synchronization
guarantee that any calls to Direct3D 11 calls involving the interop
device(s) used in the OpenCL context made after the call to
<strong>clEnqueueReleaseD3D11ObjectsKHR</strong> will not start executing until after all
events in <em>event_wait_list</em> are complete and all work already submitted to
<em>command_queue</em> completes execution.
If the context was created with properties specifying
CL_CONTEXT_INTEROP_USER_SYNC as CL_TRUE, the user is responsible for
guaranteeing that any Direct3D 11 calls involving the interop device(s) used
in the OpenCL context made after <strong>clEnqueueReleaseD3D11ObjectsKHR</strong> will not
start executing until after event returned by
<strong>clEnqueueReleaseD3D11ObjectsKHR</strong> reports completion.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be released in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of OpenCL memory objects that were
created from Direct3D 11 resources.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this particular command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in <em>event</em> returns an event object that identifies this
particular command and can be used to query or queue a wait for this
particular command to complete.
<em>event</em> can be <code>NULL</code> in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.
If the <em>event_wait_list</em> and the <em>event</em> arguments are not <code>NULL</code>, the
<em>event</em> argument should not refer to an element of the <em>event_wait_list</em>
array.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueReleaseD3D11ObjectsKHR</strong> returns CL_SUCCESS if the function is
executed successfully.
If <em>num_objects</em> is 0 and <em>mem_objects</em> is <code>NULL</code> the function does nothing
and returns CL_SUCCESS.
Otherwise it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if <em>num_objects</em> &gt; 0 and <em>mem_objects</em> is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects or if memory objects in <em>mem_objects</em> have not
been created from Direct3D 11 resources.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_CONTEXT if context associated with <em>command_queue</em> was not
created from a Direct3D 11 device.</p>
</li>
<li>
<p>CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR if memory objects in <em>mem_objects</em>
have not previously been acquired using
<strong>clEnqueueAcquireD3D11ObjectsKHR</strong>, or have been released using
<strong>clEnqueueReleaseD3D11ObjectsKHR</strong> since the last time that they were
acquired.</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em>&gt; is 0, or if event objects in
<em>event_wait_list</em> are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_gl_depth_images">9. Sharing OpenGL and OpenGL ES Depth and Depth-Stencil Images</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes the <strong>cl_khr_gl_depth_images</strong> extension.
The <strong>cl_khr_gl_depth_images</strong> extends OpenCL / OpenGL sharing (the
cl_khr_gl_sharing_extension) defined in
<a href="#cl_khr_gl_sharing__memobjs">Creating OpenCL Memory Objects from OpenGL
Objects</a> to allow an OpenCL image to be created from an OpenGL depth or
depth-stencil texture.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_depth_images-additions-to-chapter-5">9.1. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>The <strong>cl_khr_gl_depth_images</strong> extension extends OpenCL / OpenGL sharing by
allowing an OpenCL depth image to be created from an OpenGL depth or
depth-stencil texture.
Depth images with an image channel order of CL_DEPTH_STENCIL can only be
created using the <strong>clCreateFromGLTexture</strong> API.</p>
</div>
<div class="paragraph">
<p>This extension adds the following new image format for depth-stencil images
to <em>table 5.6 and 5.7</em> of the OpenCL 2.2 specification.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 100%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Enum values that can be specified in channel_order</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_DEPTH_STENCIL</strong>.
  This format can only be used if channel data type = CL_UNORM_INT24 or
  CL_FLOAT.</p></td>
</tr>
</tbody>
</table>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Image Channel Data Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_UNORM_INT24</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Each channel component is a normalized unsigned 24-bit integer value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_FLOAT</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Each channel component is a single precision floating-point value</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>This extension adds the following new image format to the minimum list of
supported image formats described in <em>tables 5.8.a</em> and <em>5.8.b</em>.</p>
</div>
<table id="cl_khr_gl_depth_images-required-image-formats" class="tableblock frame-all grid-all spread">
<caption class="title">Table 25. <em>Required Image Formats for</em> <strong>cl_khr_gl_depth_images</strong></caption>
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>num_channels</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>channel_order</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>channel_data_type</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>read / write</strong></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_DEPTH_STENCIL</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_UNORM_INT24<br>
  CL_FLOAT</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">read only</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For the image format given by channel order of CL_DEPTH_STENCIL and channel
data type of CL_UNORM_INT24, the depth is stored as an unsigned normalized
24-bit value.</p>
</div>
<div class="paragraph">
<p>For the image format given by channel order of CL DEPTH_STENCIL and channel
data type of CL_FLOAT, each pixel is two 32-bit values.
The depth is stored as a single precision floating-point value followed by
the stencil which is stored as a 8-bit integer value.</p>
</div>
<div class="paragraph">
<p>The stencil value cannot be read or written using the <strong>read_imagef</strong> and
<strong>write_imagef</strong> built-in functions in an OpenCL kernel.</p>
</div>
<div class="paragraph">
<p>Depth image objects with an image channel order equal to CL_DEPTH_STENCIL
cannot be used as arguments to clEnqueueReadImage, clEnqueueWriteImage,
clEnqueueCopyImage, clEnqueueCopyImageToBuffer, clEnqueueCopyBufferToImage,
clEnqueueMapImage and clEnqueueFillImage and will return a
CL_INVALID_OPERATION error.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_depth_images-additions-to-extension-specification">9.2. Additions to the OpenCL Extension Specification</h3>
<div class="paragraph">
<p>The following new image formats are added to the table of
<a href="#cl_khr_gl_sharing__memobjs-mapping-of-image-formats">OpenGL internal
formats and corresponding OpenCL internal formats</a> in the OpenCL extension
specification.
If an OpenGL texture object with an internal format in this table is
successfully created by OpenGL, then there is guaranteed to be a mapping to
one of the corresponding OpenCL image format(s) in that table.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>GL internal format</strong></th>
<th class="tableblock halign-left valign-top"><strong>CL image format</strong>

  <strong>(channel order, channel data type)</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_DEPTH_COMPONENT32F</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_DEPTH, CL_FLOAT</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_DEPTH_COMPONENT16</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_DEPTH, CL_UNORM_INT16</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_DEPTH24_STENCIL8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_DEPTH_STENCIL, CL_UNORM_INT24</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">GL_DEPTH32F_STENCIL8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_DEPTH_STENCIL, CL_FLOAT</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_gl_msaa_sharing">10. Creating OpenCL Memory Obejcts from OpenGL MSAA Textures</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This extension extends the OpenCL / OpenGL sharing (the
cl_khr_gl_sharing_extension) defined in
<a href="#cl_khr_gl_sharing__memobjs">Creating OpenCL Memory Objects from OpenGL
Objects</a> to allow an OpenCL image to be created from an OpenGL
multi-sampled (a.k.a.
MSAA) texture (color or depth).</p>
</div>
<div class="paragraph">
<p>This extension name is <strong>cl_khr_gl_msaa_sharing</strong>.
This extension requires <strong>cl_khr_gl_depth_images</strong>.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_msaa_sharing-additions-to-extension-specification">10.1. Additions to the OpenCL Extension Specification</h3>
<div class="paragraph">
<p>Allow <em>texture_target</em> argument to <strong>clCreateFromGLTexture</strong> to be
GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.</p>
</div>
<div class="paragraph">
<p>If <em>texture_target</em> is GL_TEXTURE_2D_MULTISAMPLE, <strong>clCreateFromGLTexture</strong>
creates an OpenCL 2D multi-sample image object from an OpenGL 2D
multi-sample texture.</p>
</div>
<div class="paragraph">
<p>If <em>texture_target</em> is GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
<strong>clCreateFromGLTexture</strong> creates an OpenCL 2D multi-sample array image object
from an OpenGL 2D multi-sample texture.</p>
</div>
<div class="paragraph">
<p>Multi-sample OpenCL image objects can only be read from a kernel.
Multi-sample OpenCL image objects cannot be used as arguments to
clEnqueueReadImage , clEnqueueWriteImage, clEnqueueCopyImage,
clEnqueueCopyImageToBuffer, clEnqueueCopyBufferToImage, clEnqueueMapImage
and clEnqueueFillImage and will return a CL_INVALID_OPERATION error.</p>
</div>
<div class="paragraph">
<p><strong>Add the following entry to the table describing
<a href="#cl_khr_gl_sharing__memobjs-clGetGLTextureInfo-queries">OpenGL texture info
that may be queried with clGetGLTextureInfo</a>:</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_gl_texture_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Info. returned in <em>param_value</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_GL_NUM_SAMPLES</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GLsizei</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The <em>samples</em> argument passed to <strong>glTexImage2DMultisample</strong> or
  <strong>glTexImage3DMultisample</strong>.</p>
<p class="tableblock">  If <em>image</em> is not a MSAA texture, 1 is returned.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_msaa_sharing-additions-to-chapter-5">10.2. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>The formats described in tables 5.8.a and 5.8.b of the OpenCL 2.2
specification and the additional formats described in
<a href="#cl_khr_gl_depth_images-required-image-formats">required image formats for
cl_khr_gl_depth_images</a> also support OpenCL images created from a OpenGL
multi-sampled color or depth texture.</p>
</div>
<div class="paragraph">
<p><strong>Update text that describes arg value argument to clSetKernelArg with the
following:</strong></p>
</div>
<div class="paragraph">
<p>&#8220;If the argument is a multi-sample 2D image, the <em>arg_value</em> entry must be
a pointer to a multi-sample image object.
If the argument is a multi-sample 2D depth image, the <em>arg_value</em> entry must
be a pointer to a multisample depth image object.
If the argument is a multi-sample 2D image array, the <em>arg_value</em> entry must
be a pointer to a multi-sample image array object.
If the argument is a multi-sample 2D depth image array, the <em>arg_value</em>
entry must be a pointer to a multi-sample depth image array object.&#8221;</p>
</div>
<div class="paragraph">
<p><strong>Updated error code text for clSetKernelArg is:</strong></p>
</div>
<div class="paragraph">
<p><strong>Add the following text:</strong></p>
</div>
<div class="paragraph">
<p>&#8220;CL_INVALID_MEM_OBJECT for an argument declared to be a multi-sample image,
multi-sample image array, multi-sample depth image or a multi-sample depth
image array and the argument value specified in <em>arg_value</em> does not follow
the rules described above for a depth memory object or memory array object
argument.&#8221;</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_gl_msaa_sharing-additions-to-chapter-6">10.3. Additions to Chapter 6 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p><strong>Add the following new data types to <em>table 6.3</em> in <em>section 6.1.3</em> of the
OpenCL 2.2 specification:</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>image2d_msaa_t</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 2D multi-sample color image.
  Refer to <em>section 6.13.14</em> for a detailed description of the built-in
  functions that use this type.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>image2d_array_msaa_t</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 2D multi-sample color image array.
  Refer to <em>section 6.13.14</em> for a detailed description of the built-in
  functions that use this type.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>image2d_msaa_depth_t</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 2D multi-sample depth image.
  Refer to <em>section 6.13.14</em> for a detailed description of the built-in
  functions that use this type.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>image2d_array_msaa_depth_t</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A 2D multi-sample depth image array.
  Refer to <em>section 6.13.14</em> for a detailed description of the built-in
  functions that use this type.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>Add the following built-in functions to section 6.13.14.3&#8201;&#8212;&#8201;BuiltIn Image
Sampler-less Read Functions:</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float4 read_imagef(
    image2d_msaa_t image,
    int2 coord,
    int sample)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use the coordinate <em>(coord.x, coord.y)</em> and <em>sample</em> to do an element lookup
in the 2D image object specified by <em>image</em>.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns floating-point values in the range [0.0 &#8230;&#8203; 1.0] for
image objects created with <em>image_channel_data_type</em> set to one of the
pre-defined packed formats or CL_UNORM_INT8, or CL_UNORM_INT16.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns floating-point values in the range [-1.0 &#8230;&#8203; 1.0] for
image objects created with <em>image_channel_data_type</em> set to CL_SNORM_INT8,
or CL_SNORM_INT16.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns floating-point values for image objects created with
<em>image_channel_data_type</em> set to CL_HALF_FLOAT or CL_FLOAT.</p>
</div>
<div class="paragraph">
<p>Values returned by <strong>read_imagef</strong> for image objects with
<em>image_channel_data_type</em> values not specified in the description above are
undefined.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int4 read_imagei(image2d_msaa_t image,
                 int2 coord,
                 int sample)

uint4 read_imageui(image2d_msaa_t image,
                   int2 coord,
                   int sample)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use the coordinate <em>(coord.x, coord.y)</em> and <em>sample</em> to do an element lookup
in the 2D image object specified by <em>image</em>.</p>
</div>
<div class="paragraph">
<p><strong>read_imagei</strong> and <strong>read_imageui</strong> return unnormalized signed integer and
unsigned integer values respectively.
Each channel will be stored in a 32-bit integer.</p>
</div>
<div class="paragraph">
<p><strong>read_imagei</strong> can only be used with image objects created with
<em>image_channel_data_type</em> set to one of the following values:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_SIGNED_INT8,</p>
</li>
<li>
<p>CL_SIGNED_INT16, and</p>
</li>
<li>
<p>CL_SIGNED_INT32.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <em>image_channel_data_type</em> is not one of the above values, the values
returned by <strong>read_imagei</strong> are undefined.</p>
</div>
<div class="paragraph">
<p><strong>read_imageui</strong> can only be used with image objects created with
<em>image_channel_data_type</em> set to one of the following values:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_UNSIGNED_INT8,</p>
</li>
<li>
<p>CL_UNSIGNED_INT16, and</p>
</li>
<li>
<p>CL_UNSIGNED_INT32.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <em>image_channel_data_type</em> is not one of the above values, the values
returned by <strong>read_imageui</strong> are undefined.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float4 read_imagef(image2d_array_msaa_t image,
                   int4 coord,
                   int sample)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use <em>coord.xy</em> and <em>sample</em> to do an element lookup in the 2D image
identified by <em>coord.z</em> in the 2D image array specified by <em>image</em>.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns floating-point values in the range [0.0 &#8230;&#8203; 1.0] for
image objects created with <em>image_channel_data_type</em> set to one of the
pre-defined packed formats or CL_UNORM_INT8, or CL_UNORM_INT16.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns floating-point values in the range [-1.0 &#8230;&#8203; 1.0] for
image objects created with <em>image_channel_data_type</em> set to CL_SNORM_INT8,
or CL_SNORM_INT16.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns floating-point values for image objects created with
<em>image_channel_data_type</em> set to CL_HALF_FLOAT or CL_FLOAT.</p>
</div>
<div class="paragraph">
<p>Values returned by <strong>read_imagef</strong> for image objects with
<em>image_channel_data_type</em> values not specified in the description above are
undefined.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int4 read_imagei(image2d_array_msaa_t image,
                 int4 coord,
                 int sample)

uint4 read_imageui(image2d_array_msaa_t image,
                   int4 coord,
                   int sample)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use <em>coord.xy</em> and <em>sample</em> to do an element lookup in the 2D image
identified by <em>coord.z</em> in the 2D image array specified by <em>image</em>.</p>
</div>
<div class="paragraph">
<p><strong>read_imagei</strong> and <strong>read_imageui</strong> return unnormalized signed integer and
unsigned integer values respectively.
Each channel will be stored in a 32-bit integer.</p>
</div>
<div class="paragraph">
<p><strong>read_imagei</strong> can only be used with image objects created with
<em>image_channel_data_type</em> set to one of the following values:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_SIGNED_INT8,</p>
</li>
<li>
<p>CL_SIGNED_INT16, and</p>
</li>
<li>
<p>CL_SIGNED_INT32.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <em>image_channel_data_type</em> is not one of the above values, the values
returned by <strong>read_imagei</strong> are undefined.</p>
</div>
<div class="paragraph">
<p><strong>read_imageui</strong> can only be used with image objects created with
<em>image_channel_data_type</em> set to one of the following values:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_UNSIGNED_INT8,</p>
</li>
<li>
<p>CL_UNSIGNED_INT16, and</p>
</li>
<li>
<p>CL_UNSIGNED_INT32.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the <em>image_channel_data_type</em> is not one of the above values, the values
returned by <strong>read_imageui</strong> are undefined.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float read_imagef(image2d_msaa_depth_t image,
                  int2 coord,
                  int sample)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use the coordinate <em>(coord.x, coord.y)</em> and <em>sample</em> to do an element lookup
in the 2D depth image object specified by <em>image</em>.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns a floating-point value in the range [0.0 &#8230;&#8203; 1.0] for
depth image objects created with <em>image_channel_data_type</em> set to
CL_UNORM_INT16 or CL_UNORM_INT24.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns a floating-point value for depth image objects created
with <em>image_channel_data_type</em> set to CL_FLOAT.</p>
</div>
<div class="paragraph">
<p>Values returned by <strong>read_imagef</strong> for image objects with
<em>image_channel_data_type</em> values not specified in the description above are
undefined.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>float read_imagef(image2d_array_msaaa_depth_t image,
                  int4 coord,
                  int sample)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Use <em>coord.xy</em> and <em>sample</em> to do an element lookup in the 2D image
identified by <em>coord.z</em> in the 2D depth image array specified by <em>image</em>.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns a floating-point value in the range [0.0 &#8230;&#8203; 1.0] for
depth image objects created with <em>image_channel_data_type</em> set to
CL_UNORM_INT16 or CL_UNORM_INT24.</p>
</div>
<div class="paragraph">
<p><strong>read_imagef</strong> returns a floating-point value for depth image objects created
with <em>image_channel_data_type</em> set to CL_FLOAT.</p>
</div>
<div class="paragraph">
<p>Values returned by <strong>read_imagef</strong> for image objects with
<em>image_channel_data_type</em> values not specified in the description above are
undefined.</p>
</div>
<div class="paragraph">
<p>Note: When a multisample image is accessed in a kernel, the access takes one
vector of integers describing which pixel to fetch and an integer
corresponding to the sample numbers describing which sample within the pixel
to fetch.
sample identifies the sample position in the multi-sample image.</p>
</div>
<div class="paragraph">
<p><strong>For best performance, we recommend that <em>sample</em> be a literal value so it
is known at compile time and the OpenCL compiler can perform appropriate
optimizations for multi-sample reads on the device</strong>.</p>
</div>
<div class="paragraph">
<p>No standard sampling instructions are allowed on the multisample image.
Accessing a coordinate outside the image and/or a sample that is outside the
number of samples associated with each pixel in the image is undefined</p>
</div>
<div class="paragraph">
<p><strong>Add the following built-in functions to section 6.13.14.5&#8201;&#8212;&#8201;BuiltIn Image
Query Functions:</strong></p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int get_image_width(image2d_msaa_t image)

int get_image_width(image2d_array_msaa_t image)

int get_image_width(image2d_msaa_depth_t image)

int get_image_width(image2d_array_msaa_depth_t image)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the image width in pixels.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int get_image_height(image2d_msaa_t image)

int get_image_height(image2d_array_msaa_t image)

int get_image_height(image2d_msaa_depth_t image)

int get_image_height(image2d_array_msaa_depth_t image)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the image height in pixels.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int get_image_channel_data_type(image2d_msaa_t image)

int get_image_channel_data_type(image2d_array_msaa_t image)

int get_image_channel_data_type(image2d_msaa_depth_t image)

int get_image_channel_data_type(image2d_array_msaa_depth_t image)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the channel data type.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int get_image_channel_order(image2d_msaa_t image)

int get_image_channel_order(image2d_array_msaa_t image)

int get_image_channel_order(image2d_msaa_depth_t image)

int get_image_channel_order(image2d_array_msaa_depth_t image)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the image channel order.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int2 get_image_dim(image2d_msaa_t image)

int2 get_image_dim(image2d_array_msaa_t image)

int2 get_image_dim(image2d_msaa_depth_t image)

int2 get_image_dim(image2d_array_msaa_depth_t image)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the 2D image width and height as an int2 type.
The width is returned in the <em>x</em> component, and the height in the <em>y</em>
component.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>size_t get_image_array_size(image2d_array_msaa_depth_t image)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the number of images in the 2D image array.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>int get_image_num_samples(image2d_msaa_t image)

int get_image_num_samples(image2d_array_msaa_t image)

int get_image_num_samples(image2d_msaa_depth_t image)

int get_image_num_samples(image2d_array_msaa_depth_t image)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Return the number of samples in the 2D MSAA image</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_initialize_memory">11. Local and Private Memory Initialization</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Memory is allocated in various forms in OpenCL both explicitly (global
memory) or implicitly (local, private memory).
This allocation so far does not provide a straightforward mechanism to
initialize the memory on allocation.
In other words what is lacking is the equivalent of calloc for the currently
supported malloc like capability.
This functionality is useful for a variety of reasons including ease of
debugging, application controlled limiting of visibility to previous
contents of memory and in some cases, optimization</p>
</div>
<div class="paragraph">
<p>This extension adds support for initializing local and private memory before
a kernel begins execution.
This extension name is <strong>cl_khr_initialize_memory</strong>.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_initialize_memory-additions-to-chapter-4">11.1. Additions to Chapter 4 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>Add a new context property to <em>table 4.5</em> in <em>section 4.4</em>.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 22.2222%;">
<col style="width: 44.4445%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_context_properties enum</strong></th>
<th class="tableblock halign-left valign-top"><strong>Property value</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_CONTEXT_MEMORY_INITIALIZE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">cl_context_memory_initialize_khr</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Describes which memory types for the context must be initialized.
  This is a bit-field, where the following values are currently supported:</p>
<p class="tableblock">  CL_CONTEXT_MEMORY_INITIALIZE_LOCAL_KHR&#8201;&#8212;&#8201;Initialize local memory to
  zeros.</p>
<p class="tableblock">  CL_CONTEXT_MEMORY_INITIALIZE_PRIVATE_KHR&#8201;&#8212;&#8201;Initialize private memory to
  zeros.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="cl_khr_initialize_memory-additions-to-chapter-6">11.2. Additions to Chapter 6 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>Updates to <em>section 6.9</em>&#8201;&#8212;&#8201;Restrictions</p>
</div>
<div class="paragraph">
<p>If the context is created with CL CONTEXT MEMORY INITIALIZE KHR, appropriate
memory locations as specified by the bit-field is initialized with zeroes,
prior to the start of execution of any kernel.
The driver chooses when, prior to kernel execution, the initialization of
local and/or private memory is performed.
The only requirement is there should be no values set from outside the
context, which can be read during a kernel execution.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_terminate_context">12. Terminating OpenCL contexts</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Today, OpenCL provides an API to release a context.
This operation is done only after all queues, memory object, programs and
kernels are released, which in turn might wait for all ongoing operations to
complete.
However, there are cases in which a fast release is required, or release
operation cannot be done, as commands are stuck in mid execution.
An example of the first case can be program termination due to exception, or
quick shutdown due to low power.
Examples of the second case are when a kernel is running too long, or gets
stuck, or it may result from user action which makes the results of the
computation unnecessary.</p>
</div>
<div class="paragraph">
<p>In many cases, the driver or the device is capable of speeding up the
closure of ongoing operations when the results are no longer required in a
much more expedient manner than waiting for all previously enqueued
operations to finish.</p>
</div>
<div class="paragraph">
<p>This extension implements a new query to check whether a device can
terminate an OpenCL context and adds an API to terminate a context.</p>
</div>
<div class="paragraph">
<p>The extension name is <strong>cl_khr_terminate_context</strong>.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_terminate_context-additions-to-chapter-4">12.1. Additions to Chapter 4 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>Add a new device property to <em>table 4.3</em> in <em>section 4.2</em>.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 22.2222%;">
<col style="width: 44.4445%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_device_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_DEVICE_TERMINATE_CAPABILITY_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_device_terminate_capability_khr</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Describes the termination capability of the OpenCL device.
  This is a bit-field, where the following values are currently supported:</p>
<p class="tableblock">  CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR - Indicates that context
  termination is supported.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Add a new context property to <em>table 4.5</em> in <em>section 4.4</em>.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 22.2222%;">
<col style="width: 44.4445%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_context_properties enum</strong></th>
<th class="tableblock halign-left valign-top"><strong>Property value</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_CONTEXT_TERMINATE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_bool</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Specifies whether the context can be terminated.
  The default value is CL_FALSE.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>CL_CONTEXT_TERMINATE_KHR can be specified in the context properties only if
all devices associated with the context support the ability to support
context termination (i.e. CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR is set
for CL_DEVICE_TERMINATE_CAPABILITY_KHR).
Otherwise, context creation fails with error code of CL_INVALID_PROPERTY.</p>
</div>
<div class="paragraph">
<p>The new function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clTerminateContextKHR(cl context context)</code></pre>
</div>
</div>
<div class="paragraph">
<p>terminates all pending work associated with the context and renders all data
owned by the context invalid.
It is the responsibility of the application to release all objects
associated with the context being terminated.</p>
</div>
<div class="paragraph">
<p>When a context is terminated:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The execution status of enqueued commands will be CL_TERMINATED_KHR.
Event objects can be queried using <strong>clGetEventInfo</strong>.
Event callbacks can be registered and registered event callbacks will be
called with <em>event_command_exec_status</em> set to CL_TERMINATED_KHR.
<strong>clWaitForEvents</strong> will return as immediately for commands associated
with event objects specified in event_list.
The status of user events can be set.
Event objects can be retained and released.
<strong>clGetEventProfilingInfo</strong> returns CL_PROFILING_INFO_NOT_AVAILABLE.</p>
</li>
<li>
<p>The context is considered to be terminated.
A callback function registered when the context was created will be
called.
Only queries, retain and release operations can be performed on the
context.
All other APIs that use a context as an argument will return
CL_CONTEXT_TERMINATED_KHR.</p>
</li>
<li>
<p>The contents of the memory regions of the memory objects is undefined.
Queries, registering a destructor callback, retain and release
operations can be performed on the memory objects.</p>
</li>
<li>
<p>Once a context has been terminated, all OpenCL API calls that create
objects or enqueue commands will return CL_CONTEXT_TERMINATED_KHR.
APIs that release OpenCL objects will continue to operate as though
<strong>clTerminateContextKHR</strong> was not called.</p>
</li>
<li>
<p>The behavior of callbacks will remain unchanged, and will report
appropriate error, if executing after termination of context.
This behavior is similar to enqueued commands, after the command queue
has become invalid.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>clTerminateContextKHR</strong> returns CL_SUCCESS if the function is executed
successfully.
Otherwise, it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid OpenCL context.</p>
</li>
<li>
<p>CL_CONTEXT_TERMINATED_KHR if <em>context</em> has already been terminated.</p>
</li>
<li>
<p>CL_INVALID_OPERATION if <em>context</em> was not created with
CL_CONTEXT_TERMNATE_KHR set to CL_TRUE.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>An implementation that supports this extension must be able to terminate
commands currently executing on devices or queued across all command-queues
associated with the context that is being terminated.
The implementation cannot implement this extension by waiting for currently
executing (or queued) commands to finish execution on devices associated
with this context (i.e. doing a <strong>clFinish</strong>).</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_spir">13. SPIR 1.2 Binaries</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This extension adds the ability to create an OpenCL program object from a
Standard Portable Intermediate Representation (SPIR) instance.
A SPIR instance is a vendor-neutral non-source representation for OpenCL C
programs.</p>
</div>
<div class="paragraph">
<p>The extension name is <strong>cl_khr_spir</strong>.
This extension has been superseded by the SPIR-V intermediate
representation, which became a core feature in OpenCL 2.1.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_spir-additions-to-chapter-4">13.1. Additions to Chapter 4 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p><strong>Add a new device property to <em>table 4.3</em> in <em>section 4.2</em>:</strong></p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 28.5714%;">
<col style="width: 14.2857%;">
<col style="width: 57.1429%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_device_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_DEVICE_SPIR_VERSIONS</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">char[]</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A space separated list of SPIR versions supported by the device.</p>
<p class="tableblock">  For example, returning <code>"1.2"</code> in this query implies that SPIR version 1.2
  is supported by the implementation.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="cl_khr_spir-additions-to-chapter-5">13.2. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p><strong>Additions to <em>section 5.8.1</em>&#8201;&#8212;&#8201;Creating Program Objects:</strong></p>
</div>
<div class="paragraph">
<p>&#8220;<strong>clCreateProgramWithBinary</strong> can be used to load a SPIR binary.
Once a program object has been created from a SPIR binary, <strong>clBuildProgram</strong>
can be called to build a program executable or <strong>clCompileProgram</strong> can be
called to compile the SPIR binary.&#8221;</p>
</div>
<div class="paragraph">
<p>Modify the CL_PROGRAM_BINARY_TYPE entry in <em>table 5.14</em>
(<strong>clGetProgramBuildInfo</strong>) to add a potential value
CL_PROGRAM_BINARY_TYPE_INTERMEDIATE:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 28.5714%;">
<col style="width: 14.2857%;">
<col style="width: 57.1429%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_program_build_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Info. returned in <em>param_value</em></strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_PROGRAM_BINARY_TYPE</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_program_binary_type</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_PROGRAM_BINARY_TYPE_INTERMEDIATE&#8201;&#8212;&#8201;An intermediate (non-source)
  representation for the program is loaded as a binary.
  The program must be further processed with <strong>clCompileProgram</strong> or
  <strong>clBuildProgram</strong>.</p>
<p class="tableblock">  If processed with <strong>clCompileProgram</strong>, the result will be a binary of type
  CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT or CL_PROGRAM_BINARY_TYPE_LIBRARY.
  If processed with <strong>clBuildProgram</strong>, the result will be a binary of type
  CL_PROGRAM_BINARY_TYPE_EXECUTABLE.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>Additions to <em>section 5.8.4</em>&#8201;&#8212;&#8201;Compiler Options:</strong></p>
</div>
<div class="paragraph">
<p>&#8220;The compile option <strong>-x spir</strong> must be specified to indicate that the binary
is in SPIR format, and the compile option <strong>-spir-std</strong> must be used to
specify the version of the SPIR specification that describes the format and
meaning of the binary.
For example, if the binary is as described in SPIR version 1.2, then
<strong>-spir-std=1.2</strong> must be specified.
Failing to specify these compile options may result in implementation
defined behavior.&#8221;</p>
</div>
<div class="paragraph">
<p><strong>Additions to <em>section 5.9.3</em>&#8201;&#8212;&#8201;Kernel Object Queries:</strong></p>
</div>
<div class="paragraph">
<p>Modify following text in clGetKernelArgInfo from:</p>
</div>
<div class="paragraph">
<p>&#8220;Kernel argument information is only available if the program object
associated with <em>kernel</em> is created with <strong>clCreateProgramWithSource</strong> and the
program executable is built with the -cl-kernel-arg-info option specified in
<em>options</em> argument to <strong>clBuildProgram</strong> or <strong>clCompileProgram</strong>.&#8221;</p>
</div>
<div class="paragraph">
<p>to:</p>
</div>
<div class="paragraph">
<p>&#8220;Kernel argument information is only available if the program object
associated with <em>kernel</em> is created with <strong>clCreateProgramWithSource</strong> and the
program executable is built with the -cl-kernel-arg-info option specified in
<em>options</em> argument to <strong>clBuildProgram</strong> or <strong>clCompileProgram</strong>, or if the
program object associated with <em>kernel</em> is created with
<strong>clCreateProgramWithBinary</strong> and the program executable is built with the
-cl-kernel-arg-info and --x spir options specified in <em>options</em> argument to
<strong>clBuildProgram</strong> or <strong>clCompileProgram</strong>.&#8221;</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_icd-opencl">14. OpenCL Installable Client Driver (ICD)</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="cl_khr_icd-overview">14.1. Overview</h3>
<div class="paragraph">
<p>This section describes a platform extension which defines a simple mechanism
through which the Khronos OpenCL installable client driver loader (ICD
Loader) may expose multiple separate vendor installable client drivers
(Vendor ICDs) for OpenCL.
An application written against the ICD Loader will be able to access all
cl_platform_ids exposed by all vendor implementations with the ICD Loader
acting as a demultiplexor.</p>
</div>
<div class="paragraph">
<p>This is a platform extension, so if this extension is supported by an
implementation, the string <strong>cl_khr_icd</strong> will be present in the
<code>CL_PLATFORM_EXTENSIONS</code> string.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-inferring-vendors-from-function-call-arguments">14.2. Inferring Vendors from Function Call Arguments</h3>
<div class="paragraph">
<p>At every OpenCL function call, the ICD Loader infers the vendor ICD function
to call from the arguments to the function.
An object is said to be ICD compatible if it is of the following structure:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>struct _cl_&lt;object&gt;
{
    struct _cl_icd_dispatch *dispatch;
    // ... remainder of internal data
};</code></pre>
</div>
</div>
<div class="paragraph">
<p>&lt;object&gt; is one of platform_id, device_id, context, command_queue, mem,
program, kernel, event, or sampler.</p>
</div>
<div class="paragraph">
<p>The structure <code>_cl_icd_dispatch</code> is a function pointer dispatch table which
is used to direct calls to a particular vendor implementation.
All objects created from ICD compatible objects must be ICD compatible.</p>
</div>
<div class="paragraph">
<p>The order of the functions in <code>_cl_icd_dispatch</code> is determined by the ICD
Loader&#8217;s source.
The ICD Loader&#8217;s source&#8217;s <code>_cl_icd_dispatch</code> table is to be appended to
only.</p>
</div>
<div class="paragraph">
<p>Functions which do not have an argument from which the vendor implementation
may be inferred have been deprecated and may be ignored.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-icd-data">14.3. ICD Data</h3>
<div class="paragraph">
<p>A Vendor ICD is defined by two pieces of data:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The Vendor ICD library specifies a library which contains the OpenCL
entry points for the vendor&#8217;s OpenCL implementation.
The vendor ICD&#8217;s library file name should include the vendor name, or a
vendor-specific implementation identifier.</p>
</li>
<li>
<p>The Vendor ICD extension suffix is a short string which specifies the
default suffix for extensions implemented only by that vendor.
The vendor suffix string is optional.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-icd-loader-vendor-enumeration-on-windows">14.4. ICD Loader Vendor Enumeration on Windows</h3>
<div class="paragraph">
<p>To enumerate Vendor ICDs on Windows, the ICD Loader will first
scan for REG_SZ string values in the "Display Adapter" and
"Software Components" HKR registry keys.  The exact registry
keys to scan should be obtained via PnP Configuration Manager
APIs, but will look like:</p>
</div>
<div class="paragraph">
<p>For 64-bit ICDs:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>HKLM\SYSTEM\CurrentControlSet\Control\Class\
{Display Adapter GUID}\{Instance ID}\OpenCLDriverName, or

HKLM\SYSTEM\CurrentControlSet\Control\Class\
{Software Component GUID}\{Instance ID}\OpenCLDriverName</pre>
</div>
</div>
<div class="paragraph">
<p>For 32-bit ICDs:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>HKLM\SYSTEM\CurrentControlSet\Control\Class\
{Display Adapter GUID}\{Instance ID}\OpenCLDriverNameWoW, or

HKLM\SYSTEM\CurrentControlSet\Control\Class\
{Software Component GUID}\{Instance ID}\OpenCLDriverNameWoW</pre>
</div>
</div>
<div class="paragraph">
<p>These registry values contain the path to the Vendor ICD library.
For example, if the registry contains the value:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>[HKLM\SYSTEM\CurrentControlSet\Control\Class\{GUID}\{Instance}]
"OpenCLDriverName"="c:\\vendor a\\vndra_ocl.dll"</pre>
</div>
</div>
<div class="paragraph">
<p>Then the ICD Loader will open the Vendor ICD library:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>c:\vendor a\vndra_ocl.dll</pre>
</div>
</div>
<div class="paragraph">
<p>The ICD Loader will also scan for REG_DWORD values in the registry
key:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>HKLM\SOFTWARE\Khronos\OpenCL\Vendors</pre>
</div>
</div>
<div class="paragraph">
<p>For each registry value in this key which has data set to 0, the
ICD Loader will open the Vendor ICD library specified by the name
of the registry value.</p>
</div>
<div class="paragraph">
<p>For example, if the registry contains the value:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>[HKLM\SOFTWARE\Khronos\OpenCL\Vendors]
"c:\\vendor a\\vndra_ocl.dll"=dword:00000000</pre>
</div>
</div>
<div class="paragraph">
<p>Then the ICD will open the Vendor ICD library:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>c:\vendor a\vndra_ocl.dll</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-icd-loader-vendor-enumeration-on-linux">14.5. ICD Loader Vendor Enumeration on Linux</h3>
<div class="paragraph">
<p>To enumerate vendor ICDs on Linux, the ICD Loader scans the files in the
path <code>/etc/OpenCL/vendors</code>.
For each file in this path, the ICD Loader opens the file as a text file.
The expected format for the file is a single line of text which specifies
the Vendor ICD&#8217;s library.
The ICD Loader will attempt to open that file as a shared object using
dlopen().
Note that the library specified may be an absolute path or just a file name.</p>
</div>
<div class="paragraph">
<p>For example, if the following file exists</p>
</div>
<div class="listingblock">
<div class="content">
<pre>/etc/OpenCL/vendors/VendorA.icd</pre>
</div>
</div>
<div class="paragraph">
<p>and contains the text</p>
</div>
<div class="listingblock">
<div class="content">
<pre>libVendorAOpenCL.so</pre>
</div>
</div>
<div class="paragraph">
<p>then the ICD Loader will load the library <code>libVendorAOpenCL.so</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-icd-loader-vendor-enumeration-on-android">14.6. ICD Loader Vendor Enumeration on Android</h3>
<div class="paragraph">
<p>To enumerate vendor ICDs on Android, the ICD Loader scans the files in the
path <code>/system/vendor/Khronos/OpenCL/vendors</code>.
For each file in this path, the ICD Loader opens the file as a text file.
The expected format for the file is a single line of text which specifies
the Vendor ICD&#8217;s library.
The ICD Loader will attempt to open that file as a shared object using
dlopen().
Note that the library specified may be an absolute path or just a file name.</p>
</div>
<div class="paragraph">
<p>For example, if the following file exists</p>
</div>
<div class="listingblock">
<div class="content">
<pre>/system/vendor/Khronos/OpenCL/vendors/VendorA.icd</pre>
</div>
</div>
<div class="paragraph">
<p>and contains the text</p>
</div>
<div class="listingblock">
<div class="content">
<pre>libVendorAOpenCL.so</pre>
</div>
</div>
<div class="paragraph">
<p>then the ICD Loader will load the library <code>libVendorAOpenCL.so</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-adding-a-vendor-library">14.7. Adding a Vendor Library</h3>
<div class="paragraph">
<p>Upon successfully loading a Vendor ICD&#8217;s library, the ICD Loader queries the
following functions from the library: <strong>clIcdGetPlatformIDsKHR</strong>,
<strong>clGetPlatformInfo</strong>, and <strong>clGetExtensionFunctionAddress</strong> (note:
<strong>clGetExtensionFunctionAddress</strong> has been deprecated, but is still required
for the ICD loader).
If any of these functions are not present then the ICD Loader will close and
ignore the library.</p>
</div>
<div class="paragraph">
<p>Next the ICD Loader queries available ICD-enabled platforms in the library
using <strong>clIcdGetPlatformIDsKHR</strong>.
For each of these platforms, the ICD Loader queries the platform&#8217;s extension
string to verify that <strong>cl_khr_icd</strong> is supported, then queries the platform&#8217;s
Vendor ICD extension suffix using <strong>clGetPlatformInfo</strong> with the value
CL_PLATFORM_ICD_SUFFIX_KHR.</p>
</div>
<div class="paragraph">
<p>If any of these steps fail, the ICD Loader will ignore the Vendor ICD and
continue on to the next.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-new-procedures-and-functions">14.8. New Procedures and Functions</h3>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clIcdGetPlatformIDsKHR(cl_uint num_entries,
                              cl_platform_id *platforms,
                              cl_uint *num_platforms);</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-new-tokens">14.9. New Tokens</h3>
<div class="paragraph">
<p>Accepted as <em>param_name</em> to the function <strong>clGetPlatformInfo</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_PLATFORM_ICD_SUFFIX_KHR  0x0920</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clGetPlatformIDs</strong> when no platforms are found:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_PLATFORM_NOT_FOUND_KHR   -1001</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-additions-to-chapter-4">14.10. Additions to Chapter 4 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>In <em>section 4.1</em>, replace the description of the return values of
<strong>clGetPlatformIDs</strong> with:</p>
</div>
<div class="paragraph">
<p>"clGetPlatformIDs* returns CL_SUCCESS if the function is executed
successfully and there are a non zero number of platforms available.
It returns CL_PLATFORM_NOT_FOUND_KHR if zero platforms are available.
It returns CL_INVALID_VALUE if <em>num_entries</em> is equal to zero and
<em>platforms</em> is not <code>NULL</code> or if both <em>num_platforms</em> and <em>platforms</em> are
<code>NULL</code>."</p>
</div>
<div class="paragraph">
<p>In <em>section 4.1</em>, add the following after the description of
<strong>clGetPlatformIDs</strong>:</p>
</div>
<div class="paragraph">
<p>"The list of platforms accessible through the Khronos ICD Loader can be
obtained using the following function:
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clIcdGetPlatformIDsKHR(cl_uint num_entries,
                              cl_platform_id *platforms,
                              cl_uint *num_platforms);</code></pre>
</div>
</div>
<div class="paragraph">
<p><em>num_entries</em> is the number of cl_platform_id entries that can be added to
<em>platforms</em>.
If <em>platforms</em> is not <code>NULL</code>, then <em>num_entries</em> must be greater than zero.</p>
</div>
<div class="paragraph">
<p><em>platforms</em> returns a list of OpenCL platforms available for access through
the Khronos ICD Loader.
The cl_platform_id values returned in <em>platforms</em> are ICD compatible and can
be used to identify a specific OpenCL platform.
If the <em>platforms</em> argument is <code>NULL</code>, then this argument is ignored.
The number of OpenCL platforms returned is the minimum of the value
specified by <em>num_entries</em> or the number of OpenCL platforms available.</p>
</div>
<div class="paragraph">
<p><em>num_platforms</em> returns the number of OpenCL platforms available.
If <em>num_platforms</em> is <code>NULL</code>, then this argument is ignored.</p>
</div>
<div class="paragraph">
<p><strong>clIcdGetPlatformIDsKHR</strong> returns CL_SUCCESS if the function is executed
successfully and there are a non zero number of platforms available.
It returns CL_PLATFORM_NOT_FOUND_KHR if zero platforms are available.
It returns CL_INVALID_VALUE if <em>num_entries</em> is equal to zero and
<em>platforms</em> is not <code>NULL</code> or if both <em>num_platforms</em> and <em>platforms</em> are
<code>NULL</code>."</p>
</div>
<div class="paragraph">
<p>Add the following to <em>table 4.1</em>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 40%;">
<col style="width: 20%;">
<col style="width: 40%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_platform_info enum</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_PLATFORM_ICD_SUFFIX_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">char[]</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The function name suffix used to identify extension functions to be
  directed to this platform by the ICD Loader.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-source-code">14.11. Source Code</h3>
<div class="paragraph">
<p>The official source for the ICD loader is available on github, at:</p>
</div>
<div class="paragraph">
<p><a href="https://github.com/KhronosGroup/OpenCL-ICD-Loader" class="bare">https://github.com/KhronosGroup/OpenCL-ICD-Loader</a></p>
</div>
<div class="paragraph">
<p>The complete <code>_cl_icd_dispatch</code> structure is defined in the header
<strong>icd_dispatch.h</strong>, which is available as a part of the source code.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_icd-issues">14.12. Issues</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Some OpenCL functions do not take an object argument from which their
vendor library may be identified (e.g, clUnloadCompiler), how will they
be handled?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: Such functions will be a noop for all calls through the ICD.</p>
</div>
</div>
</div>
</li>
<li>
<p>How are OpenCL extension to be handled?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: OpenCL extension functions may be added to the ICD as soon as they
are implemented by any vendor.
The suffix mechanism provides access for vendor extensions which are not yet
added to the ICD.</p>
</div>
</div>
</div>
</li>
<li>
<p>How will the ICD handle a <code>NULL</code> cl_platform_id?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: The ICD will by default choose the first enumerated platform as
the <code>NULL</code> platform.
The user can override this default by setting an environment variable
OPENCL_ICD_DEFAULT_PLATFORM to the desired platform index.
The API calls that deal with platforms will return CL_INVALID_PLATFORM if
the index is not between zero and (number of platforms - 1), both inclusive.</p>
</div>
</div>
</div>
</li>
<li>
<p>There exists no mechanism to unload the ICD, should there be one?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: As there is no standard mechanism for unloading a vendor
implementation, do not add one for the ICD.</p>
</div>
</div>
</div>
</li>
<li>
<p>How will the ICD loader handle <code>NULL</code> objects passed to the OpenCL
functions?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: The ICD loader will check for <code>NULL</code> objects passed to the OpenCL
functions without trying to dereference the <code>NULL</code> objects for obtaining the
ICD dispatch table.
On detecting a <code>NULL</code> object it will return one of the CL_INVALID_* error
values corresponding to the object in question.</p>
</div>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_subgroups">15. Subgroups</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes the <strong>cl_khr_subgroups</strong> extension.</p>
</div>
<div class="paragraph">
<p>This extension adds support for implementation-controlled groups of work
items, known as subgroups.
Subgroups behave similarly to work groups and have their own sets of
builtins and synchronization primitives, but subgroups within a work group
are independent, may make forward progress with respect to each other, and
may map to optimized hardware structures where that makes sense.</p>
</div>
<div class="paragraph">
<p>Subgroups became a core feature in OpenCL 2.1, so this section only
describes changes to the OpenCL 2.0 C specification.
Please refer to the OpenCL API specification for descriptions of the
subgroups APIs, to the SPIR-V specification for information about using
subgroups in the SPIR-V intermediate representation, and to the OpenCL C++
specification for descriptions of OpenCL C++ subgroup built-in functions.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_subgroups-additions-to-chapter-6-of-the-opencl-2.0-specification">15.1. Additions to Chapter 6 of the OpenCL 2.0 C Specification</h3>
<div class="sect3">
<h4 id="cl_khr_subgroups-additions-to-section-6.13.1-work-item-functions">15.1.1. Additions to section 6.13.1&#8201;&#8212;&#8201;Work Item Functions</h4>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>uint <strong>get_sub_group_size</strong> ()</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the number of work items in the subgroup.
  This value is no more than the maximum subgroup size and is
  implementation-defined based on a combination of the compiled kernel and
  the dispatch dimensions.
  This will be a constant value for the lifetime of the subgroup.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>uint <strong>get_max_sub_group_size</strong> ()</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the maximum size of a subgroup within the dispatch.
  This value will be invariant for a given set of dispatch dimensions and a
  kernel object compiled for a given device.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>uint <strong>get_num_sub_groups</strong> ()</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the number of subgroups that the current work group is divided
  into.</p>
<p class="tableblock">  This number will be constant for the duration of a work group&#8217;s execution.
  If the kernel is executed with a non-uniform work group size
  (i.e. the global_work_size values specified to <strong>clEnqueueNDRangeKernel</strong>
  are not evenly divisible by the local_work_size values for any dimension,
  calls to this built-in from some work groups may return different values
  than calls to this built-in from other work groups.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>uint <strong>get_enqueued_num_sub_groups</strong> ()</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the same value as that returned by <strong>get_num_sub_groups</strong> if the
  kernel is executed with a uniform work group size.</p>
<p class="tableblock">  If the kernel is executed with a non-uniform work group size, returns the
  number of subgroups in each of the work groups that make up the uniform
  region of the global range.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>uint <strong>get_sub_group_id</strong> ()</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>get_sub_group_id</strong> returns the subgroup ID which is a number from 0 ..
  <strong>get_num_sub_groups</strong>() - 1.</p>
<p class="tableblock">  For <strong>clEnqueueTask</strong>, this returns 0.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div><div class="paragraph">
<p>uint <strong>get_sub_group_local_id</strong> ()</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the unique work item ID within the current subgroup.
  The mapping from <strong>get_local_id</strong>(<em>dimindx</em>) to <strong>get_sub_group_local_id</strong>
  will be invariant for the lifetime of the work group.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_subgroups-additions-to-section-6.13.8-synchronization-functions">15.1.2. Additions to section 6.13.8&#8201;&#8212;&#8201;Synchronization Functions</h4>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>sub_group_barrier</strong> (<br>
  cl_mem_fence_flags <em>flags</em>)</p>
<p class="tableblock">  void <strong>sub_group_barrier</strong> (<br>
  cl_mem_fence_flags <em>flags</em>, memory_scope <em>scope</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">All work items in a subgroup executing the kernel on a processor must
  execute this function before any are allowed to continue execution beyond
  the subgroup barrier.
  This function must be encountered by all work items in a subgroup
  executing the kernel.
  These rules apply to ND-ranges implemented with uniform and non-uniform
  work groups.</p>
<p class="tableblock">  If <strong>subgroup_barrier</strong> is inside a conditional statement, then all work
  items within the subgroup must enter the conditional if any work item in
  the subgroup enters the conditional statement and executes the
  subgroup_barrier.</p>
<p class="tableblock">  If <strong>subgroup_barrier</strong> is inside a loop, all work items within the subgroup
  must execute the subgroup_barrier for each iteration of the loop before
  any are allowed to continue execution beyond the subgroup_barrier.</p>
<p class="tableblock">  The <strong>subgroup_barrier</strong> function also queues a memory fence (reads and
  writes) to ensure correct ordering of memory operations to local or global
  memory.</p>
<p class="tableblock">  The flags argument specifies the memory address space and can be set to a
  combination of the following values:</p>
<p class="tableblock">  CLK_LOCAL_MEM_FENCE - The <strong>subgroup_barrier</strong> function will either flush
  any variables stored in local memory or queue a memory fence to ensure
  correct ordering of memory operations to local memory.</p>
<p class="tableblock">  CLK_GLOBAL_MEM_FENCE&#8201;&#8212;&#8201;The <strong>subgroup_barrier</strong> function will queue a
  memory fence to ensure correct ordering of memory operations to global
  memory.
  This can be useful when work items, for example, write to buffer objects
  and then want to read the updated data from these buffer objects.</p>
<p class="tableblock">  CLK_IMAGE_MEM_FENCE&#8201;&#8212;&#8201;The <strong>subgroup_barrier</strong> function will queue a memory
  fence to ensure correct ordering of memory operations to image objects.
  This can be useful when work items, for example, write to image objects
  and then want to read the updated data from these image objects.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_subgroups-additions-to-section-6.13.11-atomic-functions">15.1.3. Additions to section 6.13.11&#8201;&#8212;&#8201;Atomic Functions</h4>
<div class="paragraph">
<p>Add the following new value to the enumerated type <code>memory_scope</code> defined in
<em>section 6.13.11.4</em>.</p>
</div>
<div class="listingblock">
<div class="content">
<pre>memory_scope_sub_group</pre>
</div>
</div>
<div class="paragraph">
<p>The <code>memory_scope_sub_group</code> specifies that the memory ordering constraints
given by <code>memory_order</code> apply to work items in a subgroup.
This memory scope can be used when performing atomic operations to global or
local memory.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_subgroups-additions-to-section-6.13.15-work-group-functions">15.1.4. Additions to section 6.13.15&#8201;&#8212;&#8201;Work Group Functions</h4>
<div class="paragraph">
<p>The OpenCL C programming language implements the following built-in
functions that operate on a subgroup level.
These built-in functions must be encountered by all work items in a subgroup
executing the kernel.
We use the generic type name <code>gentype</code> to indicate the built-in data types
<code>half</code> (only if the <strong>cl_khr_fp16</strong> extension is supported), <code>int</code>,
<code>uint</code>, <code>long</code>, <code>ulong</code>, <code>float</code> or <code>double</code> (only if double
precision is supported) as the type for the arguments.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>sub_group_all</strong> (int <em>predicate</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Evaluates <em>predicate</em> for all work items in the subgroup and returns a
  non-zero value if <em>predicate</em> evaluates to non-zero for all work items in
  the subgroup.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int <strong>sub_group_any</strong> (int <em>predicate</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Evaluates <em>predicate</em> for all work items in the subgroup and returns a
  non-zero value if <em>predicate</em> evaluates to non-zero for any work items in
  the subgroup.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sub_group_broadcast</strong> (<br>
  gentype <em>x</em>, uint <em>sub_group_local_id</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Broadcast the value of <em>x</em> for work item identified by
  <em>sub_group_local_id</em> (value returned by <strong>get_sub_group_local_id</strong>) to all
  work items in the subgroup.</p>
<p class="tableblock">  <em>sub_group_local_id</em> must be the same value for all work items in the
  subgroup.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sub_group_reduce_&lt;op&gt;</strong> (<br>
  gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Return result of reduction operation specified by <strong>&lt;op&gt;</strong> for all values of
  <em>x</em> specified by work items in a subgroup.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sub_group_scan_exclusive_&lt;op&gt;</strong> (<br>
  gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Do an exclusive scan operation specified by <strong>&lt;op&gt;</strong> of all values specified
  by work items in a subgroup.
  The scan results are returned for each work item.</p>
<p class="tableblock">  The scan order is defined by increasing 1D linear global ID within the
  subgroup.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gentype <strong>sub_group_scan_inclusive_&lt;op&gt;</strong> (<br>
  gentype <em>x</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Do an inclusive scan operation specified by <strong>&lt;op&gt;</strong> of all values specified
  by work items in a subgroup.
  The scan results are returned for each work item.</p>
<p class="tableblock">  The scan order is defined by increasing 1D linear global ID within the
  subgroup.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect3">
<h4 id="cl_khr_subgroups-additions-to-section-6.13.16-pipe-functions">15.1.5. Additions to section 6.13.16&#8201;&#8212;&#8201;Pipe Functions</h4>
<div class="paragraph">
<p>The OpenCL C programming language implements the following built-in pipe
functions that operate at a subgroup level.
These built-in functions must be encountered by all work items in a subgroup
executing the kernel with the same argument values; otherwise the behavior
is undefined.
We use the generic type name <code>gentype</code> to indicate the built-in OpenCL C
scalar or vector integer or floating-point data types or any user defined
type built from these scalar and vector data types can be used as the type
for the arguments to the pipe functions listed in <em>table 6.29</em>.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">reserve_id_t <strong>sub_group_reserve_read_pipe</strong> (<br>
  read_only pipe gentype <em>pipe</em>,<br>
  uint <em>num_packets</em>)</p>
<p class="tableblock">  reserve_id_t <strong>sub_group_reserve_write_pipe</strong> (<br>
  write_only pipe gentype <em>pipe</em>,<br>
  uint <em>num_packets</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Reserve <em>num_packets</em> entries for reading from or writing to <em>pipe</em>.
  Returns a valid non-zero reservation ID if the reservation is successful
  and 0 otherwise.</p>
<p class="tableblock">  The reserved pipe entries are referred to by indices that go from 0 &#8230;&#8203;
  <em>num_packets</em> - 1.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">void <strong>sub_group_commit_read_pipe</strong> (<br>
  read_only pipe gentype <em>pipe</em>,<br>
  reserve_id_t <em>reserve_id</em>)</p>
<p class="tableblock">  void <strong>sub_group_commit_write_pipe</strong> (<br>
  write_only pipe gentype <em>pipe</em>,<br>
  reserve_id_t <em>reserve_id</em>)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Indicates that all reads and writes to <em>num_packets</em> associated with
  reservation <em>reserve_id</em> are completed.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Note: Reservations made by a subgroup are ordered in the pipe as they are
ordered in the program.
Reservations made by different subgroups that belong to the same work group
can be ordered using subgroup synchronization.
The order of subgroup based reservations that belong to different work
groups is implementation defined.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_subgroups-additions-to-section-6.13.17.6-enqueuing-kernels-kernel-query-functions">15.1.6. Additions to section 6.13.17.6&#8201;&#8212;&#8201;Enqueuing Kernels (Kernel Query Functions)</h4>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 55.5555%;">
<col style="width: 44.4445%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>Built-in Function</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">uint <strong>get_kernel_sub_group_count_for_ndrange</strong> (<br>
  const ndrange_t <em>ndrange</em>,<br>
  void (^block)(void));</p>
<p class="tableblock">  uint <strong>get_kernel_sub_group_count_for_ndrange</strong> (<br>
  const ndrange_t <em>ndrange</em>,<br>
  void (^block)(local void *, &#8230;&#8203;));</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the number of subgroups in each work group of the dispatch (except
  for the last in cases where the global size does not divide cleanly into
  work groups) given the combination of the passed ndrange and block.</p>
<p class="tableblock">  <em>block</em> specifies the block to be enqueued.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">uint <strong>get_kernel_max_sub_group_size_for_ndrange</strong> (<br>
  const ndrange_t <em>ndrange</em>,<br>
  void (^block)(void));<br></p>
<p class="tableblock">  uint <strong>get_kernel_max_sub_group_size_for_ndrange</strong> (<br>
  const ndrange_t <em>ndrange</em>,<br>
  void (^block)(local void *, &#8230;&#8203;));</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Returns the maximum subgroup size for a block.</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_mipmap_image">16. Mipmaps</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes OpenCL support for mipmaps.</p>
</div>
<div class="paragraph">
<p>There are two optional mipmap extensions.
The <strong>cl_khr_mipmap_image</strong> extension adds the ability to create a mip-mapped
image, enqueue commands to read/write/copy/map/unmap a region of a mipmapped
image, and built-in functions that can be used to read a mip-mapped image in
an OpenCL C program.
The <strong>cl_khr_mipmap_image_writes</strong> extension adds built-in functions that can
be used to write a mip-mapped image in an OpenCL C program.
If the <strong>cl_khr_mipmap_image_writes</strong> extension is supported by the OpenCL
device, the <strong>cl_khr_mipmap_image</strong> extension must also be supported.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_mipmap_image-additions-to-chapter-5">16.1. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="sect3">
<h4 id="cl_khr_mipmap_image-additions-to-section-5.3">16.1.1. Additions to section 5.3&#8201;&#8212;&#8201;Image Objects</h4>
<div class="paragraph">
<p>A mip-mapped 1D image, 1D image array, 2D image, 2D image array or 3D image
is created by specifying <em>num_mip_levels</em> to be a value greater than one in
the <em>cl_image_desc</em> passed to <strong>clCreateImage</strong>.
The dimensions of a mip-mapped image can be a power of two or a non-power of
two.
Each successively smaller mipmap level is half the size of the previous
level.
If this half value is a fractional value, it is rounded down to the nearest
integer.</p>
</div>
<div class="paragraph">
<p><strong>Restrictions</strong></p>
</div>
<div class="paragraph">
<p>The following restrictions apply when mip-mapped images are created with
<strong>clCreateImage</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_MEM_USE_HOST_PTR or CL_MEM_COPY_HOST_PTR cannot be specified if a
mip-mapped image is created.</p>
</li>
<li>
<p>The <em>host_ptr</em> argument to <strong>clCreateImage</strong> must be a <code>NULL</code> value.</p>
</li>
<li>
<p>Mip-mapped images cannot be created for CL_MEM_OBJECT_IMAGE1D_BUFFER
images, depth images or multi-sampled (i.e. msaa) images.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Calls to <strong>clEnqueueReadImage</strong>, <strong>clEnqueueWriteImage</strong> and <strong>clEnqueueMapImage</strong>
can be used to read from or write to a specific mip-level of a mip-mapped
image.
If image argument is a 1D image, <em>origin</em>[1] specifies the mip-level to use.
If image argument is a 1D image array, <em>origin</em>[2] specifies the mip-level
to use.
If image argument is a 2D image, <em>origin</em>[2] specifies the mip-level to use.
If image argument is a 2D image array or a 3D image, <em>origin</em>[3] specifies
the mip-level to use.</p>
</div>
<div class="paragraph">
<p>Calls to <strong>clEnqueueCopyImage</strong>, <strong>clEnqueueCopyImageToBuffer</strong> and
<strong>clEnqueueCopyBufferToImage</strong> can also be used to copy from and to a specific
mip-level of a mip-mapped image.
If <em>src_image</em> argument is a 1D image, <em>src_origin</em>[1] specifies the
mip-level to use.
If <em>src_image</em> argument is a 1D image array, <em>src_origin</em>[2] specifies the
mip-level to use.
If <em>src_image</em> argument is a 2D image, <em>src_origin</em>[2] specifies the
mip-level to use.
If <em>src_image</em> argument is a 2D image array or a 3D image, <em>src_origin</em>[3]
specifies the mip-level to use.
If <em>dst_image</em> argument is a 1D image, <em>dst_origin</em>[1] specifies the
mip-level to use.
If <em>dst_image</em> argument is a 1D image array, <em>dst_origin</em>[2] specifies the
mip-level to use.
If <em>dst_image</em> argument is a 2D image, <em>dst_origin</em>[2] specifies the
mip-level to use.
If <em>dst_image</em> argument is a 2D image array or a 3D image, <em>dst_origin</em>[3]
specifies the mip-level to use.</p>
</div>
<div class="paragraph">
<p>If the mip level specified is not a valid value, these functions return the
error CL_INVALID_MIP_LEVEL.</p>
</div>
<div class="paragraph">
<p>Calls to clEnqueueFillImage can be used to write to a specific mip-level of
a mip-mapped image.
If image argument is a 1D image, origin[1] specifies the mip-level to use.
If image argument is a 1D image array, origin[2] specifies the mip-level to
use.
If image argument is a 2D image, origin[2] specifies the mip-level to use.
If image argument is a 2D image array or a 3D image, origin[3] specifies the
mip-level to use.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_mipmap_image-additions-to-section-5.7">16.1.2. Additions to section 5.7&#8201;&#8212;&#8201;Sampler Objects</h4>
<div class="paragraph">
<p>Add the following sampler properties <em>to table 5.14</em> that can be specified
when a sampler object is created using <strong>clCreateSamplerWithProperties</strong>.</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 50%;">
<col style="width: 16.6666%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_sampler_properties enum</strong></th>
<th class="tableblock halign-left valign-top"><strong>Property Value</strong></th>
<th class="tableblock halign-left valign-top"><strong>Default Value</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_SAMPLER_MIP_FILTER_MODE_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">cl_filter_mode</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CL_FILTER_NEAREST</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_SAMPLER_LOD_MIN_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">cl_float</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">0.0f</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_SAMPLER_LOD_MAX_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">cl_float</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MAXFLOAT</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Note: The sampler properties CL_SAMPLER_MIP_FILTER_MODE_KHR,
CL_SAMPLER_LOD_MIN_KHR and CL_SAMPLER_LOD_MAX_KHR cannot be specified with
any samplers initialized in the OpenCL program source.
Only the default values for these properties will be used.
To create a sampler with specific values for these properties, a sampler
object must be created with <strong>clCreateSamplerWithProperties</strong> and passed as an
argument to a kernel.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_mipmap_image-additions-to-creating-opencl-memory-objects-from-opengl-objects">16.2. Additions to <a href="#cl_khr_gl_sharing__memobjs">Creating OpenCL Memory Objects from OpenGL Objects</a></h3>
<div class="paragraph">
<p>If both the <strong><code>cl_khr_mipmap_image</code></strong> and <strong><code>cl_khr_gl_sharing</code></strong> extensions are
supported by the OpenCL device, the <strong><code>cl_khr_gl_sharing</code></strong> extension may also
be used to create a mipmapped OpenCL image from a mipmapped OpenGL texture.</p>
</div>
<div class="paragraph">
<p>To create a mipmapped OpenCL image from a mipmapped OpenGL texture, pass a
negative value as the <em>miplevel</em> argument to <strong>clCreateFromGLTexture</strong>.
If <em>miplevel</em> is a negative value then an OpenCL mipmapped image object is
created from a mipmapped OpenGL texture object, instead of an OpenCL image
object for a specific miplevel of the OpenGL texture.</p>
</div>
<div class="paragraph">
<p>Note: For a detailed description of how the level of detail is computed,
please refer to <em>section 3.9.7</em> of the OpenGL 3.0 specification.</p>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_egl_image">17. Creating OpenCL Memory Objects from EGL Images</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="cl_khr_egl_image-overview">17.1. Overview</h3>
<div class="paragraph">
<p>This section describes the <strong>cl_khr_egl_image</strong> extension.
This extension provides a mechanism to creating OpenCL memory objects from
from EGLImages.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_egl_image-new-procedures-and-functions">17.2. New Procedures and Functions</h3>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromEGLImageKHR(cl_context context,
                               CLeglDisplayKHR display,
                               CLeglImageKHR image,
                               cl_mem_flags flags,
                               const cl_egl_image_properties_khr *properties,
                               cl_int *errcode_ret);

cl_int clEnqueueAcquireEGLObjectsKHR(cl_command_queue command_queue,
                                     cl_uint num_objects,
                                     const cl_mem *mem_objects,
                                     cl_uint num_events_in_wait_list,
                                     const cl_event *event_wait_list,
                                     cl_event *event)

cl_int clEnqueueReleaseEGLObjectsKHR(cl_command_queue command_queue,
                                     cl_uint num_objects,
                                     const cl_mem *mem_objects,
                                     cl_uint num_events_in_wait_list,
                                     const cl_event *event_wait_list,
                                     cl_event *event)</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_egl_image-new-tokens">17.3. New Tokens</h3>
<div class="paragraph">
<p>New error codes:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_EGL_RESOURCE_NOT_ACQUIRED_KHR    -1092
CL_INVALID_EGL_OBJECT_KHR           -1093</pre>
</div>
</div>
<div class="paragraph">
<p>New command types:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR  0x202D
CL_COMMAND_RELEASE_EGL_OBJECTS_KHR  0x202E</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_egl_image-additions-to-chapter-5">17.4. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>In section 5.2.4, add the following text after the paragraph defining
clCreateImage:</p>
</div>
<div class="paragraph">
<p>"`The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_mem clCreateFromEGLImageKHR(cl_context context,
                               CLeglDisplayKHR display,
                               CLeglImageKHR image,
                               cl_mem_flags flags,
                               const cl_egl_image_properties_khr *properties,
                               cl_int *errcode_ret);</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates an EGLImage target of type cl_mem from the EGLImage source provided
as <em>image</em>.</p>
</div>
<div class="paragraph">
<p><em>display</em> should be of type EGLDisplay, cast into the type CLeglDisplayKHR.</p>
</div>
<div class="paragraph">
<p><em>image</em> should be of type EGLImageKHR, cast into the type CLeglImageKHR.
Assuming no errors are generated in this function, the resulting image
object will be an EGLImage target of the specified EGLImage <em>image</em>.
The resulting cl_mem is an image object which may be used normally by all
OpenCL operations.
This maps to an image2d_t type in OpenCL kernel code.</p>
</div>
<div class="paragraph">
<p><em>flags</em> is a bit-field that is used to specify usage information about the
memory object being created.</p>
</div>
<div class="paragraph">
<p>The possible values for <em>flags</em> are: CL_MEM_READ_ONLY, CL_MEM_WRITE_ONLY and
CL_MEM _READ_WRITE.</p>
</div>
<div class="paragraph">
<p>For OpenCL 1.2 <em>flags</em> also accepts: CL_MEM_HOST_WRITE_ONLY,
CL_MEM_HOST_READ_ONLY or CL_MEM_HOST_NO_ACCESS.</p>
</div>
<div class="paragraph">
<p>This extension only requires support for CL_MEM _READ_ONLY, and for OpenCL
1.2 CL_MEM_HOST_NO_ACCESS.
For OpenCL 1.1, a CL_INVALID_OPERATION will be returned for images which do
not support host mapping.</p>
</div>
<div class="paragraph">
<p>If the value passed in <em>flags</em> is not supported by the OpenCL implementation
it will return CL_INVALID_VALUE.
The accepted <em>flags</em> may be dependent upon the texture format used.</p>
</div>
<div class="paragraph">
<p><em>properties</em> specifies a list of property names and their corresponding
values.
Each property name is immediately followed by the corresponding desired
value.
The list is terminated with 0.
No properties are currently supported with this version of the extension.
<em>properties</em> can be <code>NULL</code>.</p>
</div>
<div class="paragraph">
<p><strong>clCreateFromEGLImageKHR</strong> returns a valid non-zero OpenCL image object and
<em>errcode_ret</em> is set to CL_SUCCESS if the image object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid OpenCL context.</p>
</li>
<li>
<p>CL_INVALID_VALUE if <em>properties</em> contains invalid values, if <em>display</em>
is not a valid display object or if <em>flags</em> are not in the set defined
above.</p>
</li>
<li>
<p>CL_INVALID_EGL_OBJECT_KHR if <em>image</em> is not a valid EGLImage object.</p>
</li>
<li>
<p>CL_IMAGE_FORMAT_NOT_SUPPORTED if the OpenCL implementation is not able
to create a cl_mem compatible with the provided CLeglImageKHR for an
implementation-dependent reason (this could be caused by, but not
limited to, reasons such as unsupported texture formats, etc).</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_INVALID_OPERATION if there are no devices in <em>context</em> that support
images (i.e. CL_DEVICE_IMAGE_SUPPORT specified in table 4.3 is CL_FALSE)
or if the flags passed are not supported for that image type.`"</p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="cl_khr_egl_image-lifetime-of-shared-objects">17.4.1. Lifetime of Shared Objects</h4>
<div class="paragraph">
<p>An OpenCL memory object created from an EGL image remains valid according to
the lifetime behavior as described in EGL_KHR_image_base.</p>
</div>
<div class="paragraph">
<p>&#8220;Any EGLImage siblings exist in any client API context&#8221;</p>
</div>
<div class="paragraph">
<p>For OpenCL this means that while the application retains a reference on the
cl_mem (the EGL sibling), the image remains valid.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_egl_image-synchronizing-opengl-and-egl-access-to-shared-objects">17.4.2. Synchronizing OpenCL and EGL Access to Shared Objects</h4>
<div class="paragraph">
<p>In order to ensure data integrity, the application is responsible for
synchronizing access to shared CL/EGL objects by their respective APIs.
Failure to provide such synchronization may result in race conditions and
other undefined behavior including non-portability between implementations.</p>
</div>
<div class="paragraph">
<p>Prior to calling clEnqueueAcquireEGLObjectsKHR, the application must ensure
that any pending operations which access the objects specified in
mem_objects have completed.
This may be accomplished in a portable way by ceasing all client operations
on the resource, and issuing and waiting for completion of a glFinish
command on all GL contexts with pending references to these objects.
Implementations may offer more efficient synchronization methods, such as
synchronization primitives or fence operations.</p>
</div>
<div class="paragraph">
<p>Similarly, after calling clEnqueueReleaseEGLImageObjects, the application is
responsible for ensuring that any pending OpenCL operations which access the
objects specified in mem_objects have completed prior to executing
subsequent commands in other APIs which reference these objects.
This may be accomplished in a portable way by calling clWaitForEvents with
the event object returned by clEnqueueReleaseGLObjects, or by calling
clFinish.
As above, some implementations may offer more efficient methods.</p>
</div>
<div class="paragraph">
<p>Attempting to access the data store of an EGLImage object after it has been
acquired by OpenCL and before it has been released will result in undefined
behavior.
Similarly, attempting to access a shared EGLImage object from OpenCL before
it has been acquired by the OpenCL command queue or after it has been
released, will result in undefined behavior.</p>
</div>
</div>
<div class="sect3">
<h4 id="cl_khr_egl_image-sharing-memory-objects-created-from-egl-resources-between-egldisplays-and-opencl-contexts">17.4.3. Sharing memory objects created from EGL resources between EGLDisplays and OpenCL contexts</h4>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clEnqueueAcquireEGLObjectsKHR(cl_command_queue command_queue,
                                     cl_uint num_objects,
                                     const cl_mem *mem_objects,
                                     cl_uint num_events_in_wait_list,
                                     const cl_event *event_wait_list,
                                     cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to acquire OpenCL memory objects that have been created from EGL
resources.
The EGL objects are acquired by the OpenCL context associated with
<em>command_queue</em> and can therefore be used by all command-queues associated
with the OpenCL context.</p>
</div>
<div class="paragraph">
<p>OpenCL memory objects created from EGL resources must be acquired before
they can be used by any OpenCL commands queued to a command-queue.
If an OpenCL memory object created from a EGL resource is used while it is
not currently acquired by OpenCL, the call attempting to use that OpenCL
memory object will return CL_EGL_RESOURCE_NOT_ACQUIRED_KHR.</p>
</div>
<div class="paragraph">
<p><em>command_queue</em> is a valid command-queue.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be acquired in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of OpenCL memory objects that were
created from EGL resources, within the context associate with command_queue.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this particular command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in <em>event_wait_list</em> act as synchronization points.</p>
</div>
<div class="paragraph">
<p><em>event</em> returns an event object that identifies this particular command and
can be used to query or queue a wait for this particular command to
complete.
<em>event</em> can be <code>NULL</code> in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueAcquireEGLObjectsKHR</strong> returns CL_SUCCESS if the function is
executed successfully.
If <em>num_objects</em> is 0 and <em>mem_objects</em> is <code>NULL</code> then the function does
nothing and returns CL_SUCCESS.
Otherwise it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if num_objects &gt; 0 and mem_objects is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects in the context associated with <em>command_queue</em>.</p>
</li>
<li>
<p>CL_INVALID_EGL_OBJECT_KHR if memory objects in <em>mem_objects</em> have not
been created from EGL resources.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em> is 0, or if event objects in <em>event_wait_list</em>
are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_int clEnqueueReleaseEGLObjectsKHR(cl_command_queue command_queue,
                                     cl_uint num_objects,
                                     const cl_mem *mem_objects,
                                     cl_uint num_events_in_wait_list,
                                     const cl_event *event_wait_list,
                                     cl_event *event)</code></pre>
</div>
</div>
<div class="paragraph">
<p>is used to release OpenCL memory objects that have been created from EGL
resources.
The EGL objects are released by the OpenCL context associated with
&lt;command_queue&gt;.</p>
</div>
<div class="paragraph">
<p>OpenCL memory objects created from EGL resources which have been acquired by
OpenCL must be released by OpenCL before they may be accessed by EGL or by
EGL client APIs.
Accessing a EGL resource while its corresponding OpenCL memory object is
acquired is in error and will result in undefined behavior, including but
not limited to possible OpenCL errors, data corruption, and program
termination.</p>
</div>
<div class="paragraph">
<p><em>command_queue</em> is a valid command-queue.</p>
</div>
<div class="paragraph">
<p><em>num_objects</em> is the number of memory objects to be acquired in
<em>mem_objects</em>.</p>
</div>
<div class="paragraph">
<p><em>mem_objects</em> is a pointer to a list of OpenCL memory objects that were
created from EGL resources, within the context associate with command_queue.</p>
</div>
<div class="paragraph">
<p><em>event_wait_list</em> and <em>num_events_in_wait_list</em> specify events that need to
complete before this particular command can be executed.
If <em>event_wait_list</em> is <code>NULL</code>, then this particular command does not wait
on any event to complete.
If <em>event_wait_list</em> is <code>NULL</code>, <em>num_events_in_wait_list</em> must be 0.
If <em>event_wait_list</em> is not <code>NULL</code>, the list of events pointed to by
<em>event_wait_list</em> must be valid and <em>num_events_in_wait_list</em> must be
greater than 0.
The events specified in <em>event_wait_list</em> act as synchronization points.</p>
</div>
<div class="paragraph">
<p><em>event</em> returns an event object that identifies this particular command and
can be used to query or queue a wait for this particular command to
complete.
<em>event</em> can be <code>NULL</code> in which case it will not be possible for the
application to query the status of this command or queue a wait for this
command to complete.</p>
</div>
<div class="paragraph">
<p><strong>clEnqueueReleaseEGLObjectsKHR</strong> returns CL_SUCCESS if the function is
executed successfully.
If <em>num_objects</em> is 0 and <em>mem_objects</em> is <code>NULL</code> then the function does
nothing and returns CL_SUCCESS.
Otherwise it returns one of the following errors:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_VALUE if <em>num_objects</em> is zero and <em>mem_objects</em> is not a
<code>NULL</code> value or if num_objects &gt; 0 and mem_objects is <code>NULL</code>.</p>
</li>
<li>
<p>CL_INVALID_MEM_OBJECT if memory objects in <em>mem_objects</em> are not valid
OpenCL memory objects in the context associated with <em>command_queue</em>.</p>
</li>
<li>
<p>CL_INVALID_EGL_OBJECT_KHR if memory objects in <em>mem_objects</em> have not
been created from EGL resources.</p>
</li>
<li>
<p>CL_INVALID_COMMAND_QUEUE if <em>command_queue</em> is not a valid
command-queue.</p>
</li>
<li>
<p>CL_INVALID_EVENT_WAIT_LIST if <em>event_wait_list</em> is <code>NULL</code> and
<em>num_events_in_wait_list</em> &gt; 0, or <em>event_wait_list</em> is not <code>NULL</code> and
<em>num_events_in_wait_list</em> is 0, or if event objects in <em>event_wait_list</em>
are not valid events.</p>
</li>
<li>
<p>CL_OUT_OF_RESOURCES if there is a failure to allocate resources required
by the OpenCL implementation on the device.</p>
</li>
<li>
<p>CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources
required by the OpenCL implementation on the host.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_egl_image-issues">17.5. Issues</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>This extension does not support reference counting of the images, so the
onus is on the application to behave sensibly and not release the
underlying cl_mem object while the EGLImage is still being used.</p>
</li>
<li>
<p>In order to ensure data integrity, the application is responsible for
synchronizing access to shared CL/EGL image objects by their respective
APIs.
Failure to provide such synchronization may result in race conditions
and other undefined behavior.
This may be accomplished by calling clWaitForEvents with the event
objects returned by any OpenCL commands which use the shared image
object or by calling clFinish.</p>
</li>
<li>
<p>Currently CL_MEM_READ_ONLY is the only supported flag for <em>flags</em>.</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: Implementation will now return an error if writing to a shared
object that is not supported rather than disallowing it entirely.</p>
</div>
</div>
</div>
</li>
<li>
<p>Currently restricted to 2D image objects.</p>
</li>
<li>
<p>What should happen for YUV color-space conversion, multi plane images,
and chroma-siting, and channel mapping?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: YUV is no longer explicitly described in this extension.
Before this removal the behavior was dependent on the platform.
This extension explicitly leaves the YUV layout to the platform and EGLImage
source extension (i.e. is implementation specific).
Colorspace conversion must be applied by the application using a color
conversion matrix.</p>
</div>
<div class="paragraph">
<p>The expected extension path if YUV color-space conversion is to be supported
is to introduce a YUV image type and provide overloaded versions of the
read_image built-in functions.</p>
</div>
<div class="paragraph">
<p>Getting image information for a YUV image should return the original image
size (non quantized size) when all of Y U and V are present in the image.
If the planes have been separated then the actual dimensionality of the
separated plane should be reported.
For example with YUV 4:2:0 (NV12) with a YUV image of 256x256, the Y only
image would return 256x256 whereas the UV only image would return 128x128.</p>
</div>
</div>
</div>
</li>
<li>
<p>Should an attribute list be used instead?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: function has been changed to use an attribute list.</p>
</div>
</div>
</div>
</li>
<li>
<p>What should happen for EGLImage extensions which introduce formats
without a mapping to an OpenCL image channel data type or channel order?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: This extension does not define those formats.
It is expected that as additional EGL extensions are added to create EGL
images from other sources, an extension to CL will be introduced where
needed to represent those image types.</p>
</div>
</div>
</div>
</li>
<li>
<p>What are the guarantees to synchronization behavior provided by the
implementation?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>The basic portable form of synchronization is to use a clFinish, as is the
case for GL interop.
In addition implementations which support the synchronization extensions
cl_khr_egl_event and EGL_KHR_cl_event can interoperate more efficiently as
described in those extensions.</p>
</div>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_egl_event">18. Creating OpenCL Event Objects from EGL Sync Objects</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="cl_khr_egl_event-overview">18.1. Overview</h3>
<div class="paragraph">
<p>This section describes the <strong>cl_khr_egl_event</strong> extension.
This extension allows creating OpenCL event objects linked to EGL fence sync
objects, potentially improving efficiency of sharing images and buffers
between the two APIs.
The companion <strong>EGL_KHR_cl_event</strong> extension provides the complementary
functionality of creating an EGL sync object from an OpenCL event object.</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_egl_event-new-procedures-and-functions">18.2. New Procedures and Functions</h3>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_event clCreateEventFromEGLSyncKHR(cl_context context,
                                     CLeglSyncKHR sync,
                                     CLeglDisplayKHR display,
                                     cl_int *errcode_ret);</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_egl_event-new-tokens">18.3. New Tokens</h3>
<div class="paragraph">
<p>Returned by clCreateEventFromEGLSyncKHR if <em>sync</em> is not a valid EGLSyncKHR
handle created with respect to EGLDisplay <em>display</em>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_INVALID_EGL_OBJECT_KHR               -1093</pre>
</div>
</div>
<div class="paragraph">
<p>Returned by <strong>clGetEventInfo</strong> when <em>param_name</em> is CL_EVENT_COMMAND_TYPE:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR    0x202F</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_egl_event-additions-to-chapter-5">18.4. Additions to Chapter 5 of the OpenCL 2.2 Specification</h3>
<div class="paragraph">
<p>Add following to the fourth paragraph of <em>section 5.11</em> (prior to the
description of <strong>clWaitForEvents</strong>):</p>
</div>
<div class="paragraph">
<p>&#8220;Event objects can also be used to reflect the status of an EGL fence sync
object.
The sync object in turn refers to a fence command executing in an EGL client
API command stream.
This provides another method of coordinating sharing of EGL / EGL client API
objects with OpenCL.
Completion of EGL / EGL client API commands may be determined by placing an
EGL fence command after commands using eglCreateSyncKHR, creating an event
from the resulting EGL sync object using clCreateEventFromEGLSyncKHR and
then specifying it in the <em>event_wait_list</em> of a clEnqueueAcquire***
command.
This method may be considerably more efficient than calling operations like
glFinish, and is referred to as <em>explicit synchronization</em>.
The application is responsible for ensuring the command stream associated
with the EGL fence is flushed to ensure the CL queue is submitted to the
device.
Explicit synchronization is most useful when an EGL client API context bound
to another thread is accessing the memory objects.&#8221;</p>
</div>
<div class="paragraph">
<p>Add CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR to the valid <em>param_value</em> values
returned by <strong>clGetEventInfo</strong> for <em>param_name</em> CL_EVENT_COMMAND_TYPE (in the
third row and third column of <em>table 5.22</em>).</p>
</div>
<div class="paragraph">
<p>Add new <em>subsection 5.11.2</em>:</p>
</div>
<div class="paragraph">
<p>"`<strong>5.11.2 Linking Event Objects to EGL Synchronization Objects</strong></p>
</div>
<div class="paragraph">
<p>An event object may be created by linking to an EGL <strong>sync object</strong>.
Completion of such an event object is equivalent to waiting for completion
of the fence command associated with the linked EGL sync object.</p>
</div>
<div class="paragraph">
<p>The function
</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code>cl_event clCreateEventFromEGLSyncKHR(cl_context context,
                                     CLeglSyncKHR sync,
                                     CLeglDisplayKHR display,
                                     cl_int *errcode_ret)</code></pre>
</div>
</div>
<div class="paragraph">
<p>creates a linked event object.</p>
</div>
<div class="paragraph">
<p><em>context</em> is a valid OpenCL context created from an OpenGL context or share
group, using the <strong>cl_khr_gl_sharing</strong> extension.</p>
</div>
<div class="paragraph">
<p><em>sync</em> is the name of a sync object of type EGL_SYNC_FENCE_KHR created with
respect to EGLDisplay <em>display</em>.</p>
</div>
<div class="paragraph">
<p><strong>clCreateEventFromEGLSyncKHR</strong> returns a valid OpenCL event object and
<em>errcode_ret</em> is set to CL_SUCCESS if the event object is created
successfully.
Otherwise, it returns a <code>NULL</code> value with one of the following error values
returned in <em>errcode_ret</em>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>CL_INVALID_CONTEXT if <em>context</em> is not a valid context, or was not
created from a GL context.</p>
</li>
<li>
<p>CL_INVALID_EGL_OBJECT_KHR if <em>sync</em> is not a valid EGLSyncKHR object of
type EGL_SYNC_FENCE_KHR created with respect to EGLDisplay <em>display</em>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The parameters of an event object linked to an EGL sync object will return
the following values when queried with <strong>clGetEventInfo</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The CL_EVENT_COMMAND_QUEUE of a linked event is <code>NULL</code>, because the
event is not associated with any OpenCL command queue.</p>
</li>
<li>
<p>The CL_EVENT_COMMAND_TYPE of a linked event is
CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR, indicating that the event is
associated with a EGL sync object, rather than an OpenCL command.</p>
</li>
<li>
<p>The CL_EVENT_COMMAND_EXECUTION_STATUS of a linked event is either
CL_SUBMITTED, indicating that the fence command associated with the sync
object has not yet completed, or CL_COMPLETE, indicating that the fence
command has completed.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>clCreateEventFromEGLSyncKHR</strong> performs an implicit <strong>clRetainEvent</strong> on the
returned event object.
Creating a linked event object also places a reference on the linked EGL
sync object.
When the event object is deleted, the reference will be removed from the EGL
sync object.</p>
</div>
<div class="paragraph">
<p>Events returned from <strong>clCreateEventFromEGLSyncKHR</strong> may only be consumed by
<strong>clEnqueueAcquire</strong>*** commands.
Passing such events to any other CL API that enqueues commands will generate
a CL_INVALID_EVENT error.`"</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_egl_event-additions-to-extension-specification">18.5. Additions to the OpenCL Extension Specification</h3>
<div class="paragraph">
<p>Replace the second paragraph of
<a href="#cl_khr_gl_sharing__memobjs-synchronizing-opencl-and-opengl-access-to-shared-objects">Synchronizing OpenCL and OpenGL Access to Shared Objects</a> with:</p>
</div>
<div class="paragraph">
<p>"`Prior to calling <strong>clEnqueueAcquireGLObjects</strong>, the application must ensure
that any pending EGL or EGL client API operations which access the objects
specified in <em>mem_objects</em> have completed.</p>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_egl_event</strong> extension is supported and the EGL context in
question supports fence sync objects, <em>explicit synchronization</em> can be
achieved as set out in <em>section 5.7.1</em>.</p>
</div>
<div class="paragraph">
<p>If the <strong>cl_khr_egl_event</strong> extension is not supported, completion of EGL
client API commands may be determined by issuing and waiting for completion
of commands such as glFinish or vgFinish on all client API contexts with
pending references to these objects.
Some implementations may offer other efficient synchronization methods.
If such methods exist they will be described in platform-specific
documentation.</p>
</div>
<div class="paragraph">
<p>Note that no synchronization methods other than glFinish and vgFinish are
portable between all EGL client API implementations and all OpenCL
implementations.
While this is the only way to ensure completion that is portable to all
platforms, these are expensive operation and their use should be avoided if
the cl_khr_egl_event extension is supported on a platform.`"</p>
</div>
</div>
<div class="sect2">
<h3 id="cl_khr_egl_event-issues">18.6. Issues</h3>
<div class="paragraph">
<p>Most issues are shared with <strong>cl_khr_gl_event</strong> and are resolved as described
in that extension.</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Should we support implicit synchronization?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED: No, as this may be very difficult since the synchronization would
not be with EGL, it would be with currently bound EGL client APIs.
It would be necessary to know which client APIs might be bound, to validate
that they&#8217;re associated with the EGLDisplay associated with the OpenCL
context, and to reach into each such context.</p>
</div>
</div>
</div>
</li>
<li>
<p>Do we need to have typedefs to use EGL handles in OpenCL?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED Using typedefs for EGL handles.</p>
</div>
</div>
</div>
</li>
<li>
<p>Should we restrict which CL APIs can be used with this cl_event?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED Use is limited to clEnqueueAcquire*** calls only.</p>
</div>
</div>
</div>
</li>
<li>
<p>What is the desired behaviour for this extension when EGLSyncKHR is of a
type other than EGL_SYNC_FENCE_KHR?</p>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>RESOLVED This extension only requires support for EGL_SYNC_FENCE_KHR.
Support of other types is an implementation choice, and will result in
CL_INVALID_EGL_OBJECT_KHR if unsupported.</p>
</div>
</div>
</div>
</li>
</ol>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_priority_hints">19. Priority Hints</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes the <strong>cl_khr_priority_hints</strong> extension.
This extension adds priority hints for OpenCL, but does not specify the
scheduling behavior or minimum guarantees.
It is expected that the the user guides associated with each implementation
which supports this extension will describe the scheduling behavior
guarantees.</p>
</div>
<div class="sect2">
<h3 id="cl_khr_priority_hints-host-side-api-modifications">19.1. Host-side API modifications</h3>
<div class="paragraph">
<p>The function <strong><code>clCreateCommandQueueWithProperties</code></strong> (Section 5.1) is
extended to support a priority value as part of the <em>properties</em> argument.</p>
</div>
<div class="paragraph">
<p>The priority property applies to OpenCL command queues that belong to the
same OpenCL context.</p>
</div>
<div class="paragraph">
<p>The properties field accepts the <code>CL_QUEUE_PRIORITY_KHR</code> property, with a
value of type cl_queue_priority_khr, which can be one of:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>CL_QUEUE_PRIORITY_HIGH_KHR</code></p>
</li>
<li>
<p><code>CL_QUEUE_PRIORITY_MED_KHR</code></p>
</li>
<li>
<p><code>CL_QUEUE_PRIORITY_LOW_KHR</code></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If <code>CL_QUEUE_PRIORITY_KHR</code> is not specified then the default priority is
<code>CL_QUEUE_PRIORITY_MED_KHR</code>.</p>
</div>
<div class="paragraph">
<p>To the error section for <strong><code>clCreateCommandQueueWithProperties</code></strong>, the
following is added:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>CL_INVALID_QUEUE_PROPERTIES</code> if the <code>CL_QUEUE_PRIORITY_KHR</code> property is
specified and the queue is a <code>CL_QUEUE_ON_DEVICE</code>.</p>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_throttle_hints">20. Throttle Hints</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes the <strong>cl_khr_throttle_hints</strong> extension.
This extension adds throttle hints for OpenCL, but does not specify the
throttling behavior or minimum guarantees.
It is expected that the user guide associated with each implementation which
supports this extension will describe the throttling behavior guarantees.</p>
</div>
<div class="paragraph">
<p>Note that the throttle hint is orthogonal to functionality defined in
<strong>cl_khr_priority_hints</strong> extension.
For example, a task may have high priority (<code>CL_QUEUE_PRIORITY_HIGH_KHR</code>)
but should at the same time be executed at an optimized throttle setting
(<code>CL_QUEUE_THROTTLE_LOW</code>).</p>
</div>
<div class="sect2">
<h3 id="cl_khr_throttle_hints-host-side-api-modifications">20.1. Host-side API modifications</h3>
<div class="paragraph">
<p>The function <strong><code>clCreateCommandQueueWithProperties</code></strong> (Section 5.1) is
extended to support a new <code>CL_QUEUE_THROTTLE_KHR</code> value as part of the
<em>properties</em> argument.</p>
</div>
<div class="paragraph">
<p>The properties field accepts the following values:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>CL_QUEUE_THROTTLE_HIGH_KHR</code> (full throttle, i.e., OK to consume more
energy)</p>
</li>
<li>
<p><code>CL_QUEUE_THROTTLE_MED_KHR</code> (normal throttle)</p>
</li>
<li>
<p><code>CL_QUEUE_THROTTLE_LOW_KHR</code> (optimized/lowest energy consumption)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If <code>CL_QUEUE_THROTTLE_KHR</code> is not specified then the default priority is
<code>CL_QUEUE_THROTTLE_MED_KHR</code>.</p>
</div>
<div class="paragraph">
<p>To the error section for <strong><code>clCreateCommandQueueWithProperties</code></strong>, the
following is added:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>CL_INVALID_QUEUE_PROPERTIES</code> if the <code>CL_QUEUE_THROTTLE_KHR</code> property is
specified and the queue is a <code>CL_QUEUE_ON_DEVICE</code>.</p>
</li>
</ul>
</div>
<div style="page-break-after: always;"></div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cl_khr_subgroup_named_barrier">21. Named Barriers for Subgroups</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This section describes the <strong>cl_khr_subgroup_named_barrier</strong> extension.
This extension adds barrier operations that cover subsets of an OpenCL
work-group.
Only the OpenCL API changes are described in this section.
Please refer to the SPIR-V specification for information about using
subgroups named barriers in the SPIR-V intermediate representation, and to
the OpenCL C++ specification for descriptions of the subgroup named
barrier built-in functions in the OpenCL C++ kernel language.</p>
</div>
<div class="paragraph">
<p>Add to <em>table 4.3</em>:</p>
</div>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 16.6666%;">
<col style="width: 50.0001%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><strong>cl_device_info</strong></th>
<th class="tableblock halign-left valign-top"><strong>Return Type</strong></th>
<th class="tableblock halign-left valign-top"><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>cl_uint</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum number of named barriers in a work-group for any given
  kernel-instance running on the device.
  The minimum value is 8.</p></td>
</tr>
</tbody>
</table>
<div style="page-break-after: always;"></div>
</div>
</div>
<div class="sect1">
<h2 id="_summary_of_changes_from_opencl_2_1">Appendix A: Summary of Changes from OpenCL 2.1</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The following features are added to OpenCL 2.2:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The OpenCL 2.2 KHR extension <strong>cl_khr_subgroup_named_barrier</strong> has been
added.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Version 2.2-7<br>
Last updated 2018-05-12 14:11:33 BST
</div>
</div>


</body>
</html>