From c3ff66f9b745f0113e234de72a9e74eee241ddc7 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Sun, 6 Dec 2020 15:35:42 -0800 Subject: [PATCH 01/40] initial generation script and template --- scripts/cl_ext.h.mako | 147 +++++++++++++++++++++++++++ scripts/gen_headers.py | 220 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 367 insertions(+) create mode 100644 scripts/cl_ext.h.mako create mode 100644 scripts/gen_headers.py diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako new file mode 100644 index 00000000..0e952e5a --- /dev/null +++ b/scripts/cl_ext.h.mako @@ -0,0 +1,147 @@ +<% +# Extensions to skip - they are in dedicated headers. +skipExtension = { + 'cl_khr_d3d10_sharing', + 'cl_khr_d3d11_sharing', + 'cl_khr_dx9_media_sharing', + 'cl_khr_egl_event', + 'cl_khr_egl_image', + 'cl_khr_gl_depth_images', + 'cl_khr_gl_event', + 'cl_khr_gl_msaa_sharing', + 'cl_khr_gl_sharing', + 'cl_intel_dx9_media_sharing', + } + +# XML blocks to include in the headers: +def shouldEmit(block): + for type in block.findall('type'): + if type.get('name') in typedefs: + return True + elif type.get('name') in structs: + return True + for enum in block.findall('enum'): + #if enum.get('name') in enums: + return True + for func in block.findall('command'): + return True; + return False + +# Order the extensions should be emitted in the headers. +# KHR -> EXT -> Vendor Extensions +def getSortKey(item): + name = item.get('name') + if name.startswith('cl_khr'): + return 0, name + if name.startswith('cl_ext'): + return 1, name + return 99, name + +%>/******************************************************************************* + * Copyright (c) 2008-2020 The Khronos Group Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +#ifndef __CL_EXT_H +#define __CL_EXT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +%for extension in sorted(spec.findall('extensions/extension'), key=getSortKey): +% if not extension.get('name') in skipExtension: +<% + name = extension.get('name') +%>/*************************************************************** +* ${name} +***************************************************************/ +#define ${name} 1 +#define ${name.upper()} "${name}" + +%for block in extension.findall('require'): +% if shouldEmit(block): +% if block.get('condition'): +#if ${block.get('condition')} +% endif +% if block.get('comment'): +/* ${block.get('comment')} */ +% endif +% for type in block.findall('type'): +% if type.get('name') in typedefs: +${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; +% elif type.get('name') in structs: +<% + struct = structs[type.get('name')] +%>typedef struct _${struct.Name} { +% for i, member in enumerate(struct.Members): + ${member.Type} ${member.Name}${member.TypeEnd}; +% endfor +} ${struct.Name}; +% else: +// ${type.get('name')} not found! +% endif +% endfor +% for enum in block.findall('enum'): +% if enum.get('name') in enums: +% if enums[enum.get('name')].Value: +#define ${enum.get('name').ljust(51)} ${enums[enum.get('name')].Value} +% elif enums[enum.get('name')].Bitpos: +#define ${enum.get('name').ljust(51)} (1 << ${enums[enum.get('name')].Bitpos}) +% else: +// ${enum.get('name')} is unassigned! +% endif +% else: +// ${enum.get('name')} not found! +% endif +% endfor +% for func in block.findall('command'): +<% + api = apisigs[func.get('name')] +%> +extern CL_API_ENTRY ${api.RetType} CL_API_CALL +${api.Name}( +% for i, param in enumerate(api.Params): +% if i < len(api.Params)-1: + ${param.Type} ${param.Name}${param.TypeEnd}, +% else: + ${param.Type} ${param.Name}${param.TypeEnd}) ${api.Suffix}; +% endif +% endfor + +typedef CL_API_ENTRY ${api.RetType} (CL_API_CALL * +${api.Name}_fn)( +% for i, param in enumerate(api.Params): +% if i < len(api.Params)-1: + ${param.Type} ${param.Name}${param.TypeEnd}, +% else: + ${param.Type} ${param.Name}${param.TypeEnd}) ${api.Suffix}; +% endif +% endfor +% endfor +% if block.get('condition'): +#endif +% endif + +% endif +%endfor +% endif +%endfor +#ifdef __cplusplus +} +#endif + +#endif /* __CL_EXT_H */ diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py new file mode 100644 index 00000000..d4a795b5 --- /dev/null +++ b/scripts/gen_headers.py @@ -0,0 +1,220 @@ +#!/usr/bin/python3 + +# Copyright (c) 2020 Ben Ashbaugh +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from mako.template import Template +from mako.exceptions import RichTraceback + +from collections import OrderedDict +from collections import namedtuple + +import argparse +import sys +import urllib +import xml.etree.ElementTree as etree +import urllib.request + +# parse_xml - Helper function to parse the XML file from a URL or local file. +def parse_xml(path): + file = urllib.request.urlopen(path) if path.startswith("http") else open(path, 'r') + with file: + tree = etree.parse(file) + return tree + +# noneStr - returns string argument, or "" if argument is None. +def noneStr(s): + if s: + return s + return "" + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + + # To pull the latest registry file from GitHub, pass: + # -registry "https://raw.githubusercontent.com/KhronosGroup/OpenCL-Registry/master/xml/cl.xml" + + parser.add_argument('-registry', action='store', + default='cl.xml', + help='Use specified registry file instead of cl.xml') + parser.add_argument('-o', action='store', dest='directory', + default='.', + help='Create target and related files in specified directory') + + args = parser.parse_args() + + specpath = args.registry + + print('Parsing XML file from: ' + specpath) + spec = parse_xml(specpath) + + # Generate the API typedef and struct dictionaries: + typedefs = OrderedDict() + Typedef = namedtuple('Typedef', 'Typedef Name') + structs = OrderedDict() + Struct = namedtuple('Struct', 'Name Members') + StructMember = namedtuple('StructMember', 'Type TypeEnd Name') + print('Generating API typedef dictionary...') + for type in spec.findall('types/type'): + if type.get('category') == 'define': + typedef = noneStr(type.text) + name = "" + for elem in type: + if elem.tag == 'name': + name = noneStr(elem.text) + else: + typedef = typedef + noneStr(elem.text) + noneStr(elem.tail) + typedef = typedef.strip() + name = name.strip() + typedefs[name] = Typedef(typedef, name) + if type.get('category') == 'struct': + name = type.get('name') + + mlist = [] + for member in type.findall('member'): + mtype = noneStr(member.text) + mtypeend = "" + mname = "" + for elem in member: + if elem.tag == 'name': + mname = noneStr(elem.text) + mtypeend = noneStr(elem.tail) + elif elem.tag == 'enum': + # Assumes any additional enums are for array limits, e.g.: + # charname[CL_NAME_VERSION_MAX_NAME_SIZE] + mtypeend = mtypeend + noneStr(elem.text) + noneStr(elem.tail) + else: + mtype = mtype + noneStr(elem.text) + noneStr(elem.tail) + mtype = mtype.strip() + mtypeend = mtypeend.strip() + mname = mname.strip() + mlist.append(StructMember(mtype, mtypeend, mname)) + structs[name] = Struct(name, mlist) + + # Generate the API enum dictionary: + enums = OrderedDict() + Enum = namedtuple('Enum', 'Value Bitpos Name') + print('Generating API enum dictionary...') + for enum in spec.findall('enums/enum'): + value = enum.get('value') + bitpos = enum.get('bitpos') + name = enum.get('name') + enums[name] = Enum(value, bitpos, name) + + # Generate the API function signatures dictionary: + apisigs = OrderedDict() + ApiSignature = namedtuple('ApiSignature', 'Name RetType Params Suffix') + ApiParam = namedtuple('ApiParam', 'Type TypeEnd Name') + print('Generating API function signatures dictionary...') + for command in spec.findall('commands/command'): + suffix = noneStr(command.get('suffix')) + proto = command.find('proto') + ret = noneStr(proto.text) + name = "" + params = "" + for elem in proto: + if elem.tag == 'name': + name = noneStr(elem.text) + noneStr(elem.tail) + else: + ret = ret + noneStr(elem.text) + noneStr(elem.tail) + ret = ret.strip() + name = name.strip() + + plist = [] + for param in command.findall('param'): + ptype = noneStr(param.text) + ptypeend = "" + pname = "" + for elem in param: + if elem.tag == 'name': + pname = noneStr(elem.text) + ptypeend = noneStr(elem.tail) + else: + ptype = ptype + noneStr(elem.text) + noneStr(elem.tail) + ptype = ptype.strip() + ptypeend = ptypeend.strip() + pname = pname.strip() + plist.append(ApiParam(ptype, ptypeend, pname)) + apisigs[name] = ApiSignature(name, ret, plist, suffix) + + # Generate the core API dictionary: + coreapis = OrderedDict() + coretypes = OrderedDict() + coreenums = OrderedDict() + print('Generating core API dictionary...') + for feature in spec.findall('feature'): + version = noneStr(feature.get('name')) + + alist = [] + for function in feature.findall('require/command'): + name = function.get('name') + alist.append(apisigs[name]) + coreapis[version] = alist + + tlist = [] + for type in feature.findall('require/type'): + name = type.get('name') + if name in typedefs: + tlist.append(typedefs[name]) + else: + print('Type %s was not found.' % name) + coretypes[version] = tlist + + elist = [] + for enum in feature.findall('require/enum'): + name = enum.get('name') + if name in enums: + elist.append(enums[name]) + else: + print('Enum %s was not found.' % name) + coreenums[version] = elist + + # Generate the extension API function dictionary: + extapis = OrderedDict() + print('Generating API extensions dictionary...') + for feature in spec.findall('extensions/extension'): + extension = noneStr(feature.get('name')) + + alist = [] + for function in feature.findall('require/command'): + name = function.get('name') + alist.append(apisigs[name]) + extapis[extension] = alist + + try: + # Create the loader cpp file from the API dictionary: + test = open(args.directory + '/cl_ext.h', 'wb') + cl_ext_h_template = Template(filename='cl_ext.h.mako') + test.write( + cl_ext_h_template.render_unicode( + spec=spec, + typedefs=typedefs, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis). + encode('utf-8', 'replace')) + except: + traceback = RichTraceback() + for (filename, lineno, function, line) in traceback.traceback: + print('%s(%s) : error in %s' % (filename, lineno, function)) + print(' ', line) + print('%s: %s' % (str(traceback.error.__class__.__name__), traceback.error)) From 33ceb74544ed36944d388109cc7bfb880cdb14a5 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 29 Dec 2020 00:16:53 -0800 Subject: [PATCH 02/40] added ability to generate additional headers for sharing extensions --- scripts/cl_ext.h.mako | 35 ++++++--- scripts/gen_headers.py | 169 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 180 insertions(+), 24 deletions(-) diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 0e952e5a..6434f9e0 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -1,6 +1,6 @@ <% # Extensions to skip - they are in dedicated headers. -skipExtension = { +skipExtensions = { 'cl_khr_d3d10_sharing', 'cl_khr_d3d11_sharing', 'cl_khr_dx9_media_sharing', @@ -13,11 +13,21 @@ skipExtension = { 'cl_intel_dx9_media_sharing', } +# Extensions to include in this header: +def shouldGenerate(extension): + if extension in genExtensions: + return True + elif not genExtensions and not extension in skipExtensions: + return True; + return False + # XML blocks to include in the headers: def shouldEmit(block): for type in block.findall('type'): if type.get('name') in typedefs: return True + elif type.get('name') in macros: + return True elif type.get('name') in structs: return True for enum in block.findall('enum'): @@ -53,17 +63,20 @@ def getSortKey(item): * limitations under the License. ******************************************************************************/ -#ifndef __CL_EXT_H -#define __CL_EXT_H +#ifndef ${guard} +#define ${guard} + +%if includes: +${includes} +%endif +#include #ifdef __cplusplus extern "C" { #endif -#include - %for extension in sorted(spec.findall('extensions/extension'), key=getSortKey): -% if not extension.get('name') in skipExtension: +% if shouldGenerate(extension.get('name')): <% name = extension.get('name') %>/*************************************************************** @@ -83,6 +96,8 @@ extern "C" { % for type in block.findall('type'): % if type.get('name') in typedefs: ${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; +% elif type.get('name') in macros: +#define ${type.get('name')}${macros[type.get('name')].Macro} % elif type.get('name') in structs: <% struct = structs[type.get('name')] @@ -92,7 +107,7 @@ ${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; % endfor } ${struct.Name}; % else: -// ${type.get('name')} not found! +// type ${type.get('name')} not found! % endif % endfor % for enum in block.findall('enum'): @@ -102,10 +117,10 @@ ${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; % elif enums[enum.get('name')].Bitpos: #define ${enum.get('name').ljust(51)} (1 << ${enums[enum.get('name')].Bitpos}) % else: -// ${enum.get('name')} is unassigned! +// enum ${enum.get('name')} is unassigned! % endif % else: -// ${enum.get('name')} not found! +// enum ${enum.get('name')} not found! % endif % endfor % for func in block.findall('command'): @@ -144,4 +159,4 @@ ${api.Name}_fn)( } #endif -#endif /* __CL_EXT_H */ +#endif /* ${guard} */ diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index d4a795b5..03fb5fe9 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -45,6 +45,31 @@ def noneStr(s): return s return "" +def getDisableWarningIncludeString(include): + warningPush = """#if defined(_MSC_VER) +#if _MSC_VER >=1500 +#pragma warning( push ) +#pragma warning( disable : 4201 ) +#endif +#endif +""" + warningPop = """ +#if defined(_MSC_VER) +#if _MSC_VER >=1500 +#pragma warning( pop ) +#endif +#endif +""" + return warningPush + include + warningPop + +def getWin32OnlyIncludeString(include): + return """#if defined(_WIN32) +""" + include + """ +#endif +""" + + + if __name__ == "__main__": parser = argparse.ArgumentParser() @@ -68,25 +93,39 @@ def noneStr(s): # Generate the API typedef and struct dictionaries: typedefs = OrderedDict() Typedef = namedtuple('Typedef', 'Typedef Name') + macros = OrderedDict() + Macro = namedtuple('Macro', 'Define Name Macro') structs = OrderedDict() Struct = namedtuple('Struct', 'Name Members') StructMember = namedtuple('StructMember', 'Type TypeEnd Name') print('Generating API typedef dictionary...') for type in spec.findall('types/type'): if type.get('category') == 'define': - typedef = noneStr(type.text) - name = "" - for elem in type: - if elem.tag == 'name': - name = noneStr(elem.text) - else: - typedef = typedef + noneStr(elem.text) + noneStr(elem.tail) - typedef = typedef.strip() - name = name.strip() - typedefs[name] = Typedef(typedef, name) + if noneStr(type.text).startswith("typedef"): + typedef = noneStr(type.text) + name = "" + for elem in type: + if elem.tag == 'name': + name = noneStr(elem.text) + else: + typedef = typedef + noneStr(elem.text) + noneStr(elem.tail) + typedef = typedef.strip() + name = name.strip() + typedefs[name] = Typedef(typedef, name) + if noneStr(type.text).startswith("#define"): + define = noneStr(type.text) + name = "" + macro = "" + for elem in type: + if elem.tag == 'name': + name = noneStr(elem.text) + macro = macro + noneStr(elem.tail) + define = define.strip() + name = name.strip() + macro = macro.rstrip() # keep spaces on the left! + macros[name] = Macro(define, name, macro) if type.get('category') == 'struct': name = type.get('name') - mlist = [] for member in type.findall('member'): mtype = noneStr(member.text) @@ -199,13 +238,115 @@ def noneStr(s): extapis[extension] = alist try: - # Create the loader cpp file from the API dictionary: - test = open(args.directory + '/cl_ext.h', 'wb') cl_ext_h_template = Template(filename='cl_ext.h.mako') - test.write( + + gen = open(args.directory + '/cl_dx9_media_sharing.h', 'wb') + gen.write( + cl_ext_h_template.render_unicode( + genExtensions={'cl_khr_dx9_media_sharing', 'cl_intel_dx9_media_sharing'}, + guard="OPENCL_CL_DX9_MEDIA_SHARING_H_", + includes=getWin32OnlyIncludeString("#include "), + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis). + encode('utf-8', 'replace')) + + gen = open(args.directory + '/cl_d3d10.h', 'wb') + gen.write( + cl_ext_h_template.render_unicode( + genExtensions={'cl_khr_d3d10_sharing'}, + guard="OPENCL_CL_D3D10_H_", + includes=getDisableWarningIncludeString("#include "), + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis). + encode('utf-8', 'replace')) + + gen = open(args.directory + '/cl_d3d11.h', 'wb') + gen.write( + cl_ext_h_template.render_unicode( + genExtensions={'cl_khr_d3d11_sharing'}, + guard="OPENCL_CL_D3D11_H_", + includes=getDisableWarningIncludeString("#include "), + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis). + encode('utf-8', 'replace')) + + gen = open(args.directory + '/cl_egl.h', 'wb') + gen.write( + cl_ext_h_template.render_unicode( + genExtensions={'cl_khr_egl_event', 'cl_khr_egl_image'}, + guard="OPENCL_CL_EGL_H_", + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis). + encode('utf-8', 'replace')) + + gen = open(args.directory + '/cl_gl.h', 'wb') + gen.write( + cl_ext_h_template.render_unicode( + genExtensions={ + 'cl_khr_gl_depth_images', + 'cl_khr_gl_event', + 'cl_khr_gl_msaa_sharing', + 'cl_khr_gl_sharing', + }, + guard="OPENCL_CL_GL_H_", + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis). + encode('utf-8', 'replace')) + + gen = open(args.directory + '/cl_va_api_media_sharing_intel.h', 'wb') + gen.write( + cl_ext_h_template.render_unicode( + genExtensions={'cl_intel_va_api_media_sharing'}, + guard="OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_", + includes='#include ', + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis). + encode('utf-8', 'replace')) + + gen = open(args.directory + '/cl_ext.h', 'wb') + gen.write( cl_ext_h_template.render_unicode( + genExtensions={}, + guard="OPENCL_CL_EXT_H_", spec=spec, typedefs=typedefs, + macros=macros, structs=structs, enums=enums, apisigs=apisigs, From 26f7cc6ae128e6cee6af2721574d48dfec8bdcf0 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Sat, 27 Feb 2021 21:07:08 -0800 Subject: [PATCH 03/40] switch to generated headers for extensions passing header tests with generated headers improve generation for extensions that share type names remove incorrectly added file update to latest generated files --- CL/cl_d3d10.h | 208 +- CL/cl_d3d11.h | 210 +- CL/cl_dx9_media_sharing.h | 379 +-- CL/cl_egl.h | 164 +- CL/cl_ext.h | 3605 +++++++++++++++------------- CL/cl_gl.h | 366 +-- CL/cl_gl_ext.h | 2 +- CL/cl_layer.h | 77 +- CL/cl_va_api_media_sharing_intel.h | 162 +- scripts/cl_ext.h.mako | 34 +- scripts/gen_headers.py | 42 +- 11 files changed, 2793 insertions(+), 2456 deletions(-) diff --git a/CL/cl_d3d10.h b/CL/cl_d3d10.h index 0d9950be..2e618596 100644 --- a/CL/cl_d3d10.h +++ b/CL/cl_d3d10.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,8 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_D3D10_H -#define __OPENCL_CL_D3D10_H +#ifndef OPENCL_CL_D3D10_H_ +#define OPENCL_CL_D3D10_H_ #if defined(_MSC_VER) #if _MSC_VER >=1500 @@ -30,125 +30,155 @@ #pragma warning( pop ) #endif #endif + #include -#include #ifdef __cplusplus extern "C" { #endif -/****************************************************************************** - * cl_khr_d3d10_sharing */ +/*************************************************************** +* cl_khr_d3d10_sharing +***************************************************************/ #define cl_khr_d3d10_sharing 1 +#define CL_KHR_D3D10_SHARING "cl_khr_d3d10_sharing" -typedef cl_uint cl_d3d10_device_source_khr; -typedef cl_uint cl_d3d10_device_set_khr; +typedef cl_uint cl_d3d10_device_source_khr; +typedef cl_uint cl_d3d10_device_set_khr; -/******************************************************************************/ +/* Error codes */ +#define CL_INVALID_D3D10_DEVICE_KHR -1002 +#define CL_INVALID_D3D10_RESOURCE_KHR -1003 +#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004 +#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005 -/* Error Codes */ -#define CL_INVALID_D3D10_DEVICE_KHR -1002 -#define CL_INVALID_D3D10_RESOURCE_KHR -1003 -#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004 -#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005 +/* cl_d3d10_device_source_khr */ +#define CL_D3D10_DEVICE_KHR 0x4010 +#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011 -/* cl_d3d10_device_source_nv */ -#define CL_D3D10_DEVICE_KHR 0x4010 -#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011 - -/* cl_d3d10_device_set_nv */ -#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012 -#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013 +/* cl_d3d10_device_set_khr */ +#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012 +#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013 /* cl_context_info */ -#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014 -#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C +#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014 +#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C /* cl_mem_info */ -#define CL_MEM_D3D10_RESOURCE_KHR 0x4015 +#define CL_MEM_D3D10_RESOURCE_KHR 0x4015 /* cl_image_info */ -#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016 +#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016 /* cl_command_type */ -#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017 -#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 +#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017 +#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 -/******************************************************************************/ -typedef cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)( - cl_platform_id platform, +extern CL_API_ENTRY cl_int CL_API_CALL +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_API_SUFFIX__VERSION_1_0; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D10Buffer * resource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D10Texture2D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D10Texture3D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)( - 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_API_SUFFIX__VERSION_1_0; + void* d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0; -typedef cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)( - 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_API_SUFFIX__VERSION_1_0; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetDeviceIDsFromD3D10KHR_fn)( + 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_API_SUFFIX__VERSION_1_0; -/*************************************************************** -* cl_intel_sharing_format_query_d3d10 -***************************************************************/ -#define cl_intel_sharing_format_query_d3d10 1 +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D10BufferKHR( + cl_context context, + cl_mem_flags flags, + ID3D10Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -/* when cl_khr_d3d10_sharing is supported */ +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromD3D10BufferKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D10Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedD3D10TextureFormatsINTEL( +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D10Texture2DKHR( cl_context context, cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint num_entries, - DXGI_FORMAT* d3d10_formats, - cl_uint* num_texture_formats) ; + ID3D10Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef cl_int (CL_API_CALL * -clGetSupportedD3D10TextureFormatsINTEL_fn)( +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromD3D10Texture2DKHR_fn)( cl_context context, cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint num_entries, - DXGI_FORMAT* d3d10_formats, - cl_uint* num_texture_formats) ; + ID3D10Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D10Texture3DKHR( + cl_context context, + cl_mem_flags flags, + ID3D10Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromD3D10Texture3DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D10Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +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_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueAcquireD3D10ObjectsKHR_fn)( + 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_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +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) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueReleaseD3D10ObjectsKHR_fn)( + 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_API_SUFFIX__VERSION_1_0; #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_D3D10_H */ - +#endif /* OPENCL_CL_D3D10_H_ */ diff --git a/CL/cl_d3d11.h b/CL/cl_d3d11.h index 9393e5c8..0da51b68 100644 --- a/CL/cl_d3d11.h +++ b/CL/cl_d3d11.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,8 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_D3D11_H -#define __OPENCL_CL_D3D11_H +#ifndef OPENCL_CL_D3D11_H_ +#define OPENCL_CL_D3D11_H_ #if defined(_MSC_VER) #if _MSC_VER >=1500 @@ -30,127 +30,155 @@ #pragma warning( pop ) #endif #endif + #include -#include #ifdef __cplusplus extern "C" { #endif -/****************************************************************************** - * cl_khr_d3d11_sharing */ +/*************************************************************** +* cl_khr_d3d11_sharing +***************************************************************/ #define cl_khr_d3d11_sharing 1 +#define CL_KHR_D3D11_SHARING "cl_khr_d3d11_sharing" -typedef cl_uint cl_d3d11_device_source_khr; -typedef cl_uint cl_d3d11_device_set_khr; +typedef cl_uint cl_d3d11_device_source_khr; +typedef cl_uint cl_d3d11_device_set_khr; -/******************************************************************************/ +/* Error codes */ +#define CL_INVALID_D3D11_DEVICE_KHR -1006 +#define CL_INVALID_D3D11_RESOURCE_KHR -1007 +#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 +#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 -/* Error Codes */ -#define CL_INVALID_D3D11_DEVICE_KHR -1006 -#define CL_INVALID_D3D11_RESOURCE_KHR -1007 -#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 -#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 +/* cl_d3d11_device_source_khr */ +#define CL_D3D11_DEVICE_KHR 0x4019 +#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A -/* cl_d3d11_device_source */ -#define CL_D3D11_DEVICE_KHR 0x4019 -#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A - -/* cl_d3d11_device_set */ -#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B -#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C +/* cl_d3d11_device_set_khr */ +#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B +#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C /* cl_context_info */ -#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D -#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D +#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D +#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D /* cl_mem_info */ -#define CL_MEM_D3D11_RESOURCE_KHR 0x401E +#define CL_MEM_D3D11_RESOURCE_KHR 0x401E /* cl_image_info */ -#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F +#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F /* cl_command_type */ -#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 -#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 +#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 +#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 -/******************************************************************************/ -typedef cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)( - cl_platform_id platform, +extern CL_API_ENTRY cl_int CL_API_CALL +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_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D11Buffer * resource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D11Texture2D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D11Texture3D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)( - 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_API_SUFFIX__VERSION_1_2; + void* d3d_object, + cl_d3d11_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)( - 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_API_SUFFIX__VERSION_1_2; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetDeviceIDsFromD3D11KHR_fn)( + 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_API_SUFFIX__VERSION_1_2; -/*************************************************************** -* cl_intel_sharing_format_query_d3d11 -***************************************************************/ -#define cl_intel_sharing_format_query_d3d11 1 +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D11BufferKHR( + cl_context context, + cl_mem_flags flags, + ID3D11Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -/* when cl_khr_d3d11_sharing is supported */ +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromD3D11BufferKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D11Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedD3D11TextureFormatsINTEL( +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D11Texture2DKHR( cl_context context, cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - DXGI_FORMAT* d3d11_formats, - cl_uint* num_texture_formats) ; + ID3D11Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clGetSupportedD3D11TextureFormatsINTEL_fn)( +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromD3D11Texture2DKHR_fn)( cl_context context, cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - DXGI_FORMAT* d3d11_formats, - cl_uint* num_texture_formats) ; + ID3D11Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D11Texture3DKHR( + cl_context context, + cl_mem_flags flags, + ID3D11Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromD3D11Texture3DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D11Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +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_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueAcquireD3D11ObjectsKHR_fn)( + 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_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +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) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueReleaseD3D11ObjectsKHR_fn)( + 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_API_SUFFIX__VERSION_1_2; #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_D3D11_H */ - +#endif /* OPENCL_CL_D3D11_H_ */ diff --git a/CL/cl_dx9_media_sharing.h b/CL/cl_dx9_media_sharing.h index fd03bbdc..2184cbbe 100644 --- a/CL/cl_dx9_media_sharing.h +++ b/CL/cl_dx9_media_sharing.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,255 +14,260 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H -#define __OPENCL_CL_DX9_MEDIA_SHARING_H +#ifndef OPENCL_CL_DX9_MEDIA_SHARING_H_ +#define OPENCL_CL_DX9_MEDIA_SHARING_H_ + +#if defined(_WIN32) +#include +#endif #include -#include #ifdef __cplusplus extern "C" { #endif -/******************************************************************************/ -/* cl_khr_dx9_media_sharing */ +/*************************************************************** +* cl_khr_dx9_media_sharing +***************************************************************/ #define cl_khr_dx9_media_sharing 1 +#define CL_KHR_DX9_MEDIA_SHARING "cl_khr_dx9_media_sharing" typedef cl_uint cl_dx9_media_adapter_type_khr; typedef cl_uint cl_dx9_media_adapter_set_khr; - + #if defined(_WIN32) -#if defined(_MSC_VER) -#if _MSC_VER >=1500 -#pragma warning( push ) -#pragma warning( disable : 4201 ) -#pragma warning( disable : 5105 ) -#endif -#endif -#include -#if defined(_MSC_VER) -#if _MSC_VER >=1500 -#pragma warning( pop ) -#endif -#endif -typedef struct _cl_dx9_surface_info_khr -{ - IDirect3DSurface9 *resource; +typedef struct _cl_dx9_surface_info_khr { + IDirect3DSurface9* resource; HANDLE shared_handle; } cl_dx9_surface_info_khr; #endif - -/******************************************************************************/ - -/* Error Codes */ -#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 -#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011 -#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012 -#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013 +/* Error codes */ +#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 +#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011 +#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012 +#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013 /* cl_media_adapter_type_khr */ -#define CL_ADAPTER_D3D9_KHR 0x2020 -#define CL_ADAPTER_D3D9EX_KHR 0x2021 -#define CL_ADAPTER_DXVA_KHR 0x2022 +#define CL_ADAPTER_D3D9_KHR 0x2020 +#define CL_ADAPTER_D3D9EX_KHR 0x2021 +#define CL_ADAPTER_DXVA_KHR 0x2022 /* cl_media_adapter_set_khr */ -#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023 -#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024 +#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023 +#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024 /* cl_context_info */ -#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025 -#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026 -#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027 +#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025 +#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026 +#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027 /* cl_mem_info */ -#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028 -#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029 +#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028 +#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029 /* cl_image_info */ -#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A +#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A /* cl_command_type */ -#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B -#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C - -/******************************************************************************/ - -typedef cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( - cl_platform_id platform, - cl_uint num_media_adapters, - cl_dx9_media_adapter_type_khr * media_adapter_type, - void * media_adapters, - cl_dx9_media_adapter_set_khr media_adapter_set, - cl_uint num_entries, - cl_device_id * devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)( - cl_context context, - cl_mem_flags flags, +#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B +#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C + + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceIDsFromDX9MediaAdapterKHR( + cl_platform_id platform, + cl_uint num_media_adapters, + cl_dx9_media_adapter_type_khr* media_adapter_type, + void* media_adapters, + cl_dx9_media_adapter_set_khr media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( + cl_platform_id platform, + cl_uint num_media_adapters, + cl_dx9_media_adapter_type_khr* media_adapter_type, + void* media_adapters, + cl_dx9_media_adapter_set_khr media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +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_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromDX9MediaSurfaceKHR_fn)( + 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_API_SUFFIX__VERSION_1_2; + void* surface_info, + cl_uint plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +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_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)( + 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_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueAcquireDX9MediaSurfacesKHR_fn)( 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_API_SUFFIX__VERSION_1_2; + 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_API_SUFFIX__VERSION_1_2; -/*************************************** -* cl_intel_dx9_media_sharing extension * -****************************************/ +extern CL_API_ENTRY cl_int CL_API_CALL +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) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueReleaseDX9MediaSurfacesKHR_fn)( + 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_API_SUFFIX__VERSION_1_2; +/*************************************************************** +* cl_intel_dx9_media_sharing +***************************************************************/ #define cl_intel_dx9_media_sharing 1 +#define CL_INTEL_DX9_MEDIA_SHARING "cl_intel_dx9_media_sharing" -typedef cl_uint cl_dx9_device_source_intel; -typedef cl_uint cl_dx9_device_set_intel; +typedef cl_uint cl_dx9_device_source_intel; +typedef cl_uint cl_dx9_device_set_intel; -/* error codes */ -#define CL_INVALID_DX9_DEVICE_INTEL -1010 -#define CL_INVALID_DX9_RESOURCE_INTEL -1011 -#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012 -#define CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL -1013 +/* Error codes */ +#define CL_INVALID_DX9_DEVICE_INTEL -1010 +#define CL_INVALID_DX9_RESOURCE_INTEL -1011 +#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012 +#define CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL -1013 /* cl_dx9_device_source_intel */ -#define CL_D3D9_DEVICE_INTEL 0x4022 -#define CL_D3D9EX_DEVICE_INTEL 0x4070 -#define CL_DXVA_DEVICE_INTEL 0x4071 +#define CL_D3D9_DEVICE_INTEL 0x4022 +#define CL_D3D9EX_DEVICE_INTEL 0x4070 +#define CL_DXVA_DEVICE_INTEL 0x4071 /* cl_dx9_device_set_intel */ -#define CL_PREFERRED_DEVICES_FOR_DX9_INTEL 0x4024 -#define CL_ALL_DEVICES_FOR_DX9_INTEL 0x4025 +#define CL_PREFERRED_DEVICES_FOR_DX9_INTEL 0x4024 +#define CL_ALL_DEVICES_FOR_DX9_INTEL 0x4025 /* cl_context_info */ -#define CL_CONTEXT_D3D9_DEVICE_INTEL 0x4026 -#define CL_CONTEXT_D3D9EX_DEVICE_INTEL 0x4072 -#define CL_CONTEXT_DXVA_DEVICE_INTEL 0x4073 +#define CL_CONTEXT_D3D9_DEVICE_INTEL 0x4026 +#define CL_CONTEXT_D3D9EX_DEVICE_INTEL 0x4072 +#define CL_CONTEXT_DXVA_DEVICE_INTEL 0x4073 /* cl_mem_info */ -#define CL_MEM_DX9_RESOURCE_INTEL 0x4027 -#define CL_MEM_DX9_SHARED_HANDLE_INTEL 0x4074 +#define CL_MEM_DX9_RESOURCE_INTEL 0x4027 +#define CL_MEM_DX9_SHARED_HANDLE_INTEL 0x4074 /* cl_image_info */ -#define CL_IMAGE_DX9_PLANE_INTEL 0x4075 +#define CL_IMAGE_DX9_PLANE_INTEL 0x4075 /* cl_command_type */ -#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A -#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B -/******************************************************************************/ +#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A +#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B + extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromDX9INTEL( - cl_platform_id platform, - cl_dx9_device_source_intel dx9_device_source, - void* dx9_object, - cl_dx9_device_set_intel dx9_device_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int (CL_API_CALL* clGetDeviceIDsFromDX9INTEL_fn)( - cl_platform_id platform, - cl_dx9_device_source_intel dx9_device_source, - void* dx9_object, - cl_dx9_device_set_intel dx9_device_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; + cl_platform_id platform, + cl_dx9_device_source_intel dx9_device_source, + void* dx9_object, + cl_dx9_device_set_intel dx9_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetDeviceIDsFromDX9INTEL_fn)( + cl_platform_id platform, + cl_dx9_device_source_intel dx9_device_source, + void* dx9_object, + cl_dx9_device_set_intel dx9_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromDX9MediaSurfaceINTEL( - cl_context context, - cl_mem_flags flags, - IDirect3DSurface9* resource, - HANDLE sharedHandle, - UINT plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceINTEL_fn)( - cl_context context, - cl_mem_flags flags, - IDirect3DSurface9* resource, - HANDLE sharedHandle, - UINT plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + cl_context context, + cl_mem_flags flags, + IDirect3DSurface9* resource, + HANDLE sharedHandle, + UINT plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromDX9MediaSurfaceINTEL_fn)( + cl_context context, + cl_mem_flags flags, + IDirect3DSurface9* resource, + HANDLE sharedHandle, + UINT plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireDX9ObjectsINTEL( - 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_API_SUFFIX__VERSION_1_1; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireDX9ObjectsINTEL_fn)( - 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_API_SUFFIX__VERSION_1_1; + 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_API_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueAcquireDX9ObjectsINTEL_fn)( + 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_API_SUFFIX__VERSION_1_1; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseDX9ObjectsINTEL( - cl_command_queue command_queue, - cl_uint num_objects, - cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseDX9ObjectsINTEL_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_1; - -/*************************************************************** -* cl_intel_sharing_format_query_dx9 -***************************************************************/ -#define cl_intel_sharing_format_query_dx9 1 - -/* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */ - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedDX9MediaSurfaceFormatsINTEL( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - D3DFORMAT* dx9_formats, - cl_uint* num_surface_formats) ; - -typedef cl_int (CL_API_CALL * -clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - D3DFORMAT* dx9_formats, - cl_uint* num_surface_formats) ; + cl_command_queue command_queue, + cl_uint num_objects, + cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueReleaseDX9ObjectsINTEL_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_1; #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_H */ - +#endif /* OPENCL_CL_DX9_MEDIA_SHARING_H_ */ diff --git a/CL/cl_egl.h b/CL/cl_egl.h index 357a37c0..70b3c7d3 100644 --- a/CL/cl_egl.h +++ b/CL/cl_egl.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,8 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_EGL_H -#define __OPENCL_CL_EGL_H +#ifndef OPENCL_CL_EGL_H_ +#define OPENCL_CL_EGL_H_ #include @@ -23,98 +23,114 @@ extern "C" { #endif +/*************************************************************** +* cl_khr_egl_event +***************************************************************/ +#define cl_khr_egl_event 1 +#define CL_KHR_EGL_EVENT "cl_khr_egl_event" + +/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ +typedef void* CLeglDisplayKHR; + +/* CLeglSyncKHR is an opaque handle to an EGLSync object */ +typedef void* CLeglSyncKHR; + + +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateEventFromEGLSyncKHR( + cl_context context, + CLeglSyncKHR sync, + CLeglDisplayKHR display, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_event (CL_API_CALL * +clCreateEventFromEGLSyncKHR_fn)( + cl_context context, + CLeglSyncKHR sync, + CLeglDisplayKHR display, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +/*************************************************************** +* cl_khr_egl_image +***************************************************************/ +#define cl_khr_egl_image 1 +#define CL_KHR_EGL_IMAGE "cl_khr_egl_image" /* Command type for events created with clEnqueueAcquireEGLObjectsKHR */ -#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F -#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D -#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E +#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F +#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D +#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E /* Error type for clCreateFromEGLImageKHR */ -#define CL_INVALID_EGL_OBJECT_KHR -1093 -#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092 +#define CL_INVALID_EGL_OBJECT_KHR -1093 +#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092 /* CLeglImageKHR is an opaque handle to an EGLImage */ -typedef void* CLeglImageKHR; +typedef void* CLeglImageKHR; /* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ -typedef void* CLeglDisplayKHR; - -/* CLeglSyncKHR is an opaque handle to an EGLSync object */ -typedef void* CLeglSyncKHR; +/* type CLeglDisplayKHR */ /* properties passed to clCreateFromEGLImageKHR */ -typedef intptr_t cl_egl_image_properties_khr; - +typedef intptr_t cl_egl_image_properties_khr; -#define cl_khr_egl_image 1 extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromEGLImageKHR(cl_context context, - CLeglDisplayKHR egldisplay, - CLeglImageKHR eglimage, - cl_mem_flags flags, - const cl_egl_image_properties_khr * properties, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_mem (CL_API_CALL *clCreateFromEGLImageKHR_fn)( - cl_context context, - CLeglDisplayKHR egldisplay, - CLeglImageKHR eglimage, - cl_mem_flags flags, - const cl_egl_image_properties_khr * properties, - cl_int * errcode_ret); - +clCreateFromEGLImageKHR( + cl_context context, + CLeglDisplayKHR egldisplay, + CLeglImageKHR eglimage, + cl_mem_flags flags, + const cl_egl_image_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromEGLImageKHR_fn)( + cl_context context, + CLeglDisplayKHR egldisplay, + CLeglImageKHR eglimage, + cl_mem_flags flags, + const cl_egl_image_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL -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_API_SUFFIX__VERSION_1_0; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR_fn)( +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_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_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueAcquireEGLObjectsKHR_fn)( + 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_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL -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) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR_fn)( +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); - - -#define cl_khr_egl_event 1 - -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromEGLSyncKHR(cl_context context, - CLeglSyncKHR sync, - CLeglDisplayKHR display, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_event (CL_API_CALL *clCreateEventFromEGLSyncKHR_fn)( - cl_context context, - CLeglSyncKHR sync, - CLeglDisplayKHR display, - cl_int * errcode_ret); + 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_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueReleaseEGLObjectsKHR_fn)( + 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_API_SUFFIX__VERSION_1_0; #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_EGL_H */ +#endif /* OPENCL_CL_EGL_H_ */ diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 71f74d05..b2841254 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,24 +14,20 @@ * limitations under the License. ******************************************************************************/ -/* cl_ext.h contains OpenCL extensions which don't have external */ -/* (OpenGL, D3D) dependencies. */ +#ifndef OPENCL_CL_EXT_H_ +#define OPENCL_CL_EXT_H_ -#ifndef __CL_EXT_H -#define __CL_EXT_H +#include #ifdef __cplusplus extern "C" { #endif -#include - /*************************************************************** * cl_khr_command_buffer ***************************************************************/ #define cl_khr_command_buffer 1 -#define CL_KHR_COMMAND_BUFFER_EXTENSION_NAME \ - "cl_khr_command_buffer" +#define CL_KHR_COMMAND_BUFFER "cl_khr_command_buffer" typedef cl_bitfield cl_device_command_buffer_capabilities_khr; typedef struct _cl_command_buffer_khr* cl_command_buffer_khr; @@ -56,7 +52,7 @@ typedef struct _cl_mutable_command_khr* cl_mutable_command_khr; /* cl_command_buffer_properties_khr */ #define CL_COMMAND_BUFFER_FLAGS_KHR 0x1293 -/* cl_command_buffer_flags_khr */ +/* cl_command_buffer_flags_khr - bitfield */ #define CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR (1 << 0) /* Error codes */ @@ -82,26 +78,54 @@ typedef struct _cl_mutable_command_khr* cl_mutable_command_khr; #define CL_COMMAND_COMMAND_BUFFER_KHR 0x12A8 -typedef cl_command_buffer_khr (CL_API_CALL * +extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL +clCreateCommandBufferKHR( + cl_uint num_queues, + const cl_command_queue* queues, + const cl_command_buffer_properties_khr* properties, + cl_int* errcode_ret) ; + +typedef CL_API_ENTRY cl_command_buffer_khr (CL_API_CALL * clCreateCommandBufferKHR_fn)( cl_uint num_queues, const cl_command_queue* queues, const cl_command_buffer_properties_khr* properties, cl_int* errcode_ret) ; -typedef cl_int (CL_API_CALL * +extern CL_API_ENTRY cl_int CL_API_CALL +clFinalizeCommandBufferKHR( + cl_command_buffer_khr command_buffer) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * clFinalizeCommandBufferKHR_fn)( cl_command_buffer_khr command_buffer) ; -typedef cl_int (CL_API_CALL * +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainCommandBufferKHR( + cl_command_buffer_khr command_buffer) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * clRetainCommandBufferKHR_fn)( cl_command_buffer_khr command_buffer) ; -typedef cl_int (CL_API_CALL * +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseCommandBufferKHR( + cl_command_buffer_khr command_buffer) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * clReleaseCommandBufferKHR_fn)( cl_command_buffer_khr command_buffer) ; -typedef cl_int (CL_API_CALL * +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueCommandBufferKHR( + cl_uint num_queues, + cl_command_queue* queues, + cl_command_buffer_khr command_buffer, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * clEnqueueCommandBufferKHR_fn)( cl_uint num_queues, cl_command_queue* queues, @@ -110,8 +134,8 @@ clEnqueueCommandBufferKHR_fn)( const cl_event* event_wait_list, cl_event* event) ; -typedef cl_int (CL_API_CALL * -clCommandBarrierWithWaitListKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandBarrierWithWaitListKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_uint num_sync_points_in_wait_list, @@ -119,208 +143,128 @@ clCommandBarrierWithWaitListKHR_fn)( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandCopyBufferKHR_fn)( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCommandBarrierWithWaitListKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_buffer, - cl_mem dst_buffer, - size_t src_offset, - size_t dst_offset, - size_t size, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandCopyBufferRectKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyBufferKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, - const size_t* src_origin, - const size_t* dst_origin, - const size_t* region, - size_t src_row_pitch, - size_t src_slice_pitch, - size_t dst_row_pitch, - size_t dst_slice_pitch, + size_t src_offset, + size_t dst_offset, + size_t size, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandCopyBufferToImageKHR_fn)( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCommandCopyBufferKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_buffer, - cl_mem dst_image, + cl_mem dst_buffer, size_t src_offset, - const size_t* dst_origin, - const size_t* region, + size_t dst_offset, + size_t size, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandCopyImageKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyBufferRectKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_image, - cl_mem dst_image, + cl_mem src_buffer, + cl_mem dst_buffer, const size_t* src_origin, const size_t* dst_origin, const size_t* region, + size_t src_row_pitch, + size_t src_slice_pitch, + size_t dst_row_pitch, + size_t dst_slice_pitch, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandCopyImageToBufferKHR_fn)( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCommandCopyBufferRectKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_image, + cl_mem src_buffer, cl_mem dst_buffer, const size_t* src_origin, + const size_t* dst_origin, const size_t* region, - size_t dst_offset, - cl_uint num_sync_points_in_wait_list, - const cl_sync_point_khr* sync_point_wait_list, - cl_sync_point_khr* sync_point, - cl_mutable_command_khr* mutable_handle) ; - -typedef cl_int (CL_API_CALL * -clCommandFillBufferKHR_fn)( - cl_command_buffer_khr command_buffer, - cl_command_queue command_queue, - cl_mem buffer, - const void* pattern, - size_t pattern_size, - size_t offset, - size_t size, - cl_uint num_sync_points_in_wait_list, - const cl_sync_point_khr* sync_point_wait_list, - cl_sync_point_khr* sync_point, - cl_mutable_command_khr* mutable_handle) ; - -typedef cl_int (CL_API_CALL * -clCommandFillImageKHR_fn)( - cl_command_buffer_khr command_buffer, - cl_command_queue command_queue, - cl_mem image, - const void* fill_color, - const size_t* origin, - const size_t* region, - cl_uint num_sync_points_in_wait_list, - const cl_sync_point_khr* sync_point_wait_list, - cl_sync_point_khr* sync_point, - cl_mutable_command_khr* mutable_handle) ; - -typedef cl_int (CL_API_CALL * -clCommandNDRangeKernelKHR_fn)( - cl_command_buffer_khr command_buffer, - cl_command_queue command_queue, - const cl_ndrange_kernel_command_properties_khr* properties, - cl_kernel kernel, - cl_uint work_dim, - const size_t* global_work_offset, - const size_t* global_work_size, - const size_t* local_work_size, + size_t src_row_pitch, + size_t src_slice_pitch, + size_t dst_row_pitch, + size_t dst_slice_pitch, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clGetCommandBufferInfoKHR_fn)( - cl_command_buffer_khr command_buffer, - cl_command_buffer_info_khr param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) ; - -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL -clCreateCommandBufferKHR( - cl_uint num_queues, - const cl_command_queue* queues, - const cl_command_buffer_properties_khr* properties, - cl_int* errcode_ret) ; - -extern CL_API_ENTRY cl_int CL_API_CALL -clFinalizeCommandBufferKHR( - cl_command_buffer_khr command_buffer) ; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainCommandBufferKHR( - cl_command_buffer_khr command_buffer) ; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseCommandBufferKHR( - cl_command_buffer_khr command_buffer) ; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueCommandBufferKHR( - cl_uint num_queues, - cl_command_queue* queues, - cl_command_buffer_khr command_buffer, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; - extern CL_API_ENTRY cl_int CL_API_CALL -clCommandBarrierWithWaitListKHR( +clCommandCopyBufferToImageKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_image, + size_t src_offset, + const size_t* dst_origin, + const size_t* region, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyBufferKHR( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCommandCopyBufferToImageKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_buffer, - cl_mem dst_buffer, + cl_mem dst_image, size_t src_offset, - size_t dst_offset, - size_t size, + const size_t* dst_origin, + const size_t* region, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyBufferRectKHR( +clCommandCopyImageKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_buffer, - cl_mem dst_buffer, + cl_mem src_image, + cl_mem dst_image, const size_t* src_origin, const size_t* dst_origin, const size_t* region, - size_t src_row_pitch, - size_t src_slice_pitch, - size_t dst_row_pitch, - size_t dst_slice_pitch, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyBufferToImageKHR( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCommandCopyImageKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_buffer, + cl_mem src_image, cl_mem dst_image, - size_t src_offset, + const size_t* src_origin, const size_t* dst_origin, const size_t* region, cl_uint num_sync_points_in_wait_list, @@ -329,21 +273,21 @@ clCommandCopyBufferToImageKHR( cl_mutable_command_khr* mutable_handle) ; extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyImageKHR( +clCommandCopyImageToBufferKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_image, - cl_mem dst_image, + cl_mem dst_buffer, const size_t* src_origin, - const size_t* dst_origin, const size_t* region, + size_t dst_offset, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyImageToBufferKHR( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCommandCopyImageToBufferKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_image, @@ -370,6 +314,20 @@ clCommandFillBufferKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCommandFillBufferKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem buffer, + const void* pattern, + size_t pattern_size, + size_t offset, + size_t size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + extern CL_API_ENTRY cl_int CL_API_CALL clCommandFillImageKHR( cl_command_buffer_khr command_buffer, @@ -383,6 +341,19 @@ clCommandFillImageKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCommandFillImageKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem image, + const void* fill_color, + const size_t* origin, + const size_t* region, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + extern CL_API_ENTRY cl_int CL_API_CALL clCommandNDRangeKernelKHR( cl_command_buffer_khr command_buffer, @@ -398,6 +369,21 @@ clCommandNDRangeKernelKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCommandNDRangeKernelKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + const cl_ndrange_kernel_command_properties_khr* properties, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + const size_t* local_work_size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + extern CL_API_ENTRY cl_int CL_API_CALL clGetCommandBufferInfoKHR( cl_command_buffer_khr command_buffer, @@ -406,732 +392,74 @@ clGetCommandBufferInfoKHR( void* param_value, size_t* param_value_size_ret) ; -#endif /* CL_NO_PROTOTYPES */ - -/*************************************************************** -* cl_khr_command_buffer_mutable_dispatch -***************************************************************/ -#define cl_khr_command_buffer_mutable_dispatch 1 -#define CL_KHR_COMMAND_BUFFER_MUTABLE_DISPATCH_EXTENSION_NAME \ - "cl_khr_command_buffer_mutable_dispatch" - -typedef cl_uint cl_command_buffer_structure_type_khr; -typedef cl_bitfield cl_mutable_dispatch_fields_khr; -typedef cl_uint cl_mutable_command_info_khr; -typedef struct _cl_mutable_dispatch_arg_khr { - cl_uint arg_index; - size_t arg_size; - const void* arg_value; -} cl_mutable_dispatch_arg_khr; -typedef struct _cl_mutable_dispatch_exec_info_khr { - cl_uint param_name; - size_t param_value_size; - const void* param_value; -} cl_mutable_dispatch_exec_info_khr; -typedef struct _cl_mutable_dispatch_config_khr { - cl_command_buffer_structure_type_khr type; - const void* next; - cl_mutable_command_khr command; - cl_uint num_args; - cl_uint num_svm_args; - cl_uint num_exec_infos; - cl_uint work_dim; - const cl_mutable_dispatch_arg_khr* arg_list; - const cl_mutable_dispatch_arg_khr* arg_svm_list; - const cl_mutable_dispatch_exec_info_khr* exec_info_list; - const size_t* global_work_offset; - const size_t* global_work_size; - const size_t* local_work_size; -} cl_mutable_dispatch_config_khr; -typedef struct _cl_mutable_base_config_khr { - cl_command_buffer_structure_type_khr type; - const void* next; - cl_uint num_mutable_dispatch; - const cl_mutable_dispatch_config_khr* mutable_dispatch_list; -} cl_mutable_base_config_khr; - -/* cl_command_buffer_flags_khr - bitfield */ -#define CL_COMMAND_BUFFER_MUTABLE_KHR (1 << 1) - -/* Error codes */ -#define CL_INVALID_MUTABLE_COMMAND_KHR -1141 - -/* cl_device_info */ -#define CL_DEVICE_MUTABLE_DISPATCH_CAPABILITIES_KHR 0x12B0 - -/* cl_ndrange_kernel_command_properties_khr */ -#define CL_MUTABLE_DISPATCH_UPDATABLE_FIELDS_KHR 0x12B1 - -/* cl_mutable_dispatch_fields_khr - bitfield */ -#define CL_MUTABLE_DISPATCH_GLOBAL_OFFSET_KHR (1 << 0) -#define CL_MUTABLE_DISPATCH_GLOBAL_SIZE_KHR (1 << 1) -#define CL_MUTABLE_DISPATCH_LOCAL_SIZE_KHR (1 << 2) -#define CL_MUTABLE_DISPATCH_ARGUMENTS_KHR (1 << 3) -#define CL_MUTABLE_DISPATCH_EXEC_INFO_KHR (1 << 4) - -/* cl_mutable_command_info_khr */ -#define CL_MUTABLE_COMMAND_COMMAND_QUEUE_KHR 0x12A0 -#define CL_MUTABLE_COMMAND_COMMAND_BUFFER_KHR 0x12A1 -#define CL_MUTABLE_COMMAND_COMMAND_TYPE_KHR 0x12AD -#define CL_MUTABLE_DISPATCH_PROPERTIES_ARRAY_KHR 0x12A2 -#define CL_MUTABLE_DISPATCH_KERNEL_KHR 0x12A3 -#define CL_MUTABLE_DISPATCH_DIMENSIONS_KHR 0x12A4 -#define CL_MUTABLE_DISPATCH_GLOBAL_WORK_OFFSET_KHR 0x12A5 -#define CL_MUTABLE_DISPATCH_GLOBAL_WORK_SIZE_KHR 0x12A6 -#define CL_MUTABLE_DISPATCH_LOCAL_WORK_SIZE_KHR 0x12A7 - -/* cl_command_buffer_structure_type_khr */ -#define CL_STRUCTURE_TYPE_MUTABLE_BASE_CONFIG_KHR 0 -#define CL_STRUCTURE_TYPE_MUTABLE_DISPATCH_CONFIG_KHR 1 - - -typedef cl_int (CL_API_CALL * -clUpdateMutableCommandsKHR_fn)( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetCommandBufferInfoKHR_fn)( cl_command_buffer_khr command_buffer, - const cl_mutable_base_config_khr* mutable_config) ; - -typedef cl_int (CL_API_CALL * -clGetMutableCommandInfoKHR_fn)( - cl_mutable_command_khr command, - cl_mutable_command_info_khr param_name, + cl_command_buffer_info_khr param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) ; -#ifndef CL_NO_PROTOTYPES +/*************************************************************** +* cl_khr_create_command_queue +***************************************************************/ +#define cl_khr_create_command_queue 1 +#define CL_KHR_CREATE_COMMAND_QUEUE "cl_khr_create_command_queue" -extern CL_API_ENTRY cl_int CL_API_CALL -clUpdateMutableCommandsKHR( - cl_command_buffer_khr command_buffer, - const cl_mutable_base_config_khr* mutable_config) ; +typedef cl_properties cl_queue_properties_khr; -extern CL_API_ENTRY cl_int CL_API_CALL -clGetMutableCommandInfoKHR( - cl_mutable_command_khr command, - cl_mutable_command_info_khr param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) ; - -#endif /* CL_NO_PROTOTYPES */ - -/* cl_khr_fp64 extension - no extension #define since it has no functions */ -/* CL_DEVICE_DOUBLE_FP_CONFIG is defined in CL.h for OpenCL >= 120 */ - -#if CL_TARGET_OPENCL_VERSION <= 110 -#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 -#endif - -/* cl_khr_fp16 extension - no extension #define since it has no functions */ -#define CL_DEVICE_HALF_FP_CONFIG 0x1033 - -/* Memory object destruction - * - * Apple extension for use to manage externally allocated buffers used with cl_mem objects with CL_MEM_USE_HOST_PTR - * - * Registers a user callback function that will be called when the memory object is deleted and its resources - * freed. Each call to clSetMemObjectCallbackFn registers the specified user callback function on a callback - * stack associated with memobj. The registered user callback functions are called in the reverse order in - * which they were registered. The user callback functions are called and then the memory object is deleted - * and its resources freed. This provides a mechanism for the application (and libraries) using memobj to be - * notified when the memory referenced by host_ptr, specified when the memory object is created and used as - * the storage bits for the memory object, can be reused or freed. - * - * The application may not call CL api's with the cl_mem object passed to the pfn_notify. - * - * Please check for the "cl_APPLE_SetMemObjectDestructor" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) - * before using. - */ -#define cl_APPLE_SetMemObjectDestructor 1 -extern CL_API_ENTRY cl_int CL_API_CALL clSetMemObjectDestructorAPPLE( cl_mem memobj, - void (* pfn_notify)(cl_mem memobj, void * user_data), - void * user_data) CL_API_SUFFIX__VERSION_1_0; - - -/* Context Logging Functions - * - * The next three convenience functions are intended to be used as the pfn_notify parameter to clCreateContext(). - * Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) - * before using. - * - * clLogMessagesToSystemLog forwards on all log messages to the Apple System Logger - */ -#define cl_APPLE_ContextLoggingFunctions 1 -extern CL_API_ENTRY void CL_API_CALL clLogMessagesToSystemLogAPPLE( const char * errstr, - const void * private_info, - size_t cb, - void * user_data) CL_API_SUFFIX__VERSION_1_0; - -/* clLogMessagesToStdout sends all log messages to the file descriptor stdout */ -extern CL_API_ENTRY void CL_API_CALL clLogMessagesToStdoutAPPLE( const char * errstr, - const void * private_info, - size_t cb, - void * user_data) CL_API_SUFFIX__VERSION_1_0; - -/* clLogMessagesToStderr sends all log messages to the file descriptor stderr */ -extern CL_API_ENTRY void CL_API_CALL clLogMessagesToStderrAPPLE( const char * errstr, - const void * private_info, - size_t cb, - void * user_data) CL_API_SUFFIX__VERSION_1_0; - - -/************************ -* cl_khr_icd extension * -************************/ -#define cl_khr_icd 1 - -/* cl_platform_info */ -#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 - -/* Additional Error Codes */ -#define CL_PLATFORM_NOT_FOUND_KHR -1001 - -extern CL_API_ENTRY cl_int CL_API_CALL -clIcdGetPlatformIDsKHR(cl_uint num_entries, - cl_platform_id * platforms, - cl_uint * num_platforms); - -typedef cl_int -(CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(cl_uint num_entries, - cl_platform_id * platforms, - cl_uint * num_platforms); - - -/******************************* - * cl_khr_il_program extension * - *******************************/ -#define cl_khr_il_program 1 - -/* New property to clGetDeviceInfo for retrieving supported intermediate - * languages - */ -#define CL_DEVICE_IL_VERSION_KHR 0x105B - -/* New property to clGetProgramInfo for retrieving for retrieving the IL of a - * program - */ -#define CL_PROGRAM_IL_KHR 0x1169 - -extern CL_API_ENTRY cl_program CL_API_CALL -clCreateProgramWithILKHR(cl_context context, - const void * il, - size_t length, - cl_int * errcode_ret); - -typedef cl_program -(CL_API_CALL *clCreateProgramWithILKHR_fn)(cl_context context, - const void * il, - size_t length, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -/* Extension: cl_khr_image2d_from_buffer - * - * This extension allows a 2D image to be created from a cl_mem buffer without - * a copy. The type associated with a 2D image created from a buffer in an - * OpenCL program is image2d_t. Both the sampler and sampler-less read_image - * built-in functions are supported for 2D images and 2D images created from - * a buffer. Similarly, the write_image built-ins are also supported for 2D - * images created from a buffer. - * - * When the 2D image from buffer is created, the client must specify the - * width, height, image format (i.e. channel order and channel data type) - * and optionally the row pitch. - * - * The pitch specified must be a multiple of - * CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR pixels. - * The base address of the buffer must be aligned to - * CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR pixels. - */ - -#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A -#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B - - -/************************************** - * cl_khr_initialize_memory extension * - **************************************/ - -#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 - - -/************************************** - * cl_khr_terminate_context extension * - **************************************/ - -#define CL_CONTEXT_TERMINATED_KHR -1121 - -#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 -#define CL_CONTEXT_TERMINATE_KHR 0x2032 - -#define cl_khr_terminate_context 1 -extern CL_API_ENTRY cl_int CL_API_CALL -clTerminateContextKHR(cl_context context) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int -(CL_API_CALL *clTerminateContextKHR_fn)(cl_context context) CL_API_SUFFIX__VERSION_1_2; - - -/* - * Extension: cl_khr_spir - * - * This extension adds support to create an OpenCL program object from a - * Standard Portable Intermediate Representation (SPIR) instance - */ - -#define CL_DEVICE_SPIR_VERSIONS 0x40E0 -#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 - - -/***************************************** - * cl_khr_create_command_queue extension * - *****************************************/ -#define cl_khr_create_command_queue 1 - -typedef cl_properties cl_queue_properties_khr; extern CL_API_ENTRY cl_command_queue CL_API_CALL -clCreateCommandQueueWithPropertiesKHR(cl_context context, - cl_device_id device, - const cl_queue_properties_khr* properties, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_command_queue -(CL_API_CALL *clCreateCommandQueueWithPropertiesKHR_fn)(cl_context context, - cl_device_id device, - const cl_queue_properties_khr* properties, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - - -/****************************************** -* cl_nv_device_attribute_query extension * -******************************************/ - -/* cl_nv_device_attribute_query extension - no extension #define since it has no functions */ -#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 -#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 -#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 -#define CL_DEVICE_WARP_SIZE_NV 0x4003 -#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 -#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 -#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 - - -/********************************* -* cl_amd_device_attribute_query * -*********************************/ - -#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 -#define CL_DEVICE_TOPOLOGY_AMD 0x4037 -#define CL_DEVICE_BOARD_NAME_AMD 0x4038 -#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 -#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 -#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 -#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 -#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 -#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 -#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 -#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 -#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 -#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 -#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 -#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A -#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B -#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C -#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 -#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 -#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 -#define CL_DEVICE_PCIE_ID_AMD 0x4034 - - -/********************************* -* cl_arm_printf extension -*********************************/ - -#define CL_PRINTF_CALLBACK_ARM 0x40B0 -#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 - - -/*********************************** -* cl_ext_device_fission extension -***********************************/ -#define cl_ext_device_fission 1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseDeviceEXT(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int -(CL_API_CALL *clReleaseDeviceEXT_fn)(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainDeviceEXT(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int -(CL_API_CALL *clRetainDeviceEXT_fn)(cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_ulong cl_device_partition_property_ext; -extern CL_API_ENTRY cl_int CL_API_CALL -clCreateSubDevicesEXT(cl_device_id in_device, - const cl_device_partition_property_ext * properties, - cl_uint num_entries, - cl_device_id * out_devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_1; - -typedef cl_int -(CL_API_CALL * clCreateSubDevicesEXT_fn)(cl_device_id in_device, - const cl_device_partition_property_ext * properties, - cl_uint num_entries, - cl_device_id * out_devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_1; - -/* cl_device_partition_property_ext */ -#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 -#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 -#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 -#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 - -/* clDeviceGetInfo selectors */ -#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 -#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 -#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 -#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 -#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 - -/* error codes */ -#define CL_DEVICE_PARTITION_FAILED_EXT -1057 -#define CL_INVALID_PARTITION_COUNT_EXT -1058 -#define CL_INVALID_PARTITION_NAME_EXT -1059 - -/* CL_AFFINITY_DOMAINs */ -#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 -#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 -#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 -#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 -#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 -#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 - -/* cl_device_partition_property_ext list terminators */ -#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext) 0) -#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0) -#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1) - - -/*********************************** - * cl_ext_migrate_memobject extension definitions - ***********************************/ -#define cl_ext_migrate_memobject 1 - -typedef cl_bitfield cl_mem_migration_flags_ext; - -#define CL_MIGRATE_MEM_OBJECT_HOST_EXT 0x1 - -#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemObjectEXT(cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem * mem_objects, - cl_mem_migration_flags_ext flags, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); - -typedef cl_int -(CL_API_CALL *clEnqueueMigrateMemObjectEXT_fn)(cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem * mem_objects, - cl_mem_migration_flags_ext flags, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); - - -/********************************* -* cl_ext_cxx_for_opencl extension -*********************************/ -#define cl_ext_cxx_for_opencl 1 - -#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 - -/********************************* -* cl_qcom_ext_host_ptr extension -*********************************/ -#define cl_qcom_ext_host_ptr 1 - -#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) - -#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 -#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 -#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 -#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 -#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 -#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 -#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 -#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 - -typedef cl_uint cl_image_pitch_info_qcom; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceImageInfoQCOM(cl_device_id device, - size_t image_width, - size_t image_height, - const cl_image_format *image_format, - cl_image_pitch_info_qcom param_name, - size_t param_value_size, - void *param_value, - size_t *param_value_size_ret); - -typedef struct _cl_mem_ext_host_ptr -{ - /* Type of external memory allocation. */ - /* Legal values will be defined in layered extensions. */ - cl_uint allocation_type; - - /* Host cache policy for this external memory allocation. */ - cl_uint host_cache_policy; - -} cl_mem_ext_host_ptr; - - -/******************************************* -* cl_qcom_ext_host_ptr_iocoherent extension -********************************************/ - -/* Cache policy specifying io-coherence */ -#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 - - -/********************************* -* cl_qcom_ion_host_ptr extension -*********************************/ - -#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 - -typedef struct _cl_mem_ion_host_ptr -{ - /* Type of external memory allocation. */ - /* Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations. */ - cl_mem_ext_host_ptr ext_host_ptr; - - /* ION file descriptor */ - int ion_filedesc; - - /* Host pointer to the ION allocated memory */ - void* ion_hostptr; - -} cl_mem_ion_host_ptr; - - -/********************************* -* cl_qcom_android_native_buffer_host_ptr extension -*********************************/ - -#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 - -typedef struct _cl_mem_android_native_buffer_host_ptr -{ - /* Type of external memory allocation. */ - /* Must be CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM for Android native buffers. */ - cl_mem_ext_host_ptr ext_host_ptr; - - /* Virtual pointer to the android native buffer */ - void* anb_ptr; - -} cl_mem_android_native_buffer_host_ptr; - - -/****************************************** - * cl_img_yuv_image extension * - ******************************************/ - -/* Image formats used in clCreateImage */ -#define CL_NV21_IMG 0x40D0 -#define CL_YV12_IMG 0x40D1 - - -/****************************************** - * cl_img_cached_allocations extension * - ******************************************/ - -/* Flag values used by clCreateBuffer */ -#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) -#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) - - -/****************************************** - * cl_img_use_gralloc_ptr extension * - ******************************************/ -#define cl_img_use_gralloc_ptr 1 - -/* Flag values used by clCreateBuffer */ -#define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) - -/* To be used by clGetEventInfo: */ -#define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 -#define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 - -/* Error codes from clEnqueueAcquireGrallocObjectsIMG and clEnqueueReleaseGrallocObjectsIMG */ -#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 -#define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireGrallocObjectsIMG(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_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseGrallocObjectsIMG(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_API_SUFFIX__VERSION_1_2; - -/****************************************** - * cl_img_generate_mipmap extension * - ******************************************/ -#define cl_img_generate_mipmap 1 - -typedef cl_uint cl_mipmap_filter_mode_img; - -/* To be used by clEnqueueGenerateMipmapIMG */ -#define CL_MIPMAP_FILTER_ANY_IMG 0x0 -#define CL_MIPMAP_FILTER_BOX_IMG 0x1 - -/* To be used by clGetEventInfo */ -#define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueGenerateMipmapIMG(cl_command_queue command_queue, - cl_mem src_image, - cl_mem dst_image, - cl_mipmap_filter_mode_img mipmap_filter_mode, - const size_t *array_region, - const size_t *mip_region, - cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_API_SUFFIX__VERSION_1_2; - -/****************************************** - * cl_img_mem_properties extension * - ******************************************/ -#define cl_img_mem_properties 1 - -/* To be used by clCreateBufferWithProperties */ -#define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 - -/* To be used wiith the CL_MEM_ALLOC_FLAGS_IMG property */ -typedef cl_bitfield cl_mem_alloc_flags_img; +clCreateCommandQueueWithPropertiesKHR( + cl_context context, + cl_device_id device, + const cl_queue_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -/* To be used with cl_mem_alloc_flags_img */ -#define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) +typedef CL_API_ENTRY cl_command_queue (CL_API_CALL * +clCreateCommandQueueWithPropertiesKHR_fn)( + cl_context context, + cl_device_id device, + const cl_queue_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -/********************************* -* cl_khr_subgroups extension -*********************************/ -#define cl_khr_subgroups 1 +/*************************************************************** +* cl_khr_depth_images +***************************************************************/ +#define cl_khr_depth_images 1 +#define CL_KHR_DEPTH_IMAGES "cl_khr_depth_images" -#if !defined(CL_VERSION_2_1) -/* For OpenCL 2.1 and newer, cl_kernel_sub_group_info is declared in CL.h. - In hindsight, there should have been a khr suffix on this type for - the extension, but keeping it un-suffixed to maintain backwards - compatibility. */ -typedef cl_uint cl_kernel_sub_group_info; +#if !defined(CL_VERSION_1_2) +/* cl_channel_order - defined in CL.h for OpenCL 1.2 (?) and newer */ +#define CL_DEPTH 0x10BD #endif -/* cl_kernel_sub_group_info */ -#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 -#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSubGroupInfoKHR(cl_kernel in_kernel, - cl_device_id in_device, - cl_kernel_sub_group_info param_name, - size_t input_value_size, - const void * input_value, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; - -typedef cl_int -(CL_API_CALL * clGetKernelSubGroupInfoKHR_fn)(cl_kernel in_kernel, - cl_device_id in_device, - cl_kernel_sub_group_info param_name, - size_t input_value_size, - const void * input_value, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; - - -/********************************* -* cl_khr_mipmap_image extension -*********************************/ - -/* cl_sampler_properties */ -#define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 -#define CL_SAMPLER_LOD_MIN_KHR 0x1156 -#define CL_SAMPLER_LOD_MAX_KHR 0x1157 - - -/********************************* -* cl_khr_priority_hints extension -*********************************/ -/* This extension define is for backwards compatibility. - It shouldn't be required since this extension has no new functions. */ -#define cl_khr_priority_hints 1 - -typedef cl_uint cl_queue_priority_khr; - -/* cl_command_queue_properties */ -#define CL_QUEUE_PRIORITY_KHR 0x1096 - -/* cl_queue_priority_khr */ -#define CL_QUEUE_PRIORITY_HIGH_KHR (1<<0) -#define CL_QUEUE_PRIORITY_MED_KHR (1<<1) -#define CL_QUEUE_PRIORITY_LOW_KHR (1<<2) - - -/********************************* -* cl_khr_throttle_hints extension -*********************************/ -/* This extension define is for backwards compatibility. - It shouldn't be required since this extension has no new functions. */ -#define cl_khr_throttle_hints 1 - -typedef cl_uint cl_queue_throttle_khr; - -/* cl_command_queue_properties */ -#define CL_QUEUE_THROTTLE_KHR 0x1097 - -/* cl_queue_throttle_khr */ -#define CL_QUEUE_THROTTLE_HIGH_KHR (1<<0) -#define CL_QUEUE_THROTTLE_MED_KHR (1<<1) -#define CL_QUEUE_THROTTLE_LOW_KHR (1<<2) - +/*************************************************************** +* cl_khr_device_uuid +***************************************************************/ +#define cl_khr_device_uuid 1 +#define CL_KHR_DEVICE_UUID "cl_khr_device_uuid" -/********************************* -* cl_khr_subgroup_named_barrier -*********************************/ -/* This extension define is for backwards compatibility. - It shouldn't be required since this extension has no new functions. */ -#define cl_khr_subgroup_named_barrier 1 +/* Size Constants */ +#define CL_UUID_SIZE_KHR 16 +#define CL_LUID_SIZE_KHR 8 /* cl_device_info */ -#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 - +#define CL_DEVICE_UUID_KHR 0x106A +#define CL_DRIVER_UUID_KHR 0x106B +#define CL_DEVICE_LUID_VALID_KHR 0x106C +#define CL_DEVICE_LUID_KHR 0x106D +#define CL_DEVICE_NODE_MASK_KHR 0x106E -/********************************* +/*************************************************************** * cl_khr_extended_versioning -*********************************/ - +***************************************************************/ #define cl_khr_extended_versioning 1 +#define CL_KHR_EXTENDED_VERSIONING "cl_khr_extended_versioning" -#define CL_VERSION_MAJOR_BITS_KHR (10) -#define CL_VERSION_MINOR_BITS_KHR (10) -#define CL_VERSION_PATCH_BITS_KHR (12) +#define CL_VERSION_MAJOR_BITS_KHR 10 +#define CL_VERSION_MINOR_BITS_KHR 10 +#define CL_VERSION_PATCH_BITS_KHR 12 #define CL_VERSION_MAJOR_MASK_KHR ((1 << CL_VERSION_MAJOR_BITS_KHR) - 1) #define CL_VERSION_MINOR_MASK_KHR ((1 << CL_VERSION_MINOR_BITS_KHR) - 1) @@ -1146,113 +474,30 @@ typedef cl_uint cl_queue_throttle_khr; (((minor) & CL_VERSION_MINOR_MASK_KHR) << CL_VERSION_PATCH_BITS_KHR) | \ ((patch) & CL_VERSION_PATCH_MASK_KHR)) -typedef cl_uint cl_version_khr; - -#define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 +#define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 -typedef struct _cl_name_version_khr -{ +typedef cl_uint cl_version_khr; +typedef struct _cl_name_version_khr { cl_version_khr version; char name[CL_NAME_VERSION_MAX_NAME_SIZE_KHR]; } cl_name_version_khr; /* cl_platform_info */ -#define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 -#define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 - -/* cl_device_info */ -#define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E -#define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F -#define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 -#define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 -#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 - - -/********************************* -* cl_khr_device_uuid extension -*********************************/ -#define cl_khr_device_uuid 1 - -#define CL_UUID_SIZE_KHR 16 -#define CL_LUID_SIZE_KHR 8 - -#define CL_DEVICE_UUID_KHR 0x106A -#define CL_DRIVER_UUID_KHR 0x106B -#define CL_DEVICE_LUID_VALID_KHR 0x106C -#define CL_DEVICE_LUID_KHR 0x106D -#define CL_DEVICE_NODE_MASK_KHR 0x106E - - -/*************************************************************** -* cl_khr_pci_bus_info -***************************************************************/ -#define cl_khr_pci_bus_info 1 - -typedef struct _cl_device_pci_bus_info_khr { - cl_uint pci_domain; - cl_uint pci_bus; - cl_uint pci_device; - cl_uint pci_function; -} cl_device_pci_bus_info_khr; - -/* cl_device_info */ -#define CL_DEVICE_PCI_BUS_INFO_KHR 0x410F - - -/*************************************************************** -* cl_khr_suggested_local_work_size -***************************************************************/ -#define cl_khr_suggested_local_work_size 1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSuggestedLocalWorkSizeKHR( - cl_command_queue command_queue, - cl_kernel kernel, - cl_uint work_dim, - const size_t* global_work_offset, - const size_t* global_work_size, - size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; - -typedef cl_int (CL_API_CALL * -clGetKernelSuggestedLocalWorkSizeKHR_fn)( - cl_command_queue command_queue, - cl_kernel kernel, - cl_uint work_dim, - const size_t* global_work_offset, - const size_t* global_work_size, - size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; - - -/*************************************************************** -* cl_khr_integer_dot_product -***************************************************************/ -#define cl_khr_integer_dot_product 1 - -typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr; - -/* cl_device_integer_dot_product_capabilities_khr */ -#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0) -#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) - -typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { - cl_bool signed_accelerated; - cl_bool unsigned_accelerated; - cl_bool mixed_signedness_accelerated; - cl_bool accumulating_saturating_signed_accelerated; - cl_bool accumulating_saturating_unsigned_accelerated; - cl_bool accumulating_saturating_mixed_signedness_accelerated; -} cl_device_integer_dot_product_acceleration_properties_khr; +#define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 +#define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 /* cl_device_info */ -#define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073 -#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR 0x1074 -#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR 0x1075 - +#define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E +#define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F +#define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 +#define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 +#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 /*************************************************************** * cl_khr_external_memory ***************************************************************/ #define cl_khr_external_memory 1 +#define CL_KHR_EXTERNAL_MEMORY "cl_khr_external_memory" typedef cl_uint cl_external_memory_handle_type_khr; @@ -1271,8 +516,8 @@ typedef cl_uint cl_external_memory_handle_type_khr; #define CL_COMMAND_RELEASE_EXTERNAL_MEM_OBJECTS_KHR 0x2048 -typedef cl_int (CL_API_CALL * -clEnqueueAcquireExternalMemObjectsKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireExternalMemObjectsKHR( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -1280,8 +525,8 @@ clEnqueueAcquireExternalMemObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseExternalMemObjectsKHR_fn)( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueAcquireExternalMemObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -1290,7 +535,7 @@ clEnqueueReleaseExternalMemObjectsKHR_fn)( cl_event* event) CL_API_SUFFIX__VERSION_3_0; extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireExternalMemObjectsKHR( +clEnqueueReleaseExternalMemObjectsKHR( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -1298,8 +543,8 @@ clEnqueueAcquireExternalMemObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseExternalMemObjectsKHR( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueReleaseExternalMemObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -1311,6 +556,7 @@ clEnqueueReleaseExternalMemObjectsKHR( * cl_khr_external_memory_dma_buf ***************************************************************/ #define cl_khr_external_memory_dma_buf 1 +#define CL_KHR_EXTERNAL_MEMORY_DMA_BUF "cl_khr_external_memory_dma_buf" /* cl_external_memory_handle_type_khr */ #define CL_EXTERNAL_MEMORY_HANDLE_DMA_BUF_KHR 0x2067 @@ -1319,6 +565,7 @@ clEnqueueReleaseExternalMemObjectsKHR( * cl_khr_external_memory_dx ***************************************************************/ #define cl_khr_external_memory_dx 1 +#define CL_KHR_EXTERNAL_MEMORY_DX "cl_khr_external_memory_dx" /* cl_external_memory_handle_type_khr */ #define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR 0x2063 @@ -1330,6 +577,7 @@ clEnqueueReleaseExternalMemObjectsKHR( * cl_khr_external_memory_opaque_fd ***************************************************************/ #define cl_khr_external_memory_opaque_fd 1 +#define CL_KHR_EXTERNAL_MEMORY_OPAQUE_FD "cl_khr_external_memory_opaque_fd" /* cl_external_memory_handle_type_khr */ #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_FD_KHR 0x2060 @@ -1338,6 +586,7 @@ clEnqueueReleaseExternalMemObjectsKHR( * cl_khr_external_memory_win32 ***************************************************************/ #define cl_khr_external_memory_win32 1 +#define CL_KHR_EXTERNAL_MEMORY_WIN32 "cl_khr_external_memory_win32" /* cl_external_memory_handle_type_khr */ #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR 0x2061 @@ -1347,6 +596,7 @@ clEnqueueReleaseExternalMemObjectsKHR( * cl_khr_external_semaphore ***************************************************************/ #define cl_khr_external_semaphore 1 +#define CL_KHR_EXTERNAL_SEMAPHORE "cl_khr_external_semaphore" typedef struct _cl_semaphore_khr * cl_semaphore_khr; typedef cl_uint cl_external_semaphore_handle_type_khr; @@ -1364,8 +614,8 @@ typedef cl_uint cl_external_semaphore_handle_type_khr; #define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_LIST_END_KHR 0 -typedef cl_int (CL_API_CALL * -clGetSemaphoreHandleForTypeKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSemaphoreHandleForTypeKHR( cl_semaphore_khr sema_object, cl_device_id device, cl_external_semaphore_handle_type_khr handle_type, @@ -1373,8 +623,8 @@ clGetSemaphoreHandleForTypeKHR_fn)( void* handle_ptr, size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSemaphoreHandleForTypeKHR( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetSemaphoreHandleForTypeKHR_fn)( cl_semaphore_khr sema_object, cl_device_id device, cl_external_semaphore_handle_type_khr handle_type, @@ -1386,6 +636,7 @@ clGetSemaphoreHandleForTypeKHR( * cl_khr_external_semaphore_dx_fence ***************************************************************/ #define cl_khr_external_semaphore_dx_fence 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_DX_FENCE "cl_khr_external_semaphore_dx_fence" /* cl_external_semaphore_handle_type_khr */ #define CL_SEMAPHORE_HANDLE_D3D12_FENCE_KHR 0x2059 @@ -1394,6 +645,7 @@ clGetSemaphoreHandleForTypeKHR( * cl_khr_external_semaphore_opaque_fd ***************************************************************/ #define cl_khr_external_semaphore_opaque_fd 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_OPAQUE_FD "cl_khr_external_semaphore_opaque_fd" /* cl_external_semaphore_handle_type_khr */ #define CL_SEMAPHORE_HANDLE_OPAQUE_FD_KHR 0x2055 @@ -1402,6 +654,7 @@ clGetSemaphoreHandleForTypeKHR( * cl_khr_external_semaphore_sync_fd ***************************************************************/ #define cl_khr_external_semaphore_sync_fd 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_SYNC_FD "cl_khr_external_semaphore_sync_fd" /* cl_external_semaphore_handle_type_khr */ #define CL_SEMAPHORE_HANDLE_SYNC_FD_KHR 0x2058 @@ -1410,19 +663,181 @@ clGetSemaphoreHandleForTypeKHR( * cl_khr_external_semaphore_win32 ***************************************************************/ #define cl_khr_external_semaphore_win32 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_WIN32 "cl_khr_external_semaphore_win32" /* cl_external_semaphore_handle_type_khr */ #define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR 0x2056 #define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2057 /*************************************************************** -* cl_khr_semaphore +* cl_khr_fp16 ***************************************************************/ -#define cl_khr_semaphore 1 +#define cl_khr_fp16 1 +#define CL_KHR_FP16 "cl_khr_fp16" -/* type cl_semaphore_khr */ -typedef cl_properties cl_semaphore_properties_khr; -typedef cl_uint cl_semaphore_info_khr; +/* cl_device_info */ +#define CL_DEVICE_HALF_FP_CONFIG 0x1033 + +/*************************************************************** +* cl_khr_fp64 +***************************************************************/ +#define cl_khr_fp64 1 +#define CL_KHR_FP64 "cl_khr_fp64" + +#if !defined(CL_VERSION_1_2) +/* cl_device_info - defined in CL.h for OpenCL 1.2 and newer */ +#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 +#endif + +/*************************************************************** +* cl_khr_icd +***************************************************************/ +#define cl_khr_icd 1 +#define CL_KHR_ICD "cl_khr_icd" + +/* cl_platform_info */ +#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 + +/* Error codes */ +#define CL_PLATFORM_NOT_FOUND_KHR -1001 + + +extern CL_API_ENTRY cl_int CL_API_CALL +clIcdGetPlatformIDsKHR( + cl_uint num_entries, + cl_platform_id* platforms, + cl_uint* num_platforms) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clIcdGetPlatformIDsKHR_fn)( + cl_uint num_entries, + cl_platform_id* platforms, + cl_uint* num_platforms) ; + +/*************************************************************** +* cl_khr_il_program +***************************************************************/ +#define cl_khr_il_program 1 +#define CL_KHR_IL_PROGRAM "cl_khr_il_program" + +/* cl_device_info */ +#define CL_DEVICE_IL_VERSION_KHR 0x105B + +/* cl_program_info */ +#define CL_PROGRAM_IL_KHR 0x1169 + + +extern CL_API_ENTRY cl_program CL_API_CALL +clCreateProgramWithILKHR( + cl_context context, + const void* il, + size_t length, + cl_int* errcode_ret) ; + +typedef CL_API_ENTRY cl_program (CL_API_CALL * +clCreateProgramWithILKHR_fn)( + cl_context context, + const void* il, + size_t length, + cl_int* errcode_ret) ; + +/*************************************************************** +* cl_khr_image2D_from_buffer +***************************************************************/ +#define cl_khr_image2D_from_buffer 1 +#define CL_KHR_IMAGE2D_FROM_BUFFER "cl_khr_image2D_from_buffer" + +/* cl_device_info */ +#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A +#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B + +/*************************************************************** +* cl_khr_initialize_memory +***************************************************************/ +#define cl_khr_initialize_memory 1 +#define CL_KHR_INITIALIZE_MEMORY "cl_khr_initialize_memory" + +/* Interop tokens */ +#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 + +/*************************************************************** +* cl_khr_integer_dot_product +***************************************************************/ +#define cl_khr_integer_dot_product 1 +#define CL_KHR_INTEGER_DOT_PRODUCT "cl_khr_integer_dot_product" + +typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr; +typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { + cl_bool signed_accelerated; + cl_bool unsigned_accelerated; + cl_bool mixed_signedness_accelerated; + cl_bool accumulating_saturating_signed_accelerated; + cl_bool accumulating_saturating_unsigned_accelerated; + cl_bool accumulating_saturating_mixed_signedness_accelerated; +} cl_device_integer_dot_product_acceleration_properties_khr; + +/* cl_device_integer_dot_product_capabilities_khr */ +#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) +#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0) + +/* cl_device_info */ +#define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073 +#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR 0x1074 +#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR 0x1075 + +/*************************************************************** +* cl_khr_mipmap_image +***************************************************************/ +#define cl_khr_mipmap_image 1 +#define CL_KHR_MIPMAP_IMAGE "cl_khr_mipmap_image" + +/* cl_sampler_properties */ +#define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 +#define CL_SAMPLER_LOD_MIN_KHR 0x1156 +#define CL_SAMPLER_LOD_MAX_KHR 0x1157 + +/*************************************************************** +* cl_khr_pci_bus_info +***************************************************************/ +#define cl_khr_pci_bus_info 1 +#define CL_KHR_PCI_BUS_INFO "cl_khr_pci_bus_info" + +typedef struct _cl_device_pci_bus_info_khr { + cl_uint pci_domain; + cl_uint pci_bus; + cl_uint pci_device; + cl_uint pci_function; +} cl_device_pci_bus_info_khr; + +/* cl_device_info */ +#define CL_DEVICE_PCI_BUS_INFO_KHR 0x410F + +/*************************************************************** +* cl_khr_priority_hints +***************************************************************/ +#define cl_khr_priority_hints 1 +#define CL_KHR_PRIORITY_HINTS "cl_khr_priority_hints" + +/* To be used by clGetEventInfo */ +typedef cl_uint cl_queue_priority_khr; + +/* cl_queue_properties */ +#define CL_QUEUE_PRIORITY_KHR 0x1096 + +/* cl_queue_priority_khr */ +#define CL_QUEUE_PRIORITY_HIGH_KHR (1 << 0) +#define CL_QUEUE_PRIORITY_MED_KHR (1 << 1) +#define CL_QUEUE_PRIORITY_LOW_KHR (1 << 2) + +/*************************************************************** +* cl_khr_semaphore +***************************************************************/ +#define cl_khr_semaphore 1 +#define CL_KHR_SEMAPHORE "cl_khr_semaphore" + +/* type cl_semaphore_khr */ +typedef cl_properties cl_semaphore_properties_khr; +typedef cl_uint cl_semaphore_info_khr; typedef cl_uint cl_semaphore_type_khr; typedef cl_ulong cl_semaphore_payload_khr; @@ -1443,8 +858,8 @@ typedef cl_ulong cl_semaphore_payload_khr; /* cl_semaphore_info_khr or cl_semaphore_properties_khr */ #define CL_SEMAPHORE_TYPE_KHR 0x203D -/* enum CL_DEVICE_HANDLE_LIST_KHR */ -/* enum CL_DEVICE_HANDLE_LIST_END_KHR */ +#define CL_DEVICE_HANDLE_LIST_KHR 0x2051 +#define CL_DEVICE_HANDLE_LIST_END_KHR 0 /* cl_command_type */ #define CL_COMMAND_SEMAPHORE_WAIT_KHR 0x2042 @@ -1454,14 +869,20 @@ typedef cl_ulong cl_semaphore_payload_khr; #define CL_INVALID_SEMAPHORE_KHR -1142 -typedef cl_semaphore_khr (CL_API_CALL * +extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL +clCreateSemaphoreWithPropertiesKHR( + cl_context context, + const cl_semaphore_properties_khr* sema_props, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_semaphore_khr (CL_API_CALL * clCreateSemaphoreWithPropertiesKHR_fn)( cl_context context, const cl_semaphore_properties_khr* sema_props, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueWaitSemaphoresKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWaitSemaphoresKHR( cl_command_queue command_queue, cl_uint num_sema_objects, const cl_semaphore_khr* sema_objects, @@ -1470,8 +891,8 @@ clEnqueueWaitSemaphoresKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueSignalSemaphoresKHR_fn)( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueWaitSemaphoresKHR_fn)( cl_command_queue command_queue, cl_uint num_sema_objects, const cl_semaphore_khr* sema_objects, @@ -1480,30 +901,8 @@ clEnqueueSignalSemaphoresKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clGetSemaphoreInfoKHR_fn)( - cl_semaphore_khr sema_object, - cl_semaphore_info_khr param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * -clReleaseSemaphoreKHR_fn)( - cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * -clRetainSemaphoreKHR_fn)( - cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL -clCreateSemaphoreWithPropertiesKHR( - cl_context context, - const cl_semaphore_properties_khr* sema_props, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueWaitSemaphoresKHR( +clEnqueueSignalSemaphoresKHR( cl_command_queue command_queue, cl_uint num_sema_objects, const cl_semaphore_khr* sema_objects, @@ -1512,8 +911,8 @@ clEnqueueWaitSemaphoresKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSignalSemaphoresKHR( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueSignalSemaphoresKHR_fn)( cl_command_queue command_queue, cl_uint num_sema_objects, const cl_semaphore_khr* sema_objects, @@ -1530,551 +929,1096 @@ clGetSemaphoreInfoKHR( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetSemaphoreInfoKHR_fn)( + cl_semaphore_khr sema_object, + cl_semaphore_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + extern CL_API_ENTRY cl_int CL_API_CALL clReleaseSemaphoreKHR( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clReleaseSemaphoreKHR_fn)( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + extern CL_API_ENTRY cl_int CL_API_CALL clRetainSemaphoreKHR( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -/********************************** - * cl_arm_import_memory extension * - **********************************/ -#define cl_arm_import_memory 1 - -typedef intptr_t cl_import_properties_arm; - -/* Default and valid proporties name for cl_arm_import_memory */ -#define CL_IMPORT_TYPE_ARM 0x40B2 - -/* Host process memory type default value for CL_IMPORT_TYPE_ARM property */ -#define CL_IMPORT_TYPE_HOST_ARM 0x40B3 - -/* DMA BUF memory type value for CL_IMPORT_TYPE_ARM property */ -#define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4 - -/* Protected memory property */ -#define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 - -/* Android hardware buffer type value for CL_IMPORT_TYPE_ARM property */ -#define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2 +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clRetainSemaphoreKHR_fn)( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -/* Data consistency with host property */ -#define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3 +/*************************************************************** +* cl_khr_spir +***************************************************************/ +#define cl_khr_spir 1 +#define CL_KHR_SPIR "cl_khr_spir" -/* Index of plane in a multiplanar hardware buffer */ -#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM 0x41EF +/* cl_device_info */ +#define CL_DEVICE_SPIR_VERSIONS 0x40E0 -/* Index of layer in a multilayer hardware buffer */ -#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM 0x41F0 +/* cl_program_binary_type */ +#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 -/* Import memory size value to indicate a size for the whole buffer */ -#define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX +/*************************************************************** +* cl_khr_subgroup_named_barrier +***************************************************************/ +#define cl_khr_subgroup_named_barrier 1 +#define CL_KHR_SUBGROUP_NAMED_BARRIER "cl_khr_subgroup_named_barrier" -/* This extension adds a new function that allows for direct memory import into - * OpenCL via the clImportMemoryARM function. - * - * Memory imported through this interface will be mapped into the device's page - * tables directly, providing zero copy access. It will never fall back to copy - * operations and aliased buffers. - * - * Types of memory supported for import are specified as additional extension - * strings. - * - * This extension produces cl_mem allocations which are compatible with all other - * users of cl_mem in the standard API. - * - * This extension maps pages with the same properties as the normal buffer creation - * function clCreateBuffer. - */ -extern CL_API_ENTRY cl_mem CL_API_CALL -clImportMemoryARM( cl_context context, - cl_mem_flags flags, - const cl_import_properties_arm *properties, - void *memory, - size_t size, - cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; +/* cl_device_info */ +#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 +/*************************************************************** +* cl_khr_subgroups +***************************************************************/ +#define cl_khr_subgroups 1 +#define CL_KHR_SUBGROUPS "cl_khr_subgroups" -/****************************************** - * cl_arm_shared_virtual_memory extension * - ******************************************/ -#define cl_arm_shared_virtual_memory 1 +#if !defined(CL_VERSION_2_1) +/* defined in CL.h for OpenCL 2.1 and newer */ +typedef cl_uint cl_kernel_sub_group_info; +#endif -/* Used by clGetDeviceInfo */ -#define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 +/* cl_kernel_sub_group_info */ +#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 +#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 -/* Used by clGetMemObjectInfo */ -#define CL_MEM_USES_SVM_POINTER_ARM 0x40B7 -/* Used by clSetKernelExecInfoARM: */ -#define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8 -#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9 +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSubGroupInfoKHR( + cl_kernel in_kernel, + cl_device_id in_device, + cl_kernel_sub_group_info param_name, + size_t input_value_size, + const void* input_value, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetKernelSubGroupInfoKHR_fn)( + cl_kernel in_kernel, + cl_device_id in_device, + cl_kernel_sub_group_info param_name, + size_t input_value_size, + const void* input_value, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; -/* To be used by clGetEventInfo: */ -#define CL_COMMAND_SVM_FREE_ARM 0x40BA -#define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB -#define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC -#define CL_COMMAND_SVM_MAP_ARM 0x40BD -#define CL_COMMAND_SVM_UNMAP_ARM 0x40BE +/*************************************************************** +* cl_khr_suggested_local_work_size +***************************************************************/ +#define cl_khr_suggested_local_work_size 1 +#define CL_KHR_SUGGESTED_LOCAL_WORK_SIZE "cl_khr_suggested_local_work_size" -/* Flag values returned by clGetDeviceInfo with CL_DEVICE_SVM_CAPABILITIES_ARM as the param_name. */ -#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0) -#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1) -#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2) -#define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3) -/* Flag values used by clSVMAllocARM: */ -#define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10) -#define CL_MEM_SVM_ATOMICS_ARM (1 << 11) +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSuggestedLocalWorkSizeKHR( + cl_command_queue command_queue, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; -typedef cl_bitfield cl_svm_mem_flags_arm; -typedef cl_uint cl_kernel_exec_info_arm; -typedef cl_bitfield cl_device_svm_capabilities_arm; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetKernelSuggestedLocalWorkSizeKHR_fn)( + cl_command_queue command_queue, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; -extern CL_API_ENTRY void * CL_API_CALL -clSVMAllocARM(cl_context context, - cl_svm_mem_flags_arm flags, - size_t size, - cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; +/*************************************************************** +* cl_khr_terminate_context +***************************************************************/ +#define cl_khr_terminate_context 1 +#define CL_KHR_TERMINATE_CONTEXT "cl_khr_terminate_context" -extern CL_API_ENTRY void CL_API_CALL -clSVMFreeARM(cl_context context, - void * svm_pointer) CL_API_SUFFIX__VERSION_1_2; +/* cl_device_info */ +#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMFreeARM(cl_command_queue command_queue, - cl_uint num_svm_pointers, - void * svm_pointers[], - void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, - cl_uint num_svm_pointers, - void * svm_pointers[], - void * user_data), - void * user_data, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; +/* cl_context_properties */ +#define CL_CONTEXT_TERMINATE_KHR 0x2032 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemcpyARM(cl_command_queue command_queue, - cl_bool blocking_copy, - void * dst_ptr, - const void * src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; +/* Error codes */ +#define CL_CONTEXT_TERMINATED_KHR -1121 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemFillARM(cl_command_queue command_queue, - void * svm_ptr, - const void * pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMapARM(cl_command_queue command_queue, - cl_bool blocking_map, - cl_map_flags flags, - void * svm_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; +clTerminateContextKHR( + cl_context context) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMUnmapARM(cl_command_queue command_queue, - void * svm_ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clTerminateContextKHR_fn)( + cl_context context) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelArgSVMPointerARM(cl_kernel kernel, - cl_uint arg_index, - const void * arg_value) CL_API_SUFFIX__VERSION_1_2; +/*************************************************************** +* cl_khr_throttle_hints +***************************************************************/ +#define cl_khr_throttle_hints 1 +#define CL_KHR_THROTTLE_HINTS "cl_khr_throttle_hints" -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelExecInfoARM(cl_kernel kernel, - cl_kernel_exec_info_arm param_name, - size_t param_value_size, - const void * param_value) CL_API_SUFFIX__VERSION_1_2; +/* To be used by clGetEventInfo */ +typedef cl_uint cl_queue_throttle_khr; -/******************************** - * cl_arm_get_core_id extension * - ********************************/ +/* cl_queue_properties */ +#define CL_QUEUE_THROTTLE_KHR 0x1097 -#ifdef CL_VERSION_1_2 +/* cl_queue_throttle_khr */ +#define CL_QUEUE_THROTTLE_HIGH_KHR (1 << 0) +#define CL_QUEUE_THROTTLE_MED_KHR (1 << 1) +#define CL_QUEUE_THROTTLE_LOW_KHR (1 << 2) -#define cl_arm_get_core_id 1 +/*************************************************************** +* cl_ext_cxx_for_opencl +***************************************************************/ +#define cl_ext_cxx_for_opencl 1 +#define CL_EXT_CXX_FOR_OPENCL "cl_ext_cxx_for_opencl" -/* Device info property for bitfield of cores present */ -#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF +/* cl_device_info */ +#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 -#endif /* CL_VERSION_1_2 */ +/*************************************************************** +* cl_ext_device_fission +***************************************************************/ +#define cl_ext_device_fission 1 +#define CL_EXT_DEVICE_FISSION "cl_ext_device_fission" -/********************************* -* cl_arm_job_slot_selection -*********************************/ +typedef cl_ulong cl_device_partition_property_ext; -#define cl_arm_job_slot_selection 1 +/* Error codes */ +#define CL_DEVICE_PARTITION_FAILED_EXT -1057 +#define CL_INVALID_PARTITION_COUNT_EXT -1058 +#define CL_INVALID_PARTITION_NAME_EXT -1059 /* cl_device_info */ -#define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 +#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 +#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 +#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 +#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 +#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 -/* cl_command_queue_properties */ -#define CL_QUEUE_JOB_SLOT_ARM 0x41E1 - -/********************************* -* cl_arm_scheduling_controls -*********************************/ +/* cl_device_partition_property_ext */ +#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 +#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 +#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 +#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 -#define cl_arm_scheduling_controls 1 +/* cl_device_partition_property_ext - affinity domains */ +#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 +#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 +#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 +#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 +#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 +#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 -typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; +/* cl_device_partition_property_ext - list terminators */ +#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext)0) +#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext)0) +#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext)0 - 1) -/* cl_device_info */ -#define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 -#define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) -#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) -#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) -#define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) -#define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) -#define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5) -#define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_BATCH_QUEUE_SIZE_ARM (1 << 6) +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseDeviceEXT( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -#define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB -#define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clReleaseDeviceEXT_fn)( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -/* cl_kernel_info */ -#define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9 +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainDeviceEXT( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -/* cl_kernel_exec_info */ -#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 -#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 -#define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8 -#define CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM 0x41F1 +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clRetainDeviceEXT_fn)( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -/* cl_queue_properties */ -#define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 -#define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC +extern CL_API_ENTRY cl_int CL_API_CALL +clCreateSubDevicesEXT( + cl_device_id in_device, + const cl_device_partition_property_ext* properties, + cl_uint num_entries, + cl_device_id* out_devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clCreateSubDevicesEXT_fn)( + cl_device_id in_device, + const cl_device_partition_property_ext* properties, + cl_uint num_entries, + cl_device_id* out_devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -/************************************** -* cl_arm_controlled_kernel_termination -***************************************/ +/*************************************************************** +* cl_ext_float_atomics +***************************************************************/ +#define cl_ext_float_atomics 1 +#define CL_EXT_FLOAT_ATOMICS "cl_ext_float_atomics" -#define cl_arm_controlled_kernel_termination 1 +typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; -/* Error code to indicate kernel terminated with failure */ -#define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108 +/* cl_device_fp_atomic_capabilities_ext */ +#define CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 0) +#define CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT (1 << 1) +#define CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT (1 << 2) +#define CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 16) +#define CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT (1 << 17) +#define CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT (1 << 18) /* cl_device_info */ -#define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE +#define CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT 0x4231 +#define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232 +#define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233 -/* Bit fields for controlled termination feature query */ -typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; +/*************************************************************** +* cl_ext_migrate_memobject +***************************************************************/ +#define cl_ext_migrate_memobject 1 +#define CL_EXT_MIGRATE_MEMOBJECT "cl_ext_migrate_memobject" -#define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0) -#define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1) -#define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2) +typedef cl_bitfield cl_mem_migration_flags_ext; -/* cl_event_info */ -#define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED +/* cl_mem_migration_flags_ext */ +#define CL_MIGRATE_MEM_OBJECT_HOST_EXT (1 << 0) -/* Values returned for event termination reason query */ -typedef cl_uint cl_command_termination_reason_arm; +/* cl_command_type */ +#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 -#define CL_COMMAND_TERMINATION_COMPLETION_ARM 0 -#define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1 -#define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2 -#define CL_COMMAND_TERMINATION_ERROR_ARM 3 -/************************************* -* cl_arm_protected_memory_allocation * -*************************************/ +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMigrateMemObjectEXT( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_mem_migration_flags_ext flags, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; -#define cl_arm_protected_memory_allocation 1 +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueMigrateMemObjectEXT_fn)( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_mem_migration_flags_ext flags, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; -#define CL_MEM_PROTECTED_ALLOC_ARM (1ULL << 36) +/*************************************************************** +* cl_APPLE_ContextLoggingFunctions +***************************************************************/ +#define cl_APPLE_ContextLoggingFunctions 1 +#define CL_APPLE_CONTEXTLOGGINGFUNCTIONS "cl_APPLE_ContextLoggingFunctions" -/****************************************** -* cl_intel_exec_by_local_thread extension * -******************************************/ -#define cl_intel_exec_by_local_thread 1 +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToSystemLogAPPLE( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY void (CL_API_CALL * +clLogMessagesToSystemLogAPPLE_fn)( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; -#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (((cl_bitfield)1) << 31) +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToStdoutAPPLE( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY void (CL_API_CALL * +clLogMessagesToStdoutAPPLE_fn)( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToStderrAPPLE( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY void (CL_API_CALL * +clLogMessagesToStderrAPPLE_fn)( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; /*************************************************************** -* cl_intel_device_attribute_query +* cl_APPLE_SetMemObjectDestructor ***************************************************************/ +#define cl_APPLE_SetMemObjectDestructor 1 +#define CL_APPLE_SETMEMOBJECTDESTRUCTOR "cl_APPLE_SetMemObjectDestructor" -#define cl_intel_device_attribute_query 1 -typedef cl_bitfield cl_device_feature_capabilities_intel; +extern CL_API_ENTRY cl_int CL_API_CALL +clSetMemObjectDestructorAPPLE( + cl_mem memobj, + void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), + void* user_data) CL_API_SUFFIX__VERSION_1_0; -/* cl_device_feature_capabilities_intel */ -#define CL_DEVICE_FEATURE_FLAG_DP4A_INTEL (1 << 0) -#define CL_DEVICE_FEATURE_FLAG_DPAS_INTEL (1 << 1) +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clSetMemObjectDestructorAPPLE_fn)( + cl_mem memobj, + void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +/*************************************************************** +* cl_amd_device_attribute_query +***************************************************************/ +#define cl_amd_device_attribute_query 1 +#define CL_AMD_DEVICE_ATTRIBUTE_QUERY "cl_amd_device_attribute_query" /* cl_device_info */ -#define CL_DEVICE_IP_VERSION_INTEL 0x4250 -#define CL_DEVICE_ID_INTEL 0x4251 -#define CL_DEVICE_NUM_SLICES_INTEL 0x4252 -#define CL_DEVICE_NUM_SUB_SLICES_PER_SLICE_INTEL 0x4253 -#define CL_DEVICE_NUM_EUS_PER_SUB_SLICE_INTEL 0x4254 -#define CL_DEVICE_NUM_THREADS_PER_EU_INTEL 0x4255 -#define CL_DEVICE_FEATURE_CAPABILITIES_INTEL 0x4256 +#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 +#define CL_DEVICE_TOPOLOGY_AMD 0x4037 +#define CL_DEVICE_BOARD_NAME_AMD 0x4038 +#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 +#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 +#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 +#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 +#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 +#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 +#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 +#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 +#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 +#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 +#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 +#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A +#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B +#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C +#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 +#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 +#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 +#define CL_DEVICE_PCIE_ID_AMD 0x4034 -/*********************************************** -* cl_intel_device_partition_by_names extension * -************************************************/ +/*************************************************************** +* cl_arm_controlled_kernel_termination +***************************************************************/ +#define cl_arm_controlled_kernel_termination 1 +#define CL_ARM_CONTROLLED_KERNEL_TERMINATION "cl_arm_controlled_kernel_termination" -#define cl_intel_device_partition_by_names 1 +/* Types */ +typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; + +/* Error codes */ +#define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108 + +/* cl_device_controlled_termination_capabilities_arm */ +#define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0) +#define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1) +#define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2) + +/* cl_device_info */ +#define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE + +/* cl_event_info */ +#define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED + +/* cl_command_termination_reason_arm */ +#define CL_COMMAND_TERMINATION_COMPLETION_ARM 0 +#define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1 +#define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2 +#define CL_COMMAND_TERMINATION_ERROR_ARM 3 + +/*************************************************************** +* cl_arm_get_core_id +***************************************************************/ +#define cl_arm_get_core_id 1 +#define CL_ARM_GET_CORE_ID "cl_arm_get_core_id" + +/* cl_device_info */ +#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF + +/*************************************************************** +* cl_arm_import_memory +***************************************************************/ +#define cl_arm_import_memory 1 +#define CL_ARM_IMPORT_MEMORY "cl_arm_import_memory" + +typedef intptr_t cl_import_properties_arm; + +/* cl_import_properties_arm */ +#define CL_IMPORT_TYPE_ARM 0x40B2 +#define CL_IMPORT_TYPE_HOST_ARM 0x40B3 +#define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4 +#define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 +#define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2 +#define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3 +#define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX +#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM 0x41EF +#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM 0x41F0 + + +extern CL_API_ENTRY cl_mem CL_API_CALL +clImportMemoryARM( + cl_context context, + cl_mem_flags flags, + const cl_import_properties_arm* properties, + void* memory, + size_t size, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clImportMemoryARM_fn)( + cl_context context, + cl_mem_flags flags, + const cl_import_properties_arm* properties, + void* memory, + size_t size, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +/*************************************************************** +* cl_arm_printf +***************************************************************/ +#define cl_arm_printf 1 +#define CL_ARM_PRINTF "cl_arm_printf" + +/* cl_context_properties */ +#define CL_PRINTF_CALLBACK_ARM 0x40B0 +#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 + +/*************************************************************** +* cl_arm_protected_memory_allocation +***************************************************************/ +#define cl_arm_protected_memory_allocation 1 +#define CL_ARM_PROTECTED_MEMORY_ALLOCATION "cl_arm_protected_memory_allocation" + +#define CL_MEM_PROTECTED_ALLOC_ARM (1 << 36) + +/*************************************************************** +* cl_arm_scheduling_controls +***************************************************************/ +#define cl_arm_scheduling_controls 1 +#define CL_ARM_SCHEDULING_CONTROLS "cl_arm_scheduling_controls" + +/* Types */ +typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; + +/* cl_device_scheduling_controls_capabilities_arm */ +#define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) +#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) +#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) +#define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) +#define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) +#define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5) +#define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_BATCH_QUEUE_SIZE_ARM (1 << 6) + +/* cl_device_info */ +#define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 +#define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB +#define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA + +/* cl_kernel_exec_info */ +#define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9 + +/* cl_kernel_exec_info */ +#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 +#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 +#define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8 +#define CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM 0x41F1 + +/* cl_queue_properties */ +#define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 +#define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC + +/*************************************************************** +* cl_arm_shared_virtual_memory +***************************************************************/ +#define cl_arm_shared_virtual_memory 1 +#define CL_ARM_SHARED_VIRTUAL_MEMORY "cl_arm_shared_virtual_memory" + +typedef cl_bitfield cl_svm_mem_flags_arm; +typedef cl_uint cl_kernel_exec_info_arm; +typedef cl_bitfield cl_device_svm_capabilities_arm; + +/* cl_device_info */ +#define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 + +/* cl_mem_info */ +#define CL_MEM_USES_SVM_POINTER_ARM 0x40B7 + +/* cl_kernel_exec_info_arm */ +#define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8 +#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9 + +/* cl_command_type */ +#define CL_COMMAND_SVM_FREE_ARM 0x40BA +#define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB +#define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC +#define CL_COMMAND_SVM_MAP_ARM 0x40BD +#define CL_COMMAND_SVM_UNMAP_ARM 0x40BE + +/* cl_device_svm_capabilities_arm */ +#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0) +#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1) +#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2) +#define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3) + +/* cl_svm_mem_flags_arm */ +#define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10) +#define CL_MEM_SVM_ATOMICS_ARM (1 << 11) + + +extern CL_API_ENTRY void* CL_API_CALL +clSVMAllocARM( + cl_context context, + cl_svm_mem_flags_arm flags, + size_t size, + cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY void* (CL_API_CALL * +clSVMAllocARM_fn)( + cl_context context, + cl_svm_mem_flags_arm flags, + size_t size, + cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY void CL_API_CALL +clSVMFreeARM( + cl_context context, + void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY void (CL_API_CALL * +clSVMFreeARM_fn)( + cl_context context, + void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMFreeARM( + cl_command_queue command_queue, + cl_uint num_svm_pointers, + void* svm_pointers[], + void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), + void* user_data, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueSVMFreeARM_fn)( + cl_command_queue command_queue, + cl_uint num_svm_pointers, + void* svm_pointers[], + void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), + void* user_data, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMemcpyARM( + cl_command_queue command_queue, + cl_bool blocking_copy, + void* dst_ptr, + const void* src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueSVMMemcpyARM_fn)( + cl_command_queue command_queue, + cl_bool blocking_copy, + void* dst_ptr, + const void* src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMemFillARM( + cl_command_queue command_queue, + void* svm_ptr, + const void* pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueSVMMemFillARM_fn)( + cl_command_queue command_queue, + void* svm_ptr, + const void* pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMapARM( + cl_command_queue command_queue, + cl_bool blocking_map, + cl_map_flags flags, + void* svm_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueSVMMapARM_fn)( + cl_command_queue command_queue, + cl_bool blocking_map, + cl_map_flags flags, + void* svm_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMUnmapARM( + cl_command_queue command_queue, + void* svm_ptr, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueSVMUnmapARM_fn)( + cl_command_queue command_queue, + void* svm_ptr, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelArgSVMPointerARM( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clSetKernelArgSVMPointerARM_fn)( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelExecInfoARM( + cl_kernel kernel, + cl_kernel_exec_info_arm param_name, + size_t param_value_size, + const void* param_value) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clSetKernelExecInfoARM_fn)( + cl_kernel kernel, + cl_kernel_exec_info_arm param_name, + size_t param_value_size, + const void* param_value) CL_API_SUFFIX__VERSION_1_2; + +/*************************************************************** +* cl_img_cached_allocations +***************************************************************/ +#define cl_img_cached_allocations 1 +#define CL_IMG_CACHED_ALLOCATIONS "cl_img_cached_allocations" + +/* cl_mem_flags */ +#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) +#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) + +/*************************************************************** +* cl_img_generate_mipmap +***************************************************************/ +#define cl_img_generate_mipmap 1 +#define CL_IMG_GENERATE_MIPMAP "cl_img_generate_mipmap" + +typedef cl_uint cl_mipmap_filter_mode_img; + +/* cl_mipmap_filter_mode_img */ +#define CL_MIPMAP_FILTER_ANY_IMG 0x0 +#define CL_MIPMAP_FILTER_BOX_IMG 0x1 + +/* cl_command_type */ +#define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 + + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueGenerateMipmapIMG( + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_image, + cl_mipmap_filter_mode_img mipmap_filter_mode, + const size_t* array_region, + const size_t* mip_region, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueGenerateMipmapIMG_fn)( + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_image, + cl_mipmap_filter_mode_img mipmap_filter_mode, + const size_t* array_region, + const size_t* mip_region, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +/*************************************************************** +* cl_img_mem_properties +***************************************************************/ +#define cl_img_mem_properties 1 +#define CL_IMG_MEM_PROPERTIES "cl_img_mem_properties" + +/* cl_mem_properties */ +#define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 + +/* cl_mem_alloc_flags_img */ +#define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) + +/*************************************************************** +* cl_img_use_gralloc_ptr +***************************************************************/ +#define cl_img_use_gralloc_ptr 1 +#define CL_IMG_USE_GRALLOC_PTR "cl_img_use_gralloc_ptr" + +/* Error codes */ +#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 +#define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 + +/* cl_mem_flags */ +#define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 +#define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 + + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireGrallocObjectsIMG( + 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_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueAcquireGrallocObjectsIMG_fn)( + 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_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseGrallocObjectsIMG( + 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_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueReleaseGrallocObjectsIMG_fn)( + 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_API_SUFFIX__VERSION_1_2; -#define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 -#define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 +/*************************************************************** +* cl_img_yuv_image +***************************************************************/ +#define cl_img_yuv_image 1 +#define CL_IMG_YUV_IMAGE "cl_img_yuv_image" -/************************************************ -* cl_intel_accelerator extension * -* cl_intel_motion_estimation extension * -* cl_intel_advanced_motion_estimation extension * -*************************************************/ +/* cl_channel_order */ +#define CL_NV21_IMG 0x40D0 +#define CL_YV12_IMG 0x40D1 +/*************************************************************** +* cl_intel_accelerator +***************************************************************/ #define cl_intel_accelerator 1 -#define cl_intel_motion_estimation 1 -#define cl_intel_advanced_motion_estimation 1 +#define CL_INTEL_ACCELERATOR "cl_intel_accelerator" typedef struct _cl_accelerator_intel* cl_accelerator_intel; -typedef cl_uint cl_accelerator_type_intel; -typedef cl_uint cl_accelerator_info_intel; - -typedef struct _cl_motion_estimation_desc_intel { - cl_uint mb_block_type; - cl_uint subpixel_mode; - cl_uint sad_adjust_mode; - cl_uint search_path_type; -} cl_motion_estimation_desc_intel; - -/* error codes */ -#define CL_INVALID_ACCELERATOR_INTEL -1094 -#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 -#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 -#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 - -/* cl_accelerator_type_intel */ -#define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 +typedef cl_uint cl_accelerator_type_intel; +typedef cl_uint cl_accelerator_info_intel; /* cl_accelerator_info_intel */ -#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 -#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 -#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 -#define CL_ACCELERATOR_TYPE_INTEL 0x4093 - -/* cl_motion_detect_desc_intel flags */ -#define CL_ME_MB_TYPE_16x16_INTEL 0x0 -#define CL_ME_MB_TYPE_8x8_INTEL 0x1 -#define CL_ME_MB_TYPE_4x4_INTEL 0x2 - -#define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 -#define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 -#define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 - -#define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 -#define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 - -#define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 -#define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 -#define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 - -#define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 -#define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 -#define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 -#define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x4 - -#define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 -#define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 -#define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 - -#define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 -#define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 -#define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 -#define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 -#define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 - -#define CL_ME_COST_PENALTY_NONE_INTEL 0x0 -#define CL_ME_COST_PENALTY_LOW_INTEL 0x1 -#define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 -#define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 - -#define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 -#define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 -#define CL_ME_COST_PRECISION_PEL_INTEL 0x2 -#define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 - -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 -#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 - -#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 -#define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 - -#define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 -#define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 -#define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 +#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 +#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 +#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 +#define CL_ACCELERATOR_TYPE_INTEL 0x4093 -/* cl_device_info */ -#define CL_DEVICE_ME_VERSION_INTEL 0x407E +/* Error codes */ +#define CL_INVALID_ACCELERATOR_INTEL -1094 +#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 +#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 +#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 -#define CL_ME_VERSION_LEGACY_INTEL 0x0 -#define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 -#define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL clCreateAcceleratorINTEL( - cl_context context, - cl_accelerator_type_intel accelerator_type, - size_t descriptor_size, - const void* descriptor, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_accelerator_intel (CL_API_CALL *clCreateAcceleratorINTEL_fn)( - cl_context context, - cl_accelerator_type_intel accelerator_type, - size_t descriptor_size, - const void* descriptor, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + cl_context context, + cl_accelerator_type_intel accelerator_type, + size_t descriptor_size, + const void* descriptor, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_accelerator_intel (CL_API_CALL * +clCreateAcceleratorINTEL_fn)( + cl_context context, + cl_accelerator_type_intel accelerator_type, + size_t descriptor_size, + const void* descriptor, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clGetAcceleratorInfoINTEL( - cl_accelerator_intel accelerator, - cl_accelerator_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clGetAcceleratorInfoINTEL_fn)( - cl_accelerator_intel accelerator, - cl_accelerator_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + cl_accelerator_intel accelerator, + cl_accelerator_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetAcceleratorInfoINTEL_fn)( + cl_accelerator_intel accelerator, + cl_accelerator_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clRetainAcceleratorINTEL( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL *clRetainAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clRetainAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clReleaseAcceleratorINTEL( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clReleaseAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -/****************************************** -* cl_intel_simultaneous_sharing extension * -*******************************************/ +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clReleaseAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -#define cl_intel_simultaneous_sharing 1 +/*************************************************************** +* cl_intel_advanced_motion_estimation +***************************************************************/ +#define cl_intel_advanced_motion_estimation 1 +#define CL_INTEL_ADVANCED_MOTION_ESTIMATION "cl_intel_advanced_motion_estimation" -#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 -#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 +/* cl_device_info */ +#define CL_DEVICE_ME_VERSION_INTEL 0x407E + +#define CL_ME_VERSION_LEGACY_INTEL 0x0 +#define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 +#define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 + +#define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 +#define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 + +#define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 +#define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x1 + +#define CL_ME_COST_PENALTY_NONE_INTEL 0x0 +#define CL_ME_COST_PENALTY_LOW_INTEL 0x1 +#define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 +#define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 + +#define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 +#define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 +#define CL_ME_COST_PRECISION_PEL_INTEL 0x2 +#define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 + +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 +#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 +#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 +#define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 + +#define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 +#define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 +#define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 + +#define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 +#define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 +#define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 + +#define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 +#define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 +#define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 +#define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 +#define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 -/*********************************** -* cl_intel_egl_image_yuv extension * -************************************/ +/*************************************************************** +* cl_intel_command_queue_families +***************************************************************/ +#define cl_intel_command_queue_families 1 +#define CL_INTEL_COMMAND_QUEUE_FAMILIES "cl_intel_command_queue_families" -#define cl_intel_egl_image_yuv 1 +typedef cl_bitfield cl_command_queue_capabilities_intel; -#define CL_EGL_YUV_PLANE_INTEL 0x4107 +#define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64 -/******************************** -* cl_intel_packed_yuv extension * -*********************************/ +typedef struct _cl_queue_family_properties_intel { + cl_command_queue_properties properties; + cl_command_queue_capabilities_intel capabilities; + cl_uint count; + char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL]; +} cl_queue_family_properties_intel; -#define cl_intel_packed_yuv 1 +/* cl_device_info */ +#define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B -#define CL_YUYV_INTEL 0x4076 -#define CL_UYVY_INTEL 0x4077 -#define CL_YVYU_INTEL 0x4078 -#define CL_VYUY_INTEL 0x4079 +/* cl_queue_properties */ +#define CL_QUEUE_FAMILY_INTEL 0x418C +#define CL_QUEUE_INDEX_INTEL 0x418D -/******************************************** -* cl_intel_required_subgroup_size extension * -*********************************************/ +/* cl_command_queue_capabilities_intel */ +#define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0 +#define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0) +#define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1) +#define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2) +#define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3) +#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8) +#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9) +#define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10) +#define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11) +#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12) +#define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13) +#define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14) +#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15) +#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16) +#define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24) +#define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25) +#define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26) -#define cl_intel_required_subgroup_size 1 +/*************************************************************** +* cl_intel_create_buffer_with_properties +***************************************************************/ +#define cl_intel_create_buffer_with_properties 1 +#define CL_INTEL_CREATE_BUFFER_WITH_PROPERTIES "cl_intel_create_buffer_with_properties" -#define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 -#define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 -#define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A +typedef cl_properties cl_mem_properties_intel; -/**************************************** -* cl_intel_driver_diagnostics extension * -*****************************************/ -#define cl_intel_driver_diagnostics 1 +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateBufferWithPropertiesINTEL( + cl_context context, + const cl_mem_properties_intel* properties, + cl_mem_flags flags, + size_t size, + void* host_ptr, + cl_int* errcode_ret) ; -typedef cl_uint cl_diagnostics_verbose_level; +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateBufferWithPropertiesINTEL_fn)( + cl_context context, + const cl_mem_properties_intel* properties, + cl_mem_flags flags, + size_t size, + void* host_ptr, + cl_int* errcode_ret) ; -#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 +/*************************************************************** +* cl_intel_device_attribute_query +***************************************************************/ +#define cl_intel_device_attribute_query 1 +#define CL_INTEL_DEVICE_ATTRIBUTE_QUERY "cl_intel_device_attribute_query" -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL ( 0xff ) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL ( 1 ) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL ( 1 << 1 ) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL ( 1 << 2 ) +typedef cl_bitfield cl_device_feature_capabilities_intel; -/******************************** -* cl_intel_planar_yuv extension * -*********************************/ +/* cl_device_feature_capabilities_intel */ +#define CL_DEVICE_FEATURE_FLAG_DP4A_INTEL (1 << 0) +#define CL_DEVICE_FEATURE_FLAG_DPAS_INTEL (1 << 1) -#define CL_NV12_INTEL 0x410E +/* cl_device_info */ +#define CL_DEVICE_IP_VERSION_INTEL 0x4250 +#define CL_DEVICE_ID_INTEL 0x4251 +#define CL_DEVICE_NUM_SLICES_INTEL 0x4252 +#define CL_DEVICE_NUM_SUB_SLICES_PER_SLICE_INTEL 0x4253 +#define CL_DEVICE_NUM_EUS_PER_SUB_SLICE_INTEL 0x4254 +#define CL_DEVICE_NUM_THREADS_PER_EU_INTEL 0x4255 +#define CL_DEVICE_FEATURE_CAPABILITIES_INTEL 0x4256 -#define CL_MEM_NO_ACCESS_INTEL ( 1 << 24 ) -#define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL ( 1 << 25 ) +/*************************************************************** +* cl_intel_device_partition_by_names +***************************************************************/ +#define cl_intel_device_partition_by_names 1 +#define CL_INTEL_DEVICE_PARTITION_BY_NAMES "cl_intel_device_partition_by_names" -#define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E -#define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F +#define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 +#define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 -/******************************************************* -* cl_intel_device_side_avc_motion_estimation extension * -********************************************************/ +/*************************************************************** +* cl_intel_device_side_avc_motion_estimation +***************************************************************/ +#define cl_intel_device_side_avc_motion_estimation 1 +#define CL_INTEL_DEVICE_SIDE_AVC_MOTION_ESTIMATION "cl_intel_device_side_avc_motion_estimation" +/* cl_device_info */ #define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B #define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C #define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D -#define CL_AVC_ME_VERSION_0_INTEL 0x0 /* No support. */ -#define CL_AVC_ME_VERSION_1_INTEL 0x1 /* First supported version. */ +/* returned by CL_DEVICE_AVC_ME_VERSION_INTEL */ +#define CL_AVC_ME_VERSION_0_INTEL 0x0 +#define CL_AVC_ME_VERSION_1_INTEL 0x1 +/* Inter macro-block major shape values */ #define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 #define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 #define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 #define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 +/* Inter macro-block minor shape values */ #define CL_AVC_ME_MINOR_8x8_INTEL 0x0 #define CL_AVC_ME_MINOR_8x4_INTEL 0x1 #define CL_AVC_ME_MINOR_4x8_INTEL 0x2 #define CL_AVC_ME_MINOR_4x4_INTEL 0x3 +/* Inter macro-block major direction values */ #define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 #define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 #define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 +/* Inter (IME) partition mask values */ #define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 #define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E #define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D @@ -2084,6 +2028,7 @@ typedef cl_uint cl_diagnostics_verbose_level; #define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F #define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F +/* Search window configuration */ #define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 #define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 #define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 @@ -2097,96 +2042,408 @@ typedef cl_uint cl_diagnostics_verbose_level; #define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 #define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa +/* SAD adjustment mode */ #define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 #define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 +/* Pixel resolution */ #define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 #define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 #define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 +/* Cost precision values */ #define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 #define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 #define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 #define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 +/* Inter bidirectional weights */ #define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 #define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 #define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 #define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B #define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 +/* Inter border reached values */ #define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 #define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 #define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 #define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 +/* Inter skip block partition type */ #define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 #define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 -#define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL ( 0x3 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL ( 0x55 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL ( 0xAA << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL ( 0xFF << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL ( 0x1 << 26 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL ( 0x2 << 26 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL ( 0x1 << 28 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL ( 0x2 << 28 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL ( 0x1 << 30 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL ( 0x2 << 30 ) - +/* Inter skip motion vector mask */ +#define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24) +#define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24) +#define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26) +#define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26) +#define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28) +#define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28) +#define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30) +#define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30) + +/* Block based skip type values */ #define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 #define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 +/* cl_intel_device_side_avc_motion_estimation.?? */ #define CL_AVC_ME_INTRA_16x16_INTEL 0x0 #define CL_AVC_ME_INTRA_8x8_INTEL 0x1 #define CL_AVC_ME_INTRA_4x4_INTEL 0x2 -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 +/* Luma intra partition mask values */ +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 + +/* Intra neighbor availability mask values */ +#define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 + +/* Luma intra modes */ +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 + +/* Chroma intra modes */ +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 + +/* Reference image select values */ +#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 +#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 +#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 + +/* Slice type values */ +#define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 +#define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 +#define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 + +/* Interlaced image field polarity values */ +#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 +#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 + +/*************************************************************** +* cl_intel_driver_diagnostics +***************************************************************/ +#define cl_intel_driver_diagnostics 1 +#define CL_INTEL_DRIVER_DIAGNOSTICS "cl_intel_driver_diagnostics" + +typedef cl_uint cl_diagnostics_verbose_level; + +/* cl_context_properties */ +#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL 0xff +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL (1 << 0) +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL (1 << 1) +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL (1 << 2) + +/*************************************************************** +* cl_intel_egl_image_yuv +***************************************************************/ +#define cl_intel_egl_image_yuv 1 +#define CL_INTEL_EGL_IMAGE_YUV "cl_intel_egl_image_yuv" + +/* cl_egl_image_properties_khr */ +#define CL_EGL_YUV_PLANE_INTEL 0x4107 + +/*************************************************************** +* cl_intel_exec_by_local_thread +***************************************************************/ +#define cl_intel_exec_by_local_thread 1 +#define CL_INTEL_EXEC_BY_LOCAL_THREAD "cl_intel_exec_by_local_thread" + +/* cl_command_queue_properties - bitfield */ +#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (1 << 31) + +/*************************************************************** +* cl_intel_mem_alloc_buffer_location +***************************************************************/ +#define cl_intel_mem_alloc_buffer_location 1 +#define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION "cl_intel_mem_alloc_buffer_location" + +/* cl_mem_properties_intel */ +#define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E + +/* cl_mem_alloc_info_intel */ +#define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E + +/*************************************************************** +* cl_intel_mem_channel_property +***************************************************************/ +#define cl_intel_mem_channel_property 1 +#define CL_INTEL_MEM_CHANNEL_PROPERTY "cl_intel_mem_channel_property" + +/* cl_mem_properties_intel */ +#define CL_MEM_CHANNEL_INTEL 0x4213 + +/*************************************************************** +* cl_intel_mem_force_host_memory +***************************************************************/ +#define cl_intel_mem_force_host_memory 1 +#define CL_INTEL_MEM_FORCE_HOST_MEMORY "cl_intel_mem_force_host_memory" + +/* cl_mem_flags */ +#define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) + +/*************************************************************** +* cl_intel_motion_estimation +***************************************************************/ +#define cl_intel_motion_estimation 1 +#define CL_INTEL_MOTION_ESTIMATION "cl_intel_motion_estimation" + +typedef struct _cl_motion_estimation_desc_intel { + cl_uint mb_block_type; + cl_uint subpixel_mode; + cl_uint sad_adjust_mode; + cl_uint search_path_type; +} cl_motion_estimation_desc_intel; + +/* cl_accelerator_type_intel */ +#define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 + +/* cl_uint mb_block_type */ +#define CL_ME_MB_TYPE_16x16_INTEL 0x0 +#define CL_ME_MB_TYPE_8x8_INTEL 0x1 +#define CL_ME_MB_TYPE_4x4_INTEL 0x2 + +/* cl_uint subpixel_mode */ +#define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 +#define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 +#define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 + +/* cl_uint sad_adjust_mode */ +#define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 +#define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 + +/* cl_uint search_path_type */ +#define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 +#define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 +#define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 + +/*************************************************************** +* cl_intel_packed_yuv +***************************************************************/ +#define cl_intel_packed_yuv 1 +#define CL_INTEL_PACKED_YUV "cl_intel_packed_yuv" + +/* cl_channel_order */ +#define CL_YUYV_INTEL 0x4076 +#define CL_UYVY_INTEL 0x4077 +#define CL_YVYU_INTEL 0x4078 +#define CL_VYUY_INTEL 0x4079 + +/*************************************************************** +* cl_intel_planar_yuv +***************************************************************/ +#define cl_intel_planar_yuv 1 +#define CL_INTEL_PLANAR_YUV "cl_intel_planar_yuv" + +/* cl_channel_order */ +#define CL_NV12_INTEL 0x410E + +/* cl_mem_flags */ +#define CL_MEM_NO_ACCESS_INTEL (1 << 24) +#define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL (1 << 25) + +/* cl_device_info */ +#define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E +#define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F + +/*************************************************************** +* cl_intel_required_subgroup_size +***************************************************************/ +#define cl_intel_required_subgroup_size 1 +#define CL_INTEL_REQUIRED_SUBGROUP_SIZE "cl_intel_required_subgroup_size" + +/* cl_device_info */ +#define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 + +/* cl_kernel_work_group_info */ +#define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 + +/* cl_kernel_sub_group_info */ +#define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A + +/*************************************************************** +* cl_intel_sharing_format_query +***************************************************************/ +#define cl_intel_sharing_format_query 1 +#define CL_INTEL_SHARING_FORMAT_QUERY "cl_intel_sharing_format_query" + +/*************************************************************** +* cl_intel_sharing_format_query_d3d10 +***************************************************************/ +#define cl_intel_sharing_format_query_d3d10 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10 "cl_intel_sharing_format_query_d3d10" + +/* when cl_khr_d3d10_sharing is supported */ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedD3D10TextureFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + DXGI_FORMAT* d3d10_formats, + cl_uint* num_texture_formats) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetSupportedD3D10TextureFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + DXGI_FORMAT* d3d10_formats, + cl_uint* num_texture_formats) ; + +/*************************************************************** +* cl_intel_sharing_format_query_d3d11 +***************************************************************/ +#define cl_intel_sharing_format_query_d3d11 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11 "cl_intel_sharing_format_query_d3d11" + +/* when cl_khr_d3d11_sharing is supported */ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedD3D11TextureFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + DXGI_FORMAT* d3d11_formats, + cl_uint* num_texture_formats) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetSupportedD3D11TextureFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + DXGI_FORMAT* d3d11_formats, + cl_uint* num_texture_formats) ; + +/*************************************************************** +* cl_intel_sharing_format_query_dx9 +***************************************************************/ +#define cl_intel_sharing_format_query_dx9 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_DX9 "cl_intel_sharing_format_query_dx9" + +/* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedDX9MediaSurfaceFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + D3DFORMAT* dx9_formats, + cl_uint* num_surface_formats) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + D3DFORMAT* dx9_formats, + cl_uint* num_surface_formats) ; + +/*************************************************************** +* cl_intel_sharing_format_query_gl +***************************************************************/ +#define cl_intel_sharing_format_query_gl 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_GL "cl_intel_sharing_format_query_gl" + +/* when cl_khr_gl_sharing is supported */ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedGLTextureFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + cl_GLenum* gl_formats, + cl_uint* num_texture_formats) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetSupportedGLTextureFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + cl_GLenum* gl_formats, + cl_uint* num_texture_formats) ; -#define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 +/*************************************************************** +* cl_intel_sharing_format_query_va_api +***************************************************************/ +#define cl_intel_sharing_format_query_va_api 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API "cl_intel_sharing_format_query_va_api" -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 +/* when cl_intel_va_api_media_sharing is supported */ -#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 -#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 -#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedVA_APIMediaSurfaceFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + VAImageFormat* va_api_formats, + cl_uint* num_surface_formats) ; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + VAImageFormat* va_api_formats, + cl_uint* num_surface_formats) ; -#define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 -#define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 -#define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 +/*************************************************************** +* cl_intel_simultaneous_sharing +***************************************************************/ +#define cl_intel_simultaneous_sharing 1 +#define CL_INTEL_SIMULTANEOUS_SHARING "cl_intel_simultaneous_sharing" -#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 -#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 +/* cl_device_info */ +#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 +#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 -/******************************************* -* cl_intel_unified_shared_memory extension * -********************************************/ +/*************************************************************** +* cl_intel_unified_shared_memory +***************************************************************/ #define cl_intel_unified_shared_memory 1 +#define CL_INTEL_UNIFIED_SHARED_MEMORY "cl_intel_unified_shared_memory" typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel; -typedef cl_properties cl_mem_properties_intel; +/* type cl_mem_properties_intel */ typedef cl_bitfield cl_mem_alloc_flags_intel; typedef cl_uint cl_mem_info_intel; typedef cl_uint cl_unified_shared_memory_type_intel; @@ -2199,7 +2456,7 @@ typedef cl_uint cl_mem_advice_intel; #define CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4193 #define CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL 0x4194 -/* cl_device_unified_shared_memory_capabilities_intel - bitfield */ +/* cl_unified_shared_memory_capabilities_intel - bitfield */ #define CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL (1 << 0) #define CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL (1 << 1) #define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL (1 << 2) @@ -2238,25 +2495,24 @@ typedef cl_uint cl_mem_advice_intel; #define CL_COMMAND_MEMADVISE_INTEL 0x4207 -typedef void* (CL_API_CALL * -clHostMemAllocINTEL_fn)( +extern CL_API_ENTRY void* CL_API_CALL +clHostMemAllocINTEL( cl_context context, const cl_mem_properties_intel* properties, size_t size, cl_uint alignment, cl_int* errcode_ret) ; -typedef void* (CL_API_CALL * -clDeviceMemAllocINTEL_fn)( +typedef CL_API_ENTRY void* (CL_API_CALL * +clHostMemAllocINTEL_fn)( cl_context context, - cl_device_id device, const cl_mem_properties_intel* properties, size_t size, cl_uint alignment, cl_int* errcode_ret) ; -typedef void* (CL_API_CALL * -clSharedMemAllocINTEL_fn)( +extern CL_API_ENTRY void* CL_API_CALL +clDeviceMemAllocINTEL( cl_context context, cl_device_id device, const cl_mem_properties_intel* properties, @@ -2264,75 +2520,17 @@ clSharedMemAllocINTEL_fn)( cl_uint alignment, cl_int* errcode_ret) ; -typedef cl_int (CL_API_CALL * -clMemFreeINTEL_fn)( - cl_context context, - void* ptr) ; - -typedef cl_int (CL_API_CALL * -clMemBlockingFreeINTEL_fn)( - cl_context context, - void* ptr) ; - -typedef cl_int (CL_API_CALL * -clGetMemAllocInfoINTEL_fn)( - cl_context context, - const void* ptr, - cl_mem_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) ; - -typedef cl_int (CL_API_CALL * -clSetKernelArgMemPointerINTEL_fn)( - cl_kernel kernel, - cl_uint arg_index, - const void* arg_value) ; - -typedef cl_int (CL_API_CALL * -clEnqueueMemFillINTEL_fn)( - cl_command_queue command_queue, - void* dst_ptr, - const void* pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; - -typedef cl_int (CL_API_CALL * -clEnqueueMemcpyINTEL_fn)( - cl_command_queue command_queue, - cl_bool blocking, - void* dst_ptr, - const void* src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; - -typedef cl_int (CL_API_CALL * -clEnqueueMemAdviseINTEL_fn)( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_advice_intel advice, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; - -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY void* CL_API_CALL -clHostMemAllocINTEL( +typedef CL_API_ENTRY void* (CL_API_CALL * +clDeviceMemAllocINTEL_fn)( cl_context context, + cl_device_id device, const cl_mem_properties_intel* properties, size_t size, cl_uint alignment, cl_int* errcode_ret) ; extern CL_API_ENTRY void* CL_API_CALL -clDeviceMemAllocINTEL( +clSharedMemAllocINTEL( cl_context context, cl_device_id device, const cl_mem_properties_intel* properties, @@ -2340,8 +2538,8 @@ clDeviceMemAllocINTEL( cl_uint alignment, cl_int* errcode_ret) ; -extern CL_API_ENTRY void* CL_API_CALL -clSharedMemAllocINTEL( +typedef CL_API_ENTRY void* (CL_API_CALL * +clSharedMemAllocINTEL_fn)( cl_context context, cl_device_id device, const cl_mem_properties_intel* properties, @@ -2354,11 +2552,21 @@ clMemFreeINTEL( cl_context context, void* ptr) ; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clMemFreeINTEL_fn)( + cl_context context, + void* ptr) ; + extern CL_API_ENTRY cl_int CL_API_CALL clMemBlockingFreeINTEL( cl_context context, void* ptr) ; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clMemBlockingFreeINTEL_fn)( + cl_context context, + void* ptr) ; + extern CL_API_ENTRY cl_int CL_API_CALL clGetMemAllocInfoINTEL( cl_context context, @@ -2368,12 +2576,27 @@ clGetMemAllocInfoINTEL( void* param_value, size_t* param_value_size_ret) ; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetMemAllocInfoINTEL_fn)( + cl_context context, + const void* ptr, + cl_mem_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + extern CL_API_ENTRY cl_int CL_API_CALL clSetKernelArgMemPointerINTEL( cl_kernel kernel, cl_uint arg_index, const void* arg_value) ; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clSetKernelArgMemPointerINTEL_fn)( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) ; + extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMemFillINTEL( cl_command_queue command_queue, @@ -2385,6 +2608,17 @@ clEnqueueMemFillINTEL( const cl_event* event_wait_list, cl_event* event) ; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueMemFillINTEL_fn)( + cl_command_queue command_queue, + void* dst_ptr, + const void* pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMemcpyINTEL( cl_command_queue command_queue, @@ -2396,6 +2630,17 @@ clEnqueueMemcpyINTEL( const cl_event* event_wait_list, cl_event* event) ; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueMemcpyINTEL_fn)( + cl_command_queue command_queue, + cl_bool blocking, + void* dst_ptr, + const void* src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMemAdviseINTEL( cl_command_queue command_queue, @@ -2406,13 +2651,21 @@ clEnqueueMemAdviseINTEL( const cl_event* event_wait_list, cl_event* event) ; -#endif /* CL_NO_PROTOTYPES */ +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueMemAdviseINTEL_fn)( + cl_command_queue command_queue, + const void* ptr, + size_t size, + cl_mem_advice_intel advice, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; #if defined(CL_VERSION_1_2) /* Requires OpenCL 1.2 for cl_mem_migration_flags: */ -typedef cl_int (CL_API_CALL * -clEnqueueMigrateMemINTEL_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMigrateMemINTEL( cl_command_queue command_queue, const void* ptr, size_t size, @@ -2421,10 +2674,8 @@ clEnqueueMigrateMemINTEL_fn)( const cl_event* event_wait_list, cl_event* event) ; -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemINTEL( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueMigrateMemINTEL_fn)( cl_command_queue command_queue, const void* ptr, size_t size, @@ -2432,15 +2683,12 @@ clEnqueueMigrateMemINTEL( cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) ; - -#endif /* CL_NO_PROTOTYPES */ - -#endif /* defined(CL_VERSION_1_2) */ +#endif /* deprecated, use clEnqueueMemFillINTEL instead */ -typedef cl_int (CL_API_CALL * -clEnqueueMemsetINTEL_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMemsetINTEL( cl_command_queue command_queue, void* dst_ptr, cl_int value, @@ -2449,10 +2697,8 @@ clEnqueueMemsetINTEL_fn)( const cl_event* event_wait_list, cl_event* event) ; -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemsetINTEL( +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueMemsetINTEL_fn)( cl_command_queue command_queue, void* dst_ptr, cl_int value, @@ -2461,233 +2707,132 @@ clEnqueueMemsetINTEL( const cl_event* event_wait_list, cl_event* event) ; -#endif /* CL_NO_PROTOTYPES */ - /*************************************************************** -* cl_intel_mem_alloc_buffer_location +* cl_nv_device_attribute_query ***************************************************************/ -#define cl_intel_mem_alloc_buffer_location 1 -#define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION_EXTENSION_NAME \ - "cl_intel_mem_alloc_buffer_location" +#define cl_nv_device_attribute_query 1 +#define CL_NV_DEVICE_ATTRIBUTE_QUERY "cl_nv_device_attribute_query" -/* cl_mem_properties_intel */ -#define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E - -/* cl_mem_alloc_info_intel */ -/* enum CL_MEM_ALLOC_BUFFER_LOCATION_INTEL */ - -/*************************************************** -* cl_intel_create_buffer_with_properties extension * -****************************************************/ - -#define cl_intel_create_buffer_with_properties 1 +/* cl_device_info */ +#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 +#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 +#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 +#define CL_DEVICE_WARP_SIZE_NV 0x4003 +#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 +#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 +#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateBufferWithPropertiesINTEL( - cl_context context, - const cl_mem_properties_intel* properties, - cl_mem_flags flags, - size_t size, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; +/*************************************************************** +* cl_pocl_content_size +***************************************************************/ +#define cl_pocl_content_size 1 +#define CL_POCL_CONTENT_SIZE "cl_pocl_content_size" -typedef cl_mem (CL_API_CALL * -clCreateBufferWithPropertiesINTEL_fn)( - cl_context context, - const cl_mem_properties_intel* properties, - cl_mem_flags flags, - size_t size, - void * host_ptr, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -/*********************************** -* cl_intel_program_scope_host_pipe * -***********************************/ -#define cl_intel_program_scope_host_pipe 1 -#define CL_INTEL_PROGRAM_SCOPE_HOST_PIPE_EXTENSION_NAME "cl_intel_program_scope_host_pipe" - -/* New return values from clGetEventInfo when param_name is CL_EVENT_COMMAND_TYPE */ -#define CL_COMMAND_READ_HOST_PIPE_INTEL 0x4214 -#define CL_COMMAND_WRITE_HOST_PIPE_INTEL 0x4215 -#define CL_PROGRAM_NUM_HOST_PIPES_INTEL 0x4216 -#define CL_PROGRAM_HOST_PIPE_NAMES_INTEL 0x4217 - -typedef cl_int (CL_API_CALL *clEnqueueReadHostPipeINTEL_fn )( - cl_command_queue command_queue, - cl_program program, - const char* pipe_symbol, - cl_bool blocking_read, - void* ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReadHostPipeINTEL( - cl_command_queue command_queue, - cl_program program, - const char* pipe_symbol, - cl_bool blocking_read, - void* ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_0; - -typedef cl_int (CL_API_CALL *clEnqueueWriteHostPipeINTEL_fn)( - cl_command_queue command_queue, - cl_program program, - const char* pipe_symbol, - cl_bool blocking_write, - const void* ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueWriteHostPipeINTEL( - cl_command_queue command_queue, - cl_program program, - const char* pipe_symbol, - cl_bool blocking_write, - const void* ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_0; - -/****************************************** -* cl_intel_mem_channel_property extension * -*******************************************/ - -#define CL_MEM_CHANNEL_INTEL 0x4213 - -/********************************* -* cl_intel_mem_force_host_memory * -**********************************/ - -#define cl_intel_mem_force_host_memory 1 +clSetContentSizeBufferPoCL( + cl_mem buffer, + cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; -/* cl_mem_flags */ -#define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clSetContentSizeBufferPoCL_fn)( + cl_mem buffer, + cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; /*************************************************************** -* cl_intel_command_queue_families +* cl_qcom_android_native_buffer_host_ptr ***************************************************************/ -#define cl_intel_command_queue_families 1 - -typedef cl_bitfield cl_command_queue_capabilities_intel; - -#define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64 - -typedef struct _cl_queue_family_properties_intel { - cl_command_queue_properties properties; - cl_command_queue_capabilities_intel capabilities; - cl_uint count; - char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL]; -} cl_queue_family_properties_intel; - -/* cl_device_info */ -#define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B +#define cl_qcom_android_native_buffer_host_ptr 1 +#define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR "cl_qcom_android_native_buffer_host_ptr" -/* cl_queue_properties */ -#define CL_QUEUE_FAMILY_INTEL 0x418C -#define CL_QUEUE_INDEX_INTEL 0x418D +typedef struct _cl_mem_ext_host_ptr { + cl_uint allocation_type; + cl_uint host_cache_policy; +} cl_mem_ext_host_ptr; +typedef struct _cl_mem_android_native_buffer_host_ptr { + cl_mem_ext_host_ptr ext_host_ptr; + void* anb_ptr; +} cl_mem_android_native_buffer_host_ptr; -/* cl_command_queue_capabilities_intel */ -#define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0 -#define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0) -#define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1) -#define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2) -#define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3) -#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8) -#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9) -#define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10) -#define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11) -#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12) -#define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13) -#define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14) -#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15) -#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16) -#define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24) -#define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25) -#define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26) +/* cl_uint allocation_type */ +#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 /*************************************************************** -* cl_intel_queue_no_sync_operations +* cl_qcom_ext_host_ptr ***************************************************************/ +#define cl_qcom_ext_host_ptr 1 +#define CL_QCOM_EXT_HOST_PTR "cl_qcom_ext_host_ptr" -#define cl_intel_queue_no_sync_operations 1 - -/* addition to cl_command_queue_properties */ -#define CL_QUEUE_NO_SYNC_OPERATIONS_INTEL (1 << 29) - -/*************************************************************** -* cl_intel_sharing_format_query -***************************************************************/ -#define cl_intel_sharing_format_query 1 +typedef cl_uint cl_image_pitch_info_qcom; +/* type cl_mem_ext_host_ptr */ -/*************************************************************** -* cl_ext_image_requirements_info -***************************************************************/ +/* cl_mem_flags */ +#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) -#ifdef CL_VERSION_3_0 +/* cl_device_info */ +#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 +#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 -#define cl_ext_image_requirements_info 1 +/* cl_image_pitch_info_qcom */ +#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 +#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 -typedef cl_uint cl_image_requirements_info_ext; +/* cl_uint host_cache_policy */ +#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 +#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 +#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 +#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 -#define CL_IMAGE_REQUIREMENTS_ROW_PITCH_ALIGNMENT_EXT 0x1290 -#define CL_IMAGE_REQUIREMENTS_BASE_ADDRESS_ALIGNMENT_EXT 0x1292 -#define CL_IMAGE_REQUIREMENTS_SIZE_EXT 0x12B2 -#define CL_IMAGE_REQUIREMENTS_MAX_WIDTH_EXT 0x12B3 -#define CL_IMAGE_REQUIREMENTS_MAX_HEIGHT_EXT 0x12B4 -#define CL_IMAGE_REQUIREMENTS_MAX_DEPTH_EXT 0x12B5 -#define CL_IMAGE_REQUIREMENTS_MAX_ARRAY_SIZE_EXT 0x12B6 extern CL_API_ENTRY cl_int CL_API_CALL -clGetImageRequirementsInfoEXT( - cl_context context, - const cl_mem_properties* properties, - cl_mem_flags flags, - const cl_image_format* image_format, - const cl_image_desc* image_desc, - cl_image_requirements_info_ext param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; - -typedef cl_int (CL_API_CALL * -clGetImageRequirementsInfoEXT_fn)( - cl_context context, - const cl_mem_properties* properties, - cl_mem_flags flags, - const cl_image_format* image_format, - const cl_image_desc* image_desc, - cl_image_requirements_info_ext param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; +clGetDeviceImageInfoQCOM( + cl_device_id device, + size_t image_width, + size_t image_height, + const cl_image_format* image_format, + cl_image_pitch_info_qcom param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; -#endif +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetDeviceImageInfoQCOM_fn)( + cl_device_id device, + size_t image_width, + size_t image_height, + const cl_image_format* image_format, + cl_image_pitch_info_qcom param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; /*************************************************************** -* cl_ext_image_from_buffer +* cl_qcom_ext_host_ptr_iocoherent ***************************************************************/ +#define cl_qcom_ext_host_ptr_iocoherent 1 +#define CL_QCOM_EXT_HOST_PTR_IOCOHERENT "cl_qcom_ext_host_ptr_iocoherent" -#ifdef CL_VERSION_3_0 +/* cl_uint host_cache_policy */ +#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 -#define cl_ext_image_from_buffer 1 - -#define CL_IMAGE_REQUIREMENTS_SLICE_PITCH_ALIGNMENT_EXT 0x1291 +/*************************************************************** +* cl_qcom_ion_host_ptr +***************************************************************/ +#define cl_qcom_ion_host_ptr 1 +#define CL_QCOM_ION_HOST_PTR "cl_qcom_ion_host_ptr" + +/* type cl_mem_ext_host_ptr */ +typedef struct _cl_mem_ion_host_ptr { + cl_mem_ext_host_ptr ext_host_ptr; + int ion_filedesc; + void* ion_hostptr; +} cl_mem_ion_host_ptr; -#endif +/* cl_uint allocation_type */ +#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 #ifdef __cplusplus } #endif - -#endif /* __CL_EXT_H */ +#endif /* OPENCL_CL_EXT_H_ */ diff --git a/CL/cl_gl.h b/CL/cl_gl.h index 32774650..819267e1 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -14,8 +14,8 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_GL_H -#define __OPENCL_CL_GL_H +#ifndef OPENCL_CL_GL_H_ +#define OPENCL_CL_GL_H_ #include @@ -23,172 +23,270 @@ extern "C" { #endif -typedef cl_uint cl_gl_object_type; -typedef cl_uint cl_gl_texture_info; -typedef cl_uint cl_gl_platform_info; -typedef struct __GLsync *cl_GLsync; - -/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */ -#define CL_GL_OBJECT_BUFFER 0x2000 -#define CL_GL_OBJECT_TEXTURE2D 0x2001 -#define CL_GL_OBJECT_TEXTURE3D 0x2002 -#define CL_GL_OBJECT_RENDERBUFFER 0x2003 -#ifdef CL_VERSION_1_2 -#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E -#define CL_GL_OBJECT_TEXTURE1D 0x200F -#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 -#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 +/*************************************************************** +* cl_khr_gl_depth_images +***************************************************************/ +#define cl_khr_gl_depth_images 1 +#define CL_KHR_GL_DEPTH_IMAGES "cl_khr_gl_depth_images" + +#if !defined(CL_VERSION_1_2) +/* cl_channel_order - defined in CL.h for OpenCL 1.2 and newer */ +#define CL_DEPTH_STENCIL 0x10BE #endif -/* cl_gl_texture_info */ -#define CL_GL_TEXTURE_TARGET 0x2004 -#define CL_GL_MIPMAP_LEVEL 0x2005 -#ifdef CL_VERSION_1_2 -#define CL_GL_NUM_SAMPLES 0x2012 +#if !defined(CL_VERSION_1_2) +/* cl_channel_type - defined in CL.h for OpenCL 1.2 and newer */ +#define CL_UNORM_INT24 0x10DF #endif +/*************************************************************** +* cl_khr_gl_event +***************************************************************/ +#define cl_khr_gl_event 1 +#define CL_KHR_GL_EVENT "cl_khr_gl_event" -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLBuffer(cl_context context, - cl_mem_flags flags, - cl_GLuint bufobj, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; +typedef struct __GLsync * cl_GLsync; -#ifdef CL_VERSION_1_2 +/* cl_command_type */ +#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLTexture(cl_context context, - cl_mem_flags flags, - cl_GLenum target, - cl_GLint miplevel, - cl_GLuint texture, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateEventFromGLsyncKHR( + cl_context context, + cl_GLsync sync, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +typedef CL_API_ENTRY cl_event (CL_API_CALL * +clCreateEventFromGLsyncKHR_fn)( + cl_context context, + cl_GLsync sync, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +/*************************************************************** +* cl_khr_gl_msaa_sharing +***************************************************************/ +#define cl_khr_gl_msaa_sharing 1 +#define CL_KHR_GL_MSAA_SHARING "cl_khr_gl_msaa_sharing" + +/* cl_gl_texture_info */ +#define CL_GL_NUM_SAMPLES 0x2012 + +/*************************************************************** +* cl_khr_gl_sharing +***************************************************************/ +#define cl_khr_gl_sharing 1 +#define CL_KHR_GL_SHARING "cl_khr_gl_sharing" + +typedef cl_uint cl_gl_context_info; + +/* Error codes */ +#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 + +/* cl_gl_context_info */ +#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006 +#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007 + +/* Additional cl_context_properties */ +#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 + +typedef cl_uint cl_gl_object_type; +typedef cl_uint cl_gl_texture_info; +typedef cl_uint cl_gl_platform_info; + +/* cl_gl_object_type */ +#define CL_GL_OBJECT_BUFFER 0x2000 +#define CL_GL_OBJECT_TEXTURE2D 0x2001 +#define CL_GL_OBJECT_TEXTURE3D 0x2002 +#define CL_GL_OBJECT_RENDERBUFFER 0x2003 + +#if defined(CL_VERSION_1_2) +/* cl_gl_object_type */ +#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E +#define CL_GL_OBJECT_TEXTURE1D 0x200F +#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 +#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 #endif -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLRenderbuffer(cl_context context, - cl_mem_flags flags, - cl_GLuint renderbuffer, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; +/* cl_gl_texture_info */ +#define CL_GL_TEXTURE_TARGET 0x2004 +#define CL_GL_MIPMAP_LEVEL 0x2005 -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLObjectInfo(cl_mem memobj, - cl_gl_object_type * gl_object_type, - cl_GLuint * gl_object_name) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLTextureInfo(cl_mem memobj, - cl_gl_texture_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; +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) CL_API_SUFFIX__VERSION_1_0; + +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) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_int CL_API_CALL -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) CL_API_SUFFIX__VERSION_1_0; +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLBuffer( + cl_context context, + cl_mem_flags flags, + cl_GLuint bufobj, + int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_int CL_API_CALL -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) CL_API_SUFFIX__VERSION_1_0; - - -/* Deprecated OpenCL 1.1 APIs */ -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL -clCreateFromGLTexture2D(cl_context context, - cl_mem_flags flags, - cl_GLenum target, - cl_GLint miplevel, - cl_GLuint texture, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL -clCreateFromGLTexture3D(cl_context context, - cl_mem_flags flags, - cl_GLenum target, - cl_GLint miplevel, - cl_GLuint texture, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; - -/* cl_khr_gl_sharing extension */ +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromGLBuffer_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLuint bufobj, + int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#define cl_khr_gl_sharing 1 +#if defined(CL_VERSION_1_2) -typedef cl_uint cl_gl_context_info; +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLTexture( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromGLTexture_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; +#endif -/* Additional Error Codes */ -#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 -/* cl_gl_context_info */ -#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006 -#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007 +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLRenderbuffer( + cl_context context, + cl_mem_flags flags, + cl_GLuint renderbuffer, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -/* Additional cl_context_properties */ -#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 +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromGLRenderbuffer_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLuint renderbuffer, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL -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) CL_API_SUFFIX__VERSION_1_0; - -typedef 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); - -/* - * cl_khr_gl_event extension - */ -#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D +clGetGLObjectInfo( + cl_mem memobj, + cl_gl_object_type* gl_object_type, + cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromGLsyncKHR(cl_context context, - cl_GLsync sync, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1; +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetGLObjectInfo_fn)( + cl_mem memobj, + cl_gl_object_type* gl_object_type, + cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0; -/*************************************************************** -* cl_intel_sharing_format_query_gl -***************************************************************/ -#define cl_intel_sharing_format_query_gl 1 +extern CL_API_ENTRY cl_int CL_API_CALL +clGetGLTextureInfo( + cl_mem memobj, + cl_gl_texture_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetGLTextureInfo_fn)( + cl_mem memobj, + cl_gl_texture_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; -/* when cl_khr_gl_sharing is supported */ +extern CL_API_ENTRY cl_int CL_API_CALL +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) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueAcquireGLObjects_fn)( + 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_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedGLTextureFormatsINTEL( +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) CL_API_SUFFIX__VERSION_1_0; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueReleaseGLObjects_fn)( + 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_API_SUFFIX__VERSION_1_0; + +/* OpenCL 1.0 APIs that were deprecated in OpenCL 1.2 */ + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLTexture2D( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromGLTexture2D_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLTexture3D( cl_context context, cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint num_entries, - cl_GLenum* gl_formats, - cl_uint* num_texture_formats) ; + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef cl_int (CL_API_CALL * -clGetSupportedGLTextureFormatsINTEL_fn)( +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromGLTexture3D_fn)( cl_context context, cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint num_entries, - cl_GLenum* gl_formats, - cl_uint* num_texture_formats) ; + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_GL_H */ +#endif /* OPENCL_CL_GL_H_ */ diff --git a/CL/cl_gl_ext.h b/CL/cl_gl_ext.h index 8ec81816..b5da13eb 100644 --- a/CL/cl_gl_ext.h +++ b/CL/cl_gl_ext.h @@ -15,4 +15,4 @@ ******************************************************************************/ #include -#pragma message("All OpenGL-related extensions have been moved into cl_gl.h. Please include cl_gl.h directly.") +#pragma message("The extensions in cl_gl_ext.h have been moved into cl_gl.h. Please include cl_gl.h directly.") diff --git a/CL/cl_layer.h b/CL/cl_layer.h index fe628bf8..3c316d8d 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -1,62 +1,75 @@ -/* - * Copyright (c) 2020 The Khronos Group Inc. +/******************************************************************************* + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * OpenCL is a trademark of Apple Inc. used under license by Khronos. - */ + ******************************************************************************/ -#ifndef OPENCL_CL_LAYER_H -#define OPENCL_CL_LAYER_H +#ifndef OPENCL_CL_LAYER_H_ +#define OPENCL_CL_LAYER_H_ #include +#include #ifdef __cplusplus extern "C" { #endif -typedef cl_uint cl_layer_info; -typedef cl_uint cl_layer_api_version; -#define CL_LAYER_API_VERSION 0x4240 -#define CL_LAYER_NAME 0x4241 -#define CL_LAYER_API_VERSION_100 100 +/*************************************************************** +* cl_loader_layers +***************************************************************/ +#define cl_loader_layers 1 +#define CL_LOADER_LAYERS "cl_loader_layers" + +typedef cl_uint cl_layer_info; +typedef cl_uint cl_layer_api_version; + +/* cl_layer_info */ +#define CL_LAYER_API_VERSION 0x4240 + +/* Misc API enums */ +#define CL_LAYER_API_VERSION_100 100 + extern CL_API_ENTRY cl_int CL_API_CALL -clGetLayerInfo(cl_layer_info param_name, - size_t param_value_size, - void *param_value, - size_t *param_value_size_ret); +clGetLayerInfo( + size_t param_value_size, + cl_layer_info param_name, + void* param_value, + size_t* param_value_size_ret) ; -typedef cl_int -(CL_API_CALL *pfn_clGetLayerInfo)(cl_layer_info param_name, - size_t param_value_size, - void *param_value, - size_t *param_value_size_ret); +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetLayerInfo_fn)( + size_t param_value_size, + cl_layer_info param_name, + void* param_value, + size_t* param_value_size_ret) ; extern CL_API_ENTRY cl_int CL_API_CALL -clInitLayer(cl_uint num_entries, - const cl_icd_dispatch *target_dispatch, - cl_uint *num_entries_ret, - const cl_icd_dispatch **layer_dispatch_ret); +clInitLayer( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch) ; -typedef cl_int -(CL_API_CALL *pfn_clInitLayer)(cl_uint num_entries, - const cl_icd_dispatch *target_dispatch, - cl_uint *num_entries_ret, - const cl_icd_dispatch **layer_dispatch_ret); +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clInitLayer_fn)( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch) ; #ifdef __cplusplus } #endif -#endif /* OPENCL_CL_LAYER_H */ +#endif /* OPENCL_CL_LAYER_H_ */ diff --git a/CL/cl_va_api_media_sharing_intel.h b/CL/cl_va_api_media_sharing_intel.h index 547e90e8..ba9279d4 100644 --- a/CL/cl_va_api_media_sharing_intel.h +++ b/CL/cl_va_api_media_sharing_intel.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,51 +14,26 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H -#define __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H +#ifndef OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ +#define OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ -#include -#include #include +#include #ifdef __cplusplus extern "C" { #endif /*************************************************************** -* cl_intel_sharing_format_query_va_api +* cl_intel_va_api_media_sharing ***************************************************************/ -#define cl_intel_sharing_format_query_va_api 1 - -/* when cl_intel_va_api_media_sharing is supported */ - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedVA_APIMediaSurfaceFormatsINTEL( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - VAImageFormat* va_api_formats, - cl_uint* num_surface_formats) ; - -typedef cl_int (CL_API_CALL * -clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - VAImageFormat* va_api_formats, - cl_uint* num_surface_formats) ; - -/****************************************** -* cl_intel_va_api_media_sharing extension * -*******************************************/ - #define cl_intel_va_api_media_sharing 1 +#define CL_INTEL_VA_API_MEDIA_SHARING "cl_intel_va_api_media_sharing" -/* error codes */ +typedef cl_uint cl_va_api_device_source_intel; +typedef cl_uint cl_va_api_device_set_intel; + +/* Error codes */ #define CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL -1098 #define CL_INVALID_VA_API_MEDIA_SURFACE_INTEL -1099 #define CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL -1100 @@ -84,80 +59,81 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( #define CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL 0x409A #define CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL 0x409B -typedef cl_uint cl_va_api_device_source_intel; -typedef cl_uint cl_va_api_device_set_intel; extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromVA_APIMediaAdapterINTEL( - cl_platform_id platform, + cl_platform_id platform, cl_va_api_device_source_intel media_adapter_type, - void* media_adapter, - cl_va_api_device_set_intel media_adapter_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)( - cl_platform_id platform, + void* media_adapter, + cl_va_api_device_set_intel media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)( + cl_platform_id platform, cl_va_api_device_source_intel media_adapter_type, - void* media_adapter, - cl_va_api_device_set_intel media_adapter_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + void* media_adapter, + cl_va_api_device_set_intel media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromVA_APIMediaSurfaceINTEL( - cl_context context, - cl_mem_flags flags, - VASurfaceID* surface, - cl_uint plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_mem (CL_API_CALL * clCreateFromVA_APIMediaSurfaceINTEL_fn)( - cl_context context, - cl_mem_flags flags, - VASurfaceID* surface, - cl_uint plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + cl_context context, + cl_mem_flags flags, + VASurfaceID* surface, + cl_uint plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_mem (CL_API_CALL * +clCreateFromVA_APIMediaSurfaceINTEL_fn)( + cl_context context, + cl_mem_flags flags, + VASurfaceID* surface, + cl_uint plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireVA_APIMediaSurfacesINTEL( - 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_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( - 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_API_SUFFIX__VERSION_1_2; + 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_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( + 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_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseVA_APIMediaSurfacesINTEL( - 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_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL *clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( - 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_API_SUFFIX__VERSION_1_2; + 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_API_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int (CL_API_CALL * +clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( + 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_API_SUFFIX__VERSION_1_2; #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H */ - +#endif /* OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ */ diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 6434f9e0..e807a003 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -10,7 +10,9 @@ skipExtensions = { 'cl_khr_gl_event', 'cl_khr_gl_msaa_sharing', 'cl_khr_gl_sharing', + 'cl_loader_layers', 'cl_intel_dx9_media_sharing', + 'cl_intel_va_api_media_sharing', } # Extensions to include in this header: @@ -18,7 +20,7 @@ def shouldGenerate(extension): if extension in genExtensions: return True elif not genExtensions and not extension in skipExtensions: - return True; + return True return False # XML blocks to include in the headers: @@ -34,7 +36,7 @@ def shouldEmit(block): #if enum.get('name') in enums: return True for func in block.findall('command'): - return True; + return True return False # Order the extensions should be emitted in the headers. @@ -47,8 +49,18 @@ def getSortKey(item): return 1, name return 99, name +# Names that have been generated already, since some may be shared by multiple +# extensions: +generatedNames = set() + +def isDuplicateName(name): + if name in generatedNames: + return True + generatedNames.add(name) + return False + %>/******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -94,20 +106,24 @@ extern "C" { /* ${block.get('comment')} */ % endif % for type in block.findall('type'): -% if type.get('name') in typedefs: +% if isDuplicateName(type.get('name')): +/* type ${type.get('name')} */ +% else: +% if type.get('name') in typedefs: ${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; -% elif type.get('name') in macros: +% elif type.get('name') in macros: #define ${type.get('name')}${macros[type.get('name')].Macro} -% elif type.get('name') in structs: +% elif type.get('name') in structs: <% struct = structs[type.get('name')] %>typedef struct _${struct.Name} { -% for i, member in enumerate(struct.Members): +% for i, member in enumerate(struct.Members): ${member.Type} ${member.Name}${member.TypeEnd}; -% endfor +% endfor } ${struct.Name}; -% else: +% else: // type ${type.get('name')} not found! +% endif % endif % endfor % for enum in block.findall('enum'): diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index 03fb5fe9..b40ecf0e 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -1,24 +1,18 @@ #!/usr/bin/python3 -# Copyright (c) 2020 Ben Ashbaugh +# Copyright (c) 2021 The Khronos Group Inc. # -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at # -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. +# http://www.apache.org/licenses/LICENSE-2.0 # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. from mako.template import Template from mako.exceptions import RichTraceback @@ -323,6 +317,22 @@ def getWin32OnlyIncludeString(include): extapis=extapis). encode('utf-8', 'replace')) + gen = open(args.directory + '/cl_layer.h', 'wb') + gen.write( + cl_ext_h_template.render_unicode( + genExtensions={'cl_loader_layers'}, + guard="OPENCL_CL_LAYER_H_", + includes='#include ', + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis). + encode('utf-8', 'replace')) + gen = open(args.directory + '/cl_va_api_media_sharing_intel.h', 'wb') gen.write( cl_ext_h_template.render_unicode( From 055380e95ec13dcbe7c4e1d49f67e88729a5b4e5 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Wed, 7 Apr 2021 09:21:39 -0700 Subject: [PATCH 04/40] remove CL_API_ENTRY from the generated extension typedefs --- CL/cl_d3d10.h | 12 ++-- CL/cl_d3d11.h | 12 ++-- CL/cl_dx9_media_sharing.h | 16 +++--- CL/cl_egl.h | 8 +-- CL/cl_ext.h | 88 +++++++++++++++--------------- CL/cl_gl.h | 22 ++++---- CL/cl_layer.h | 4 +- CL/cl_va_api_media_sharing_intel.h | 8 +-- scripts/cl_ext.h.mako | 2 +- 9 files changed, 86 insertions(+), 86 deletions(-) diff --git a/CL/cl_d3d10.h b/CL/cl_d3d10.h index 2e618596..e5ca99ae 100644 --- a/CL/cl_d3d10.h +++ b/CL/cl_d3d10.h @@ -85,7 +85,7 @@ clGetDeviceIDsFromD3D10KHR( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetDeviceIDsFromD3D10KHR_fn)( cl_platform_id platform, cl_d3d10_device_source_khr d3d_device_source, @@ -102,7 +102,7 @@ clCreateFromD3D10BufferKHR( ID3D10Buffer* resource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromD3D10BufferKHR_fn)( cl_context context, cl_mem_flags flags, @@ -117,7 +117,7 @@ clCreateFromD3D10Texture2DKHR( UINT subresource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromD3D10Texture2DKHR_fn)( cl_context context, cl_mem_flags flags, @@ -133,7 +133,7 @@ clCreateFromD3D10Texture3DKHR( UINT subresource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromD3D10Texture3DKHR_fn)( cl_context context, cl_mem_flags flags, @@ -150,7 +150,7 @@ clEnqueueAcquireD3D10ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueAcquireD3D10ObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -168,7 +168,7 @@ clEnqueueReleaseD3D10ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueReleaseD3D10ObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, diff --git a/CL/cl_d3d11.h b/CL/cl_d3d11.h index 0da51b68..d6bdc6e1 100644 --- a/CL/cl_d3d11.h +++ b/CL/cl_d3d11.h @@ -85,7 +85,7 @@ clGetDeviceIDsFromD3D11KHR( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetDeviceIDsFromD3D11KHR_fn)( cl_platform_id platform, cl_d3d11_device_source_khr d3d_device_source, @@ -102,7 +102,7 @@ clCreateFromD3D11BufferKHR( ID3D11Buffer* resource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromD3D11BufferKHR_fn)( cl_context context, cl_mem_flags flags, @@ -117,7 +117,7 @@ clCreateFromD3D11Texture2DKHR( UINT subresource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromD3D11Texture2DKHR_fn)( cl_context context, cl_mem_flags flags, @@ -133,7 +133,7 @@ clCreateFromD3D11Texture3DKHR( UINT subresource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromD3D11Texture3DKHR_fn)( cl_context context, cl_mem_flags flags, @@ -150,7 +150,7 @@ clEnqueueAcquireD3D11ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueAcquireD3D11ObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -168,7 +168,7 @@ clEnqueueReleaseD3D11ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueReleaseD3D11ObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, diff --git a/CL/cl_dx9_media_sharing.h b/CL/cl_dx9_media_sharing.h index 2184cbbe..e791e03c 100644 --- a/CL/cl_dx9_media_sharing.h +++ b/CL/cl_dx9_media_sharing.h @@ -86,7 +86,7 @@ clGetDeviceIDsFromDX9MediaAdapterKHR( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( cl_platform_id platform, cl_uint num_media_adapters, @@ -106,7 +106,7 @@ clCreateFromDX9MediaSurfaceKHR( cl_uint plane, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromDX9MediaSurfaceKHR_fn)( cl_context context, cl_mem_flags flags, @@ -124,7 +124,7 @@ clEnqueueAcquireDX9MediaSurfacesKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueAcquireDX9MediaSurfacesKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -142,7 +142,7 @@ clEnqueueReleaseDX9MediaSurfacesKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueReleaseDX9MediaSurfacesKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -202,7 +202,7 @@ clGetDeviceIDsFromDX9INTEL( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetDeviceIDsFromDX9INTEL_fn)( cl_platform_id platform, cl_dx9_device_source_intel dx9_device_source, @@ -221,7 +221,7 @@ clCreateFromDX9MediaSurfaceINTEL( UINT plane, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromDX9MediaSurfaceINTEL_fn)( cl_context context, cl_mem_flags flags, @@ -239,7 +239,7 @@ clEnqueueAcquireDX9ObjectsINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueAcquireDX9ObjectsINTEL_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -257,7 +257,7 @@ clEnqueueReleaseDX9ObjectsINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueReleaseDX9ObjectsINTEL_fn)( cl_command_queue command_queue, cl_uint num_objects, diff --git a/CL/cl_egl.h b/CL/cl_egl.h index 70b3c7d3..06668943 100644 --- a/CL/cl_egl.h +++ b/CL/cl_egl.h @@ -43,7 +43,7 @@ clCreateEventFromEGLSyncKHR( CLeglDisplayKHR display, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_event (CL_API_CALL * +typedef cl_event (CL_API_CALL * clCreateEventFromEGLSyncKHR_fn)( cl_context context, CLeglSyncKHR sync, @@ -84,7 +84,7 @@ clCreateFromEGLImageKHR( const cl_egl_image_properties_khr* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromEGLImageKHR_fn)( cl_context context, CLeglDisplayKHR egldisplay, @@ -102,7 +102,7 @@ clEnqueueAcquireEGLObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueAcquireEGLObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -120,7 +120,7 @@ clEnqueueReleaseEGLObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueReleaseEGLObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, diff --git a/CL/cl_ext.h b/CL/cl_ext.h index b2841254..c68d49b7 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -416,7 +416,7 @@ clCreateCommandQueueWithPropertiesKHR( const cl_queue_properties_khr* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_command_queue (CL_API_CALL * +typedef cl_command_queue (CL_API_CALL * clCreateCommandQueueWithPropertiesKHR_fn)( cl_context context, cl_device_id device, @@ -708,7 +708,7 @@ clIcdGetPlatformIDsKHR( cl_platform_id* platforms, cl_uint* num_platforms) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clIcdGetPlatformIDsKHR_fn)( cl_uint num_entries, cl_platform_id* platforms, @@ -734,7 +734,7 @@ clCreateProgramWithILKHR( size_t length, cl_int* errcode_ret) ; -typedef CL_API_ENTRY cl_program (CL_API_CALL * +typedef cl_program (CL_API_CALL * clCreateProgramWithILKHR_fn)( cl_context context, const void* il, @@ -1001,7 +1001,7 @@ clGetKernelSubGroupInfoKHR( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetKernelSubGroupInfoKHR_fn)( cl_kernel in_kernel, cl_device_id in_device, @@ -1057,7 +1057,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR( cl_context context) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clTerminateContextKHR_fn)( cl_context context) CL_API_SUFFIX__VERSION_1_2; @@ -1131,7 +1131,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clReleaseDeviceEXT( cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clReleaseDeviceEXT_fn)( cl_device_id device) CL_API_SUFFIX__VERSION_1_1; @@ -1139,7 +1139,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clRetainDeviceEXT( cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clRetainDeviceEXT_fn)( cl_device_id device) CL_API_SUFFIX__VERSION_1_1; @@ -1151,7 +1151,7 @@ clCreateSubDevicesEXT( cl_device_id* out_devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCreateSubDevicesEXT_fn)( cl_device_id in_device, const cl_device_partition_property_ext* properties, @@ -1205,7 +1205,7 @@ clEnqueueMigrateMemObjectEXT( const cl_event* event_wait_list, cl_event* event) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueMigrateMemObjectEXT_fn)( cl_command_queue command_queue, cl_uint num_mem_objects, @@ -1229,7 +1229,7 @@ clLogMessagesToSystemLogAPPLE( size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY void (CL_API_CALL * +typedef void (CL_API_CALL * clLogMessagesToSystemLogAPPLE_fn)( const char* errstr, const void* private_info, @@ -1243,7 +1243,7 @@ clLogMessagesToStdoutAPPLE( size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY void (CL_API_CALL * +typedef void (CL_API_CALL * clLogMessagesToStdoutAPPLE_fn)( const char* errstr, const void* private_info, @@ -1257,7 +1257,7 @@ clLogMessagesToStderrAPPLE( size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY void (CL_API_CALL * +typedef void (CL_API_CALL * clLogMessagesToStderrAPPLE_fn)( const char* errstr, const void* private_info, @@ -1277,7 +1277,7 @@ clSetMemObjectDestructorAPPLE( void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clSetMemObjectDestructorAPPLE_fn)( cl_mem memobj, void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), @@ -1379,7 +1379,7 @@ clImportMemoryARM( size_t size, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clImportMemoryARM_fn)( cl_context context, cl_mem_flags flags, @@ -1487,7 +1487,7 @@ clSVMAllocARM( size_t size, cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY void* (CL_API_CALL * +typedef void* (CL_API_CALL * clSVMAllocARM_fn)( cl_context context, cl_svm_mem_flags_arm flags, @@ -1499,7 +1499,7 @@ clSVMFreeARM( cl_context context, void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY void (CL_API_CALL * +typedef void (CL_API_CALL * clSVMFreeARM_fn)( cl_context context, void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; @@ -1515,7 +1515,7 @@ clEnqueueSVMFreeARM( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueSVMFreeARM_fn)( cl_command_queue command_queue, cl_uint num_svm_pointers, @@ -1537,7 +1537,7 @@ clEnqueueSVMMemcpyARM( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueSVMMemcpyARM_fn)( cl_command_queue command_queue, cl_bool blocking_copy, @@ -1559,7 +1559,7 @@ clEnqueueSVMMemFillARM( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueSVMMemFillARM_fn)( cl_command_queue command_queue, void* svm_ptr, @@ -1581,7 +1581,7 @@ clEnqueueSVMMapARM( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueSVMMapARM_fn)( cl_command_queue command_queue, cl_bool blocking_map, @@ -1600,7 +1600,7 @@ clEnqueueSVMUnmapARM( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueSVMUnmapARM_fn)( cl_command_queue command_queue, void* svm_ptr, @@ -1614,7 +1614,7 @@ clSetKernelArgSVMPointerARM( cl_uint arg_index, const void* arg_value) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clSetKernelArgSVMPointerARM_fn)( cl_kernel kernel, cl_uint arg_index, @@ -1627,7 +1627,7 @@ clSetKernelExecInfoARM( size_t param_value_size, const void* param_value) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clSetKernelExecInfoARM_fn)( cl_kernel kernel, cl_kernel_exec_info_arm param_name, @@ -1672,7 +1672,7 @@ clEnqueueGenerateMipmapIMG( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueGenerateMipmapIMG_fn)( cl_command_queue command_queue, cl_mem src_image, @@ -1723,7 +1723,7 @@ clEnqueueAcquireGrallocObjectsIMG( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueAcquireGrallocObjectsIMG_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -1741,7 +1741,7 @@ clEnqueueReleaseGrallocObjectsIMG( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueReleaseGrallocObjectsIMG_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -1791,7 +1791,7 @@ clCreateAcceleratorINTEL( const void* descriptor, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_accelerator_intel (CL_API_CALL * +typedef cl_accelerator_intel (CL_API_CALL * clCreateAcceleratorINTEL_fn)( cl_context context, cl_accelerator_type_intel accelerator_type, @@ -1807,7 +1807,7 @@ clGetAcceleratorInfoINTEL( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetAcceleratorInfoINTEL_fn)( cl_accelerator_intel accelerator, cl_accelerator_info_intel param_name, @@ -1819,7 +1819,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clRetainAcceleratorINTEL( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clRetainAcceleratorINTEL_fn)( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; @@ -1827,7 +1827,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clReleaseAcceleratorINTEL( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clReleaseAcceleratorINTEL_fn)( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; @@ -1947,7 +1947,7 @@ clCreateBufferWithPropertiesINTEL( void* host_ptr, cl_int* errcode_ret) ; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateBufferWithPropertiesINTEL_fn)( cl_context context, const cl_mem_properties_intel* properties, @@ -2503,7 +2503,7 @@ clHostMemAllocINTEL( cl_uint alignment, cl_int* errcode_ret) ; -typedef CL_API_ENTRY void* (CL_API_CALL * +typedef void* (CL_API_CALL * clHostMemAllocINTEL_fn)( cl_context context, const cl_mem_properties_intel* properties, @@ -2520,7 +2520,7 @@ clDeviceMemAllocINTEL( cl_uint alignment, cl_int* errcode_ret) ; -typedef CL_API_ENTRY void* (CL_API_CALL * +typedef void* (CL_API_CALL * clDeviceMemAllocINTEL_fn)( cl_context context, cl_device_id device, @@ -2538,7 +2538,7 @@ clSharedMemAllocINTEL( cl_uint alignment, cl_int* errcode_ret) ; -typedef CL_API_ENTRY void* (CL_API_CALL * +typedef void* (CL_API_CALL * clSharedMemAllocINTEL_fn)( cl_context context, cl_device_id device, @@ -2552,7 +2552,7 @@ clMemFreeINTEL( cl_context context, void* ptr) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clMemFreeINTEL_fn)( cl_context context, void* ptr) ; @@ -2562,7 +2562,7 @@ clMemBlockingFreeINTEL( cl_context context, void* ptr) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clMemBlockingFreeINTEL_fn)( cl_context context, void* ptr) ; @@ -2576,7 +2576,7 @@ clGetMemAllocInfoINTEL( void* param_value, size_t* param_value_size_ret) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetMemAllocInfoINTEL_fn)( cl_context context, const void* ptr, @@ -2591,7 +2591,7 @@ clSetKernelArgMemPointerINTEL( cl_uint arg_index, const void* arg_value) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clSetKernelArgMemPointerINTEL_fn)( cl_kernel kernel, cl_uint arg_index, @@ -2608,7 +2608,7 @@ clEnqueueMemFillINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueMemFillINTEL_fn)( cl_command_queue command_queue, void* dst_ptr, @@ -2630,7 +2630,7 @@ clEnqueueMemcpyINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueMemcpyINTEL_fn)( cl_command_queue command_queue, cl_bool blocking, @@ -2651,7 +2651,7 @@ clEnqueueMemAdviseINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueMemAdviseINTEL_fn)( cl_command_queue command_queue, const void* ptr, @@ -2674,7 +2674,7 @@ clEnqueueMigrateMemINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueMigrateMemINTEL_fn)( cl_command_queue command_queue, const void* ptr, @@ -2697,7 +2697,7 @@ clEnqueueMemsetINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueMemsetINTEL_fn)( cl_command_queue command_queue, void* dst_ptr, @@ -2795,7 +2795,7 @@ clGetDeviceImageInfoQCOM( void* param_value, size_t* param_value_size_ret) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetDeviceImageInfoQCOM_fn)( cl_device_id device, size_t image_width, diff --git a/CL/cl_gl.h b/CL/cl_gl.h index 819267e1..556afb11 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -57,7 +57,7 @@ clCreateEventFromGLsyncKHR( cl_GLsync sync, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_event (CL_API_CALL * +typedef cl_event (CL_API_CALL * clCreateEventFromGLsyncKHR_fn)( cl_context context, cl_GLsync sync, @@ -125,7 +125,7 @@ clGetGLContextInfoKHR( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetGLContextInfoKHR_fn)( const cl_context_properties* properties, cl_gl_context_info param_name, @@ -140,7 +140,7 @@ clCreateFromGLBuffer( cl_GLuint bufobj, int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromGLBuffer_fn)( cl_context context, cl_mem_flags flags, @@ -158,7 +158,7 @@ clCreateFromGLTexture( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromGLTexture_fn)( cl_context context, cl_mem_flags flags, @@ -176,7 +176,7 @@ clCreateFromGLRenderbuffer( cl_GLuint renderbuffer, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromGLRenderbuffer_fn)( cl_context context, cl_mem_flags flags, @@ -189,7 +189,7 @@ clGetGLObjectInfo( cl_gl_object_type* gl_object_type, cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetGLObjectInfo_fn)( cl_mem memobj, cl_gl_object_type* gl_object_type, @@ -203,7 +203,7 @@ clGetGLTextureInfo( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetGLTextureInfo_fn)( cl_mem memobj, cl_gl_texture_info param_name, @@ -220,7 +220,7 @@ clEnqueueAcquireGLObjects( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueAcquireGLObjects_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -238,7 +238,7 @@ clEnqueueReleaseGLObjects( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueReleaseGLObjects_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -258,7 +258,7 @@ clCreateFromGLTexture2D( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromGLTexture2D_fn)( cl_context context, cl_mem_flags flags, @@ -276,7 +276,7 @@ clCreateFromGLTexture3D( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromGLTexture3D_fn)( cl_context context, cl_mem_flags flags, diff --git a/CL/cl_layer.h b/CL/cl_layer.h index 3c316d8d..7277e637 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -47,7 +47,7 @@ clGetLayerInfo( void* param_value, size_t* param_value_size_ret) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetLayerInfo_fn)( size_t param_value_size, cl_layer_info param_name, @@ -61,7 +61,7 @@ clInitLayer( cl_uint* num_entries_ret, const cl_icd_dispatch** layer_dispatch) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clInitLayer_fn)( cl_uint num_entries, const cl_icd_dispatch* target_dispatch, diff --git a/CL/cl_va_api_media_sharing_intel.h b/CL/cl_va_api_media_sharing_intel.h index ba9279d4..37de0708 100644 --- a/CL/cl_va_api_media_sharing_intel.h +++ b/CL/cl_va_api_media_sharing_intel.h @@ -70,7 +70,7 @@ clGetDeviceIDsFromVA_APIMediaAdapterINTEL( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)( cl_platform_id platform, cl_va_api_device_source_intel media_adapter_type, @@ -88,7 +88,7 @@ clCreateFromVA_APIMediaSurfaceINTEL( cl_uint plane, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem (CL_API_CALL * +typedef cl_mem (CL_API_CALL * clCreateFromVA_APIMediaSurfaceINTEL_fn)( cl_context context, cl_mem_flags flags, @@ -105,7 +105,7 @@ clEnqueueAcquireVA_APIMediaSurfacesINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( cl_command_queue command_queue, cl_uint num_objects, @@ -123,7 +123,7 @@ clEnqueueReleaseVA_APIMediaSurfacesINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( cl_command_queue command_queue, cl_uint num_objects, diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index e807a003..24e26391 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -153,7 +153,7 @@ ${api.Name}( % endif % endfor -typedef CL_API_ENTRY ${api.RetType} (CL_API_CALL * +typedef ${api.RetType} (CL_API_CALL * ${api.Name}_fn)( % for i, param in enumerate(api.Params): % if i < len(api.Params)-1: From 4bb9f3d35fbf7c125130069f0eddf2875512e92f Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Mon, 12 Apr 2021 08:59:10 -0700 Subject: [PATCH 05/40] add requirements.txt (generated with pipreqs) --- scripts/requirements.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 scripts/requirements.txt diff --git a/scripts/requirements.txt b/scripts/requirements.txt new file mode 100644 index 00000000..003d342f --- /dev/null +++ b/scripts/requirements.txt @@ -0,0 +1 @@ +Mako==1.1.0 From b8bd8e58382fc81f32408a558f8bee20003bbe5d Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Thu, 29 Apr 2021 22:01:00 -0700 Subject: [PATCH 06/40] do not generate cl_layer.h The function pointers in cl_layer.h currently use a different convention in the ICD loader. Alternatives are to align to the cl_layer.h convention, to not generate this header, or to figure out how to selectively generate a different convention in some cases. --- CL/cl_layer.h | 4 ++-- scripts/cl_ext.h.mako | 23 +++++++++++++++++------ scripts/gen_headers.py | 4 +++- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/CL/cl_layer.h b/CL/cl_layer.h index 7277e637..015f89a2 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -48,7 +48,7 @@ clGetLayerInfo( size_t* param_value_size_ret) ; typedef cl_int (CL_API_CALL * -clGetLayerInfo_fn)( +pfn_clGetLayerInfo)( size_t param_value_size, cl_layer_info param_name, void* param_value, @@ -62,7 +62,7 @@ clInitLayer( const cl_icd_dispatch** layer_dispatch) ; typedef cl_int (CL_API_CALL * -clInitLayer_fn)( +pfn_clInitLayer)( cl_uint num_entries, const cl_icd_dispatch* target_dispatch, cl_uint* num_entries_ret, diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 24e26391..6904e702 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -49,6 +49,17 @@ def getSortKey(item): return 1, name return 99, name +# Gets C function parameter strings for the specified API params: +def getCParameterStrings(params): + strings = [] + if len(params) == 0: + strings.append("void") + else: + for param in params: + paramstr = param.Type + ' ' + param.Name + param.TypeEnd + strings.append(paramstr) + return strings + # Names that have been generated already, since some may be shared by multiple # extensions: generatedNames = set() @@ -145,21 +156,21 @@ ${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; %> extern CL_API_ENTRY ${api.RetType} CL_API_CALL ${api.Name}( -% for i, param in enumerate(api.Params): +% for i, paramStr in enumerate(getCParameterStrings(api.Params)): % if i < len(api.Params)-1: - ${param.Type} ${param.Name}${param.TypeEnd}, + ${paramStr}, % else: - ${param.Type} ${param.Name}${param.TypeEnd}) ${api.Suffix}; + ${paramStr}) ${api.Suffix}; % endif % endfor typedef ${api.RetType} (CL_API_CALL * ${api.Name}_fn)( -% for i, param in enumerate(api.Params): +% for i, paramStr in enumerate(getCParameterStrings(api.Params)): % if i < len(api.Params)-1: - ${param.Type} ${param.Name}${param.TypeEnd}, + ${paramStr}, % else: - ${param.Type} ${param.Name}${param.TypeEnd}) ${api.Suffix}; + ${paramStr}) ${api.Suffix}; % endif % endfor % endfor diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index b40ecf0e..5bfae72f 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -317,7 +317,9 @@ def getWin32OnlyIncludeString(include): extapis=extapis). encode('utf-8', 'replace')) - gen = open(args.directory + '/cl_layer.h', 'wb') + # cl_layer.h is currently generated but unused because the ICD loader + # uses a different naming convention for function pointers. + gen = open(args.directory + '/cl_layer-unused.h', 'wb') gen.write( cl_ext_h_template.render_unicode( genExtensions={'cl_loader_layers'}, From 35447dd36aa3509b8f81b81a0be81cba130d99f7 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Mon, 31 May 2021 14:45:26 -0700 Subject: [PATCH 07/40] refactored into separate functions to align with ICD loader generation handle functions with no arguments --- scripts/.gitignore | 1 + scripts/gen/__init__.py | 210 +++++++++++++++++++++++++++++++++++++++ scripts/gen_headers.py | 211 +++++----------------------------------- 3 files changed, 237 insertions(+), 185 deletions(-) create mode 100644 scripts/.gitignore create mode 100644 scripts/gen/__init__.py diff --git a/scripts/.gitignore b/scripts/.gitignore new file mode 100644 index 00000000..b971803c --- /dev/null +++ b/scripts/.gitignore @@ -0,0 +1 @@ +gen/__pycache__/* diff --git a/scripts/gen/__init__.py b/scripts/gen/__init__.py new file mode 100644 index 00000000..dbdf858b --- /dev/null +++ b/scripts/gen/__init__.py @@ -0,0 +1,210 @@ +# Copyright (c) 2021 The Khronos Group Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from collections import OrderedDict +from collections import namedtuple + +import argparse +import sys +import urllib +import xml.etree.ElementTree as etree +import urllib.request + +# parse_xml - Helper function to parse the XML file from a URL or local file. +def parse_xml(path): + file = urllib.request.urlopen(path) if path.startswith("http") else open(path, 'r') + with file: + tree = etree.parse(file) + return tree + +# noneStr - returns string argument, or "" if argument is None. +def noneStr(s): + if s: + return s + return "" + +def parse_args(): + parser = argparse.ArgumentParser() + + # To pull the latest registry file from GitHub, pass: + # -registry "https://raw.githubusercontent.com/KhronosGroup/OpenCL-Registry/master/xml/cl.xml" + + parser.add_argument('-registry', action='store', + default='cl.xml', + help='Use specified registry file instead of cl.xml') + parser.add_argument('-o', action='store', dest='directory', + default='.', + help='Create target and related files in specified directory') + + args = parser.parse_args() + return args + +def load_spec(args): + specpath = args.registry + + print('Parsing XML file from: ' + specpath) + spec = parse_xml(specpath) + return spec + +def get_apitypedefs(spec): + typedefs = OrderedDict() + Typedef = namedtuple('Typedef', 'Typedef Name') + print('Generating API typedef dictionary...') + for type in spec.findall('types/type'): + if type.get('category') == 'define': + if noneStr(type.text).startswith("typedef"): + typedef = noneStr(type.text) + name = "" + for elem in type: + if elem.tag == 'name': + name = noneStr(elem.text) + else: + typedef = typedef + noneStr(elem.text) + noneStr(elem.tail) + typedef = typedef.strip() + name = name.strip() + typedefs[name] = Typedef(typedef, name) + return typedefs + +def get_apimacros(spec): + macros = OrderedDict() + Macro = namedtuple('Macro', 'Define Name Macro') + print('Generating API macro dictionary...') + for type in spec.findall('types/type'): + if type.get('category') == 'define': + if noneStr(type.text).startswith("#define"): + define = noneStr(type.text) + name = "" + macro = "" + for elem in type: + if elem.tag == 'name': + name = noneStr(elem.text) + macro = macro + noneStr(elem.tail) + define = define.strip() + name = name.strip() + macro = macro.rstrip() # keep spaces on the left! + macros[name] = Macro(define, name, macro) + return macros + +def get_apistructs(spec): + structs = OrderedDict() + Struct = namedtuple('Struct', 'Name Members') + StructMember = namedtuple('StructMember', 'Type TypeEnd Name') + print('Generating API struct dictionary...') + for type in spec.findall('types/type'): + if type.get('category') == 'struct': + name = type.get('name') + mlist = [] + for member in type.findall('member'): + mtype = noneStr(member.text) + mtypeend = "" + mname = "" + for elem in member: + if elem.tag == 'name': + mname = noneStr(elem.text) + mtypeend = noneStr(elem.tail) + elif elem.tag == 'enum': + # Assumes any additional enums are for array limits, e.g.: + # charname[CL_NAME_VERSION_MAX_NAME_SIZE] + mtypeend = mtypeend + noneStr(elem.text) + noneStr(elem.tail) + else: + mtype = mtype + noneStr(elem.text) + noneStr(elem.tail) + mtype = mtype.strip() + mtypeend = mtypeend.strip() + mname = mname.strip() + mlist.append(StructMember(mtype, mtypeend, mname)) + structs[name] = Struct(name, mlist) + return structs + +def get_apienums(spec): + enums = OrderedDict() + Enum = namedtuple('Enum', 'Value Bitpos Name') + print('Generating API enum dictionary...') + for enum in spec.findall('enums/enum'): + value = enum.get('value') + bitpos = enum.get('bitpos') + name = enum.get('name') + enums[name] = Enum(value, bitpos, name) + return enums + +def get_apisigs(spec): + apisigs = OrderedDict() + ApiSignature = namedtuple('ApiSignature', 'Name RetType Params Suffix') + ApiParam = namedtuple('ApiParam', 'Type TypeEnd Name') + print('Generating API signatures dictionary...') + for command in spec.findall('commands/command'): + suffix = noneStr(command.get('suffix')) + proto = command.find('proto') + ret = noneStr(proto.text) + name = "" + params = "" + for elem in proto: + if elem.tag == 'name': + name = noneStr(elem.text) + noneStr(elem.tail) + else: + ret = ret + noneStr(elem.text) + noneStr(elem.tail) + ret = ret.strip() + name = name.strip() + + plist = [] + for param in command.findall('param'): + ptype = noneStr(param.text) + ptypeend = "" + pname = "" + for elem in param: + if elem.tag == 'name': + pname = noneStr(elem.text) + ptypeend = noneStr(elem.tail) + else: + ptype = ptype + noneStr(elem.text) + noneStr(elem.tail) + ptype = ptype.strip() + ptypeend = ptypeend.strip() + pname = pname.strip() + plist.append(ApiParam(ptype, ptypeend, pname)) + + # For an empty parameter list (for e.g. clUnloadCompiler), add a single + # unnamed void parameter to make generation easier. + if len(plist) == 0: + plist.append(ApiParam("void", "", "")) + + apisigs[name] = ApiSignature(name, ret, plist, suffix) + return apisigs + +def get_coreapis(spec, apisigs): + coreapis = OrderedDict() + print('Generating core API dictionary...') + for feature in spec.findall('feature'): + version = noneStr(feature.get('name')) + + alist = [] + for function in feature.findall('require/command'): + name = function.get('name') + alist.append(apisigs[name]) + coreapis[version] = alist + return coreapis + +def get_extapis(spec, apisigs): + extapis = OrderedDict() + print('Generating API extensions dictionary...') + for feature in spec.findall('extensions/extension'): + extension = noneStr(feature.get('name')) + + alist = [] + for function in feature.findall('require/command'): + name = function.get('name') + alist.append(apisigs[name]) + extapis[extension] = alist + return extapis + +def get_apis(spec, apisigs): + return (get_coreapis(spec, apisigs), get_extapis(spec, apisigs)) diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index 5bfae72f..c5fdfa67 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -14,31 +14,14 @@ # See the License for the specific language governing permissions and # limitations under the License. +import gen + from mako.template import Template from mako.exceptions import RichTraceback from collections import OrderedDict from collections import namedtuple -import argparse -import sys -import urllib -import xml.etree.ElementTree as etree -import urllib.request - -# parse_xml - Helper function to parse the XML file from a URL or local file. -def parse_xml(path): - file = urllib.request.urlopen(path) if path.startswith("http") else open(path, 'r') - with file: - tree = etree.parse(file) - return tree - -# noneStr - returns string argument, or "" if argument is None. -def noneStr(s): - if s: - return s - return "" - def getDisableWarningIncludeString(include): warningPush = """#if defined(_MSC_VER) #if _MSC_VER >=1500 @@ -62,182 +45,30 @@ def getWin32OnlyIncludeString(include): #endif """ - - if __name__ == "__main__": - parser = argparse.ArgumentParser() - - # To pull the latest registry file from GitHub, pass: - # -registry "https://raw.githubusercontent.com/KhronosGroup/OpenCL-Registry/master/xml/cl.xml" - - parser.add_argument('-registry', action='store', - default='cl.xml', - help='Use specified registry file instead of cl.xml') - parser.add_argument('-o', action='store', dest='directory', - default='.', - help='Create target and related files in specified directory') - - args = parser.parse_args() - - specpath = args.registry - - print('Parsing XML file from: ' + specpath) - spec = parse_xml(specpath) + args = gen.parse_args() + spec = gen.load_spec(args) - # Generate the API typedef and struct dictionaries: - typedefs = OrderedDict() - Typedef = namedtuple('Typedef', 'Typedef Name') - macros = OrderedDict() - Macro = namedtuple('Macro', 'Define Name Macro') - structs = OrderedDict() - Struct = namedtuple('Struct', 'Name Members') - StructMember = namedtuple('StructMember', 'Type TypeEnd Name') - print('Generating API typedef dictionary...') - for type in spec.findall('types/type'): - if type.get('category') == 'define': - if noneStr(type.text).startswith("typedef"): - typedef = noneStr(type.text) - name = "" - for elem in type: - if elem.tag == 'name': - name = noneStr(elem.text) - else: - typedef = typedef + noneStr(elem.text) + noneStr(elem.tail) - typedef = typedef.strip() - name = name.strip() - typedefs[name] = Typedef(typedef, name) - if noneStr(type.text).startswith("#define"): - define = noneStr(type.text) - name = "" - macro = "" - for elem in type: - if elem.tag == 'name': - name = noneStr(elem.text) - macro = macro + noneStr(elem.tail) - define = define.strip() - name = name.strip() - macro = macro.rstrip() # keep spaces on the left! - macros[name] = Macro(define, name, macro) - if type.get('category') == 'struct': - name = type.get('name') - mlist = [] - for member in type.findall('member'): - mtype = noneStr(member.text) - mtypeend = "" - mname = "" - for elem in member: - if elem.tag == 'name': - mname = noneStr(elem.text) - mtypeend = noneStr(elem.tail) - elif elem.tag == 'enum': - # Assumes any additional enums are for array limits, e.g.: - # charname[CL_NAME_VERSION_MAX_NAME_SIZE] - mtypeend = mtypeend + noneStr(elem.text) + noneStr(elem.tail) - else: - mtype = mtype + noneStr(elem.text) + noneStr(elem.tail) - mtype = mtype.strip() - mtypeend = mtypeend.strip() - mname = mname.strip() - mlist.append(StructMember(mtype, mtypeend, mname)) - structs[name] = Struct(name, mlist) + typedefs = gen.get_apitypedefs(spec) + macros = gen.get_apimacros(spec) + structs = gen.get_apistructs(spec) + enums = gen.get_apienums(spec) + apisigs = gen.get_apisigs(spec) - # Generate the API enum dictionary: - enums = OrderedDict() - Enum = namedtuple('Enum', 'Value Bitpos Name') - print('Generating API enum dictionary...') - for enum in spec.findall('enums/enum'): - value = enum.get('value') - bitpos = enum.get('bitpos') - name = enum.get('name') - enums[name] = Enum(value, bitpos, name) - - # Generate the API function signatures dictionary: - apisigs = OrderedDict() - ApiSignature = namedtuple('ApiSignature', 'Name RetType Params Suffix') - ApiParam = namedtuple('ApiParam', 'Type TypeEnd Name') - print('Generating API function signatures dictionary...') - for command in spec.findall('commands/command'): - suffix = noneStr(command.get('suffix')) - proto = command.find('proto') - ret = noneStr(proto.text) - name = "" - params = "" - for elem in proto: - if elem.tag == 'name': - name = noneStr(elem.text) + noneStr(elem.tail) - else: - ret = ret + noneStr(elem.text) + noneStr(elem.tail) - ret = ret.strip() - name = name.strip() - - plist = [] - for param in command.findall('param'): - ptype = noneStr(param.text) - ptypeend = "" - pname = "" - for elem in param: - if elem.tag == 'name': - pname = noneStr(elem.text) - ptypeend = noneStr(elem.tail) - else: - ptype = ptype + noneStr(elem.text) + noneStr(elem.tail) - ptype = ptype.strip() - ptypeend = ptypeend.strip() - pname = pname.strip() - plist.append(ApiParam(ptype, ptypeend, pname)) - apisigs[name] = ApiSignature(name, ret, plist, suffix) - - # Generate the core API dictionary: - coreapis = OrderedDict() - coretypes = OrderedDict() - coreenums = OrderedDict() - print('Generating core API dictionary...') - for feature in spec.findall('feature'): - version = noneStr(feature.get('name')) - - alist = [] - for function in feature.findall('require/command'): - name = function.get('name') - alist.append(apisigs[name]) - coreapis[version] = alist - - tlist = [] - for type in feature.findall('require/type'): - name = type.get('name') - if name in typedefs: - tlist.append(typedefs[name]) - else: - print('Type %s was not found.' % name) - coretypes[version] = tlist - - elist = [] - for enum in feature.findall('require/enum'): - name = enum.get('name') - if name in enums: - elist.append(enums[name]) - else: - print('Enum %s was not found.' % name) - coreenums[version] = elist - - # Generate the extension API function dictionary: - extapis = OrderedDict() - print('Generating API extensions dictionary...') - for feature in spec.findall('extensions/extension'): - extension = noneStr(feature.get('name')) - - alist = [] - for function in feature.findall('require/command'): - name = function.get('name') - alist.append(apisigs[name]) - extapis[extension] = alist + coreapis = gen.get_coreapis(spec, apisigs) + extapis = gen.get_extapis(spec, apisigs) try: cl_ext_h_template = Template(filename='cl_ext.h.mako') + print('Generating cl_dx9_media_sharing.h...') gen = open(args.directory + '/cl_dx9_media_sharing.h', 'wb') gen.write( cl_ext_h_template.render_unicode( - genExtensions={'cl_khr_dx9_media_sharing', 'cl_intel_dx9_media_sharing'}, + genExtensions={ + 'cl_khr_dx9_media_sharing', + 'cl_intel_dx9_media_sharing', + }, guard="OPENCL_CL_DX9_MEDIA_SHARING_H_", includes=getWin32OnlyIncludeString("#include "), spec=spec, @@ -250,6 +81,7 @@ def getWin32OnlyIncludeString(include): extapis=extapis). encode('utf-8', 'replace')) + print('Generating cl_d3d10.h...') gen = open(args.directory + '/cl_d3d10.h', 'wb') gen.write( cl_ext_h_template.render_unicode( @@ -266,6 +98,7 @@ def getWin32OnlyIncludeString(include): extapis=extapis). encode('utf-8', 'replace')) + print('Generating cl_d3d11.h...') gen = open(args.directory + '/cl_d3d11.h', 'wb') gen.write( cl_ext_h_template.render_unicode( @@ -282,10 +115,12 @@ def getWin32OnlyIncludeString(include): extapis=extapis). encode('utf-8', 'replace')) + print('Generating cl_egl.h...') gen = open(args.directory + '/cl_egl.h', 'wb') gen.write( cl_ext_h_template.render_unicode( genExtensions={'cl_khr_egl_event', 'cl_khr_egl_image'}, + skipFunctions={}, guard="OPENCL_CL_EGL_H_", spec=spec, typedefs=typedefs, @@ -297,6 +132,7 @@ def getWin32OnlyIncludeString(include): extapis=extapis). encode('utf-8', 'replace')) + print('Generating cl_gl.h...') gen = open(args.directory + '/cl_gl.h', 'wb') gen.write( cl_ext_h_template.render_unicode( @@ -319,10 +155,12 @@ def getWin32OnlyIncludeString(include): # cl_layer.h is currently generated but unused because the ICD loader # uses a different naming convention for function pointers. + print('Generating cl_layer.h (note: unused)...') gen = open(args.directory + '/cl_layer-unused.h', 'wb') gen.write( cl_ext_h_template.render_unicode( genExtensions={'cl_loader_layers'}, + skipFunctions={}, guard="OPENCL_CL_LAYER_H_", includes='#include ', spec=spec, @@ -335,6 +173,7 @@ def getWin32OnlyIncludeString(include): extapis=extapis). encode('utf-8', 'replace')) + print('Generating cl_va_api_media_sharing_intel.h...') gen = open(args.directory + '/cl_va_api_media_sharing_intel.h', 'wb') gen.write( cl_ext_h_template.render_unicode( @@ -351,10 +190,12 @@ def getWin32OnlyIncludeString(include): extapis=extapis). encode('utf-8', 'replace')) + print('Generating cl_ext.h...') gen = open(args.directory + '/cl_ext.h', 'wb') gen.write( cl_ext_h_template.render_unicode( genExtensions={}, + skipFunctions={}, guard="OPENCL_CL_EXT_H_", spec=spec, typedefs=typedefs, From 7e4a291ae2db0752830a48dc0411bd36184026bc Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 22 Jun 2021 11:54:33 -0700 Subject: [PATCH 08/40] sort bit enums --- scripts/cl_ext.h.mako | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 6904e702..a9cd18ae 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -41,7 +41,7 @@ def shouldEmit(block): # Order the extensions should be emitted in the headers. # KHR -> EXT -> Vendor Extensions -def getSortKey(item): +def getExtensionSortKey(item): name = item.get('name') if name.startswith('cl_khr'): return 0, name @@ -49,6 +49,17 @@ def getSortKey(item): return 1, name return 99, name +# Order enums should be emitted in the haders. +# Enums Without Bits -> Ordered Bit Enums +def getEnumSortKey(item): + name = item.get('name') + if name in enums: + if enums[name].Value: + return -1 + if enums[name].Bitpos: + return int(enums[name].Bitpos) + return 99 + # Gets C function parameter strings for the specified API params: def getCParameterStrings(params): strings = [] @@ -98,7 +109,7 @@ ${includes} extern "C" { #endif -%for extension in sorted(spec.findall('extensions/extension'), key=getSortKey): +%for extension in sorted(spec.findall('extensions/extension'), key=getExtensionSortKey): % if shouldGenerate(extension.get('name')): <% name = extension.get('name') @@ -137,7 +148,7 @@ ${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; % endif % endif % endfor -% for enum in block.findall('enum'): +% for enum in sorted(block.findall('enum'), key=getEnumSortKey): % if enum.get('name') in enums: % if enums[enum.get('name')].Value: #define ${enum.get('name').ljust(51)} ${enums[enum.get('name')].Value} From db0dab9a047b9b0caa68440018a9b179d084a2f0 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Sun, 1 Aug 2021 13:17:15 -0700 Subject: [PATCH 09/40] updates for sharing format query extensions --- CL/cl_d3d10.h | 26 ++++ CL/cl_d3d11.h | 28 +++++ CL/cl_dx9_media_sharing.h | 28 +++++ CL/cl_ext.h | 190 ++++------------------------- CL/cl_gl.h | 26 ++++ CL/cl_layer-unused.h | 75 ++++++++++++ CL/cl_va_api_media_sharing_intel.h | 28 +++++ scripts/cl_ext.h.mako | 5 + scripts/gen_headers.py | 20 ++- 9 files changed, 257 insertions(+), 169 deletions(-) create mode 100644 CL/cl_layer-unused.h diff --git a/CL/cl_d3d10.h b/CL/cl_d3d10.h index e5ca99ae..4e3027ca 100644 --- a/CL/cl_d3d10.h +++ b/CL/cl_d3d10.h @@ -177,6 +177,32 @@ clEnqueueReleaseD3D10ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; +/*************************************************************** +* cl_intel_sharing_format_query_d3d10 +***************************************************************/ +#define cl_intel_sharing_format_query_d3d10 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10 "cl_intel_sharing_format_query_d3d10" + +/* when cl_khr_d3d10_sharing is supported */ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedD3D10TextureFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + DXGI_FORMAT* d3d10_formats, + cl_uint* num_texture_formats) ; + +typedef cl_int (CL_API_CALL * +clGetSupportedD3D10TextureFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + DXGI_FORMAT* d3d10_formats, + cl_uint* num_texture_formats) ; + #ifdef __cplusplus } #endif diff --git a/CL/cl_d3d11.h b/CL/cl_d3d11.h index d6bdc6e1..4ab24cb8 100644 --- a/CL/cl_d3d11.h +++ b/CL/cl_d3d11.h @@ -177,6 +177,34 @@ clEnqueueReleaseD3D11ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +/*************************************************************** +* cl_intel_sharing_format_query_d3d11 +***************************************************************/ +#define cl_intel_sharing_format_query_d3d11 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11 "cl_intel_sharing_format_query_d3d11" + +/* when cl_khr_d3d11_sharing is supported */ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedD3D11TextureFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + DXGI_FORMAT* d3d11_formats, + cl_uint* num_texture_formats) ; + +typedef cl_int (CL_API_CALL * +clGetSupportedD3D11TextureFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + DXGI_FORMAT* d3d11_formats, + cl_uint* num_texture_formats) ; + #ifdef __cplusplus } #endif diff --git a/CL/cl_dx9_media_sharing.h b/CL/cl_dx9_media_sharing.h index e791e03c..a28e41dc 100644 --- a/CL/cl_dx9_media_sharing.h +++ b/CL/cl_dx9_media_sharing.h @@ -266,6 +266,34 @@ clEnqueueReleaseDX9ObjectsINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; +/*************************************************************** +* cl_intel_sharing_format_query_dx9 +***************************************************************/ +#define cl_intel_sharing_format_query_dx9 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_DX9 "cl_intel_sharing_format_query_dx9" + +/* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedDX9MediaSurfaceFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + D3DFORMAT* dx9_formats, + cl_uint* num_surface_formats) ; + +typedef cl_int (CL_API_CALL * +clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + D3DFORMAT* dx9_formats, + cl_uint* num_surface_formats) ; + #ifdef __cplusplus } #endif diff --git a/CL/cl_ext.h b/CL/cl_ext.h index c68d49b7..d83055f4 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -85,7 +85,7 @@ clCreateCommandBufferKHR( const cl_command_buffer_properties_khr* properties, cl_int* errcode_ret) ; -typedef CL_API_ENTRY cl_command_buffer_khr (CL_API_CALL * +typedef cl_command_buffer_khr (CL_API_CALL * clCreateCommandBufferKHR_fn)( cl_uint num_queues, const cl_command_queue* queues, @@ -96,7 +96,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clFinalizeCommandBufferKHR( cl_command_buffer_khr command_buffer) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clFinalizeCommandBufferKHR_fn)( cl_command_buffer_khr command_buffer) ; @@ -104,7 +104,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clRetainCommandBufferKHR( cl_command_buffer_khr command_buffer) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clRetainCommandBufferKHR_fn)( cl_command_buffer_khr command_buffer) ; @@ -112,7 +112,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clReleaseCommandBufferKHR( cl_command_buffer_khr command_buffer) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clReleaseCommandBufferKHR_fn)( cl_command_buffer_khr command_buffer) ; @@ -125,7 +125,7 @@ clEnqueueCommandBufferKHR( const cl_event* event_wait_list, cl_event* event) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueCommandBufferKHR_fn)( cl_uint num_queues, cl_command_queue* queues, @@ -143,7 +143,7 @@ clCommandBarrierWithWaitListKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCommandBarrierWithWaitListKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, @@ -166,7 +166,7 @@ clCommandCopyBufferKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCommandCopyBufferKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, @@ -198,7 +198,7 @@ clCommandCopyBufferRectKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCommandCopyBufferRectKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, @@ -230,7 +230,7 @@ clCommandCopyBufferToImageKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCommandCopyBufferToImageKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, @@ -258,7 +258,7 @@ clCommandCopyImageKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCommandCopyImageKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, @@ -286,7 +286,7 @@ clCommandCopyImageToBufferKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCommandCopyImageToBufferKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, @@ -314,7 +314,7 @@ clCommandFillBufferKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCommandFillBufferKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, @@ -341,7 +341,7 @@ clCommandFillImageKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCommandFillImageKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, @@ -369,7 +369,7 @@ clCommandNDRangeKernelKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clCommandNDRangeKernelKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, @@ -392,7 +392,7 @@ clGetCommandBufferInfoKHR( void* param_value, size_t* param_value_size_ret) ; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetCommandBufferInfoKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_buffer_info_khr param_name, @@ -525,7 +525,7 @@ clEnqueueAcquireExternalMemObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueAcquireExternalMemObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_mem_objects, @@ -543,7 +543,7 @@ clEnqueueReleaseExternalMemObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueReleaseExternalMemObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_mem_objects, @@ -623,7 +623,7 @@ clGetSemaphoreHandleForTypeKHR( void* handle_ptr, size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetSemaphoreHandleForTypeKHR_fn)( cl_semaphore_khr sema_object, cl_device_id device, @@ -777,8 +777,8 @@ typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { } cl_device_integer_dot_product_acceleration_properties_khr; /* cl_device_integer_dot_product_capabilities_khr */ -#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) #define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0) +#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) /* cl_device_info */ #define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073 @@ -875,7 +875,7 @@ clCreateSemaphoreWithPropertiesKHR( const cl_semaphore_properties_khr* sema_props, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_semaphore_khr (CL_API_CALL * +typedef cl_semaphore_khr (CL_API_CALL * clCreateSemaphoreWithPropertiesKHR_fn)( cl_context context, const cl_semaphore_properties_khr* sema_props, @@ -891,7 +891,7 @@ clEnqueueWaitSemaphoresKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueWaitSemaphoresKHR_fn)( cl_command_queue command_queue, cl_uint num_sema_objects, @@ -911,7 +911,7 @@ clEnqueueSignalSemaphoresKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clEnqueueSignalSemaphoresKHR_fn)( cl_command_queue command_queue, cl_uint num_sema_objects, @@ -929,7 +929,7 @@ clGetSemaphoreInfoKHR( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetSemaphoreInfoKHR_fn)( cl_semaphore_khr sema_object, cl_semaphore_info_khr param_name, @@ -941,7 +941,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clReleaseSemaphoreKHR( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clReleaseSemaphoreKHR_fn)( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; @@ -949,7 +949,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clRetainSemaphoreKHR( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clRetainSemaphoreKHR_fn)( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; @@ -1028,7 +1028,7 @@ clGetKernelSuggestedLocalWorkSizeKHR( const size_t* global_work_size, size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clGetKernelSuggestedLocalWorkSizeKHR_fn)( cl_command_queue command_queue, cl_kernel kernel, @@ -2290,142 +2290,6 @@ typedef struct _cl_motion_estimation_desc_intel { #define cl_intel_sharing_format_query 1 #define CL_INTEL_SHARING_FORMAT_QUERY "cl_intel_sharing_format_query" -/*************************************************************** -* cl_intel_sharing_format_query_d3d10 -***************************************************************/ -#define cl_intel_sharing_format_query_d3d10 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10 "cl_intel_sharing_format_query_d3d10" - -/* when cl_khr_d3d10_sharing is supported */ - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedD3D10TextureFormatsINTEL( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint num_entries, - DXGI_FORMAT* d3d10_formats, - cl_uint* num_texture_formats) ; - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clGetSupportedD3D10TextureFormatsINTEL_fn)( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint num_entries, - DXGI_FORMAT* d3d10_formats, - cl_uint* num_texture_formats) ; - -/*************************************************************** -* cl_intel_sharing_format_query_d3d11 -***************************************************************/ -#define cl_intel_sharing_format_query_d3d11 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11 "cl_intel_sharing_format_query_d3d11" - -/* when cl_khr_d3d11_sharing is supported */ - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedD3D11TextureFormatsINTEL( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - DXGI_FORMAT* d3d11_formats, - cl_uint* num_texture_formats) ; - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clGetSupportedD3D11TextureFormatsINTEL_fn)( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - DXGI_FORMAT* d3d11_formats, - cl_uint* num_texture_formats) ; - -/*************************************************************** -* cl_intel_sharing_format_query_dx9 -***************************************************************/ -#define cl_intel_sharing_format_query_dx9 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_DX9 "cl_intel_sharing_format_query_dx9" - -/* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */ - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedDX9MediaSurfaceFormatsINTEL( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - D3DFORMAT* dx9_formats, - cl_uint* num_surface_formats) ; - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - D3DFORMAT* dx9_formats, - cl_uint* num_surface_formats) ; - -/*************************************************************** -* cl_intel_sharing_format_query_gl -***************************************************************/ -#define cl_intel_sharing_format_query_gl 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_GL "cl_intel_sharing_format_query_gl" - -/* when cl_khr_gl_sharing is supported */ - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedGLTextureFormatsINTEL( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint num_entries, - cl_GLenum* gl_formats, - cl_uint* num_texture_formats) ; - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clGetSupportedGLTextureFormatsINTEL_fn)( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint num_entries, - cl_GLenum* gl_formats, - cl_uint* num_texture_formats) ; - -/*************************************************************** -* cl_intel_sharing_format_query_va_api -***************************************************************/ -#define cl_intel_sharing_format_query_va_api 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API "cl_intel_sharing_format_query_va_api" - -/* when cl_intel_va_api_media_sharing is supported */ - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedVA_APIMediaSurfaceFormatsINTEL( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - VAImageFormat* va_api_formats, - cl_uint* num_surface_formats) ; - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( - cl_context context, - cl_mem_flags flags, - cl_mem_object_type image_type, - cl_uint plane, - cl_uint num_entries, - VAImageFormat* va_api_formats, - cl_uint* num_surface_formats) ; - /*************************************************************** * cl_intel_simultaneous_sharing ***************************************************************/ @@ -2734,7 +2598,7 @@ clSetContentSizeBufferPoCL( cl_mem buffer, cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL * +typedef cl_int (CL_API_CALL * clSetContentSizeBufferPoCL_fn)( cl_mem buffer, cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; diff --git a/CL/cl_gl.h b/CL/cl_gl.h index 556afb11..aac12876 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -285,6 +285,32 @@ clCreateFromGLTexture3D_fn)( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; +/*************************************************************** +* cl_intel_sharing_format_query_gl +***************************************************************/ +#define cl_intel_sharing_format_query_gl 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_GL "cl_intel_sharing_format_query_gl" + +/* when cl_khr_gl_sharing is supported */ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedGLTextureFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + cl_GLenum* gl_formats, + cl_uint* num_texture_formats) ; + +typedef cl_int (CL_API_CALL * +clGetSupportedGLTextureFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + cl_GLenum* gl_formats, + cl_uint* num_texture_formats) ; + #ifdef __cplusplus } #endif diff --git a/CL/cl_layer-unused.h b/CL/cl_layer-unused.h new file mode 100644 index 00000000..7277e637 --- /dev/null +++ b/CL/cl_layer-unused.h @@ -0,0 +1,75 @@ +/******************************************************************************* + * Copyright (c) 2008-2021 The Khronos Group Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +#ifndef OPENCL_CL_LAYER_H_ +#define OPENCL_CL_LAYER_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************** +* cl_loader_layers +***************************************************************/ +#define cl_loader_layers 1 +#define CL_LOADER_LAYERS "cl_loader_layers" + +typedef cl_uint cl_layer_info; +typedef cl_uint cl_layer_api_version; + +/* cl_layer_info */ +#define CL_LAYER_API_VERSION 0x4240 + +/* Misc API enums */ +#define CL_LAYER_API_VERSION_100 100 + + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetLayerInfo( + size_t param_value_size, + cl_layer_info param_name, + void* param_value, + size_t* param_value_size_ret) ; + +typedef cl_int (CL_API_CALL * +clGetLayerInfo_fn)( + size_t param_value_size, + cl_layer_info param_name, + void* param_value, + size_t* param_value_size_ret) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clInitLayer( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch) ; + +typedef cl_int (CL_API_CALL * +clInitLayer_fn)( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch) ; + +#ifdef __cplusplus +} +#endif + +#endif /* OPENCL_CL_LAYER_H_ */ diff --git a/CL/cl_va_api_media_sharing_intel.h b/CL/cl_va_api_media_sharing_intel.h index 37de0708..c958c8a4 100644 --- a/CL/cl_va_api_media_sharing_intel.h +++ b/CL/cl_va_api_media_sharing_intel.h @@ -24,6 +24,34 @@ extern "C" { #endif +/*************************************************************** +* cl_intel_sharing_format_query_va_api +***************************************************************/ +#define cl_intel_sharing_format_query_va_api 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API "cl_intel_sharing_format_query_va_api" + +/* when cl_intel_va_api_media_sharing is supported */ + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedVA_APIMediaSurfaceFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + VAImageFormat* va_api_formats, + cl_uint* num_surface_formats) ; + +typedef cl_int (CL_API_CALL * +clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + VAImageFormat* va_api_formats, + cl_uint* num_surface_formats) ; + /*************************************************************** * cl_intel_va_api_media_sharing ***************************************************************/ diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index a9cd18ae..4fcb4410 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -13,6 +13,11 @@ skipExtensions = { 'cl_loader_layers', 'cl_intel_dx9_media_sharing', 'cl_intel_va_api_media_sharing', + 'cl_intel_sharing_format_query_d3d10', + 'cl_intel_sharing_format_query_d3d11', + 'cl_intel_sharing_format_query_dx9', + 'cl_intel_sharing_format_query_gl', + 'cl_intel_sharing_format_query_va_api', } # Extensions to include in this header: diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index c5fdfa67..c22d9fac 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -68,6 +68,7 @@ def getWin32OnlyIncludeString(include): genExtensions={ 'cl_khr_dx9_media_sharing', 'cl_intel_dx9_media_sharing', + 'cl_intel_sharing_format_query_dx9', }, guard="OPENCL_CL_DX9_MEDIA_SHARING_H_", includes=getWin32OnlyIncludeString("#include "), @@ -85,7 +86,10 @@ def getWin32OnlyIncludeString(include): gen = open(args.directory + '/cl_d3d10.h', 'wb') gen.write( cl_ext_h_template.render_unicode( - genExtensions={'cl_khr_d3d10_sharing'}, + genExtensions={ + 'cl_khr_d3d10_sharing', + 'cl_intel_sharing_format_query_d3d10', + }, guard="OPENCL_CL_D3D10_H_", includes=getDisableWarningIncludeString("#include "), spec=spec, @@ -102,7 +106,10 @@ def getWin32OnlyIncludeString(include): gen = open(args.directory + '/cl_d3d11.h', 'wb') gen.write( cl_ext_h_template.render_unicode( - genExtensions={'cl_khr_d3d11_sharing'}, + genExtensions={ + 'cl_khr_d3d11_sharing', + 'cl_intel_sharing_format_query_d3d11' + }, guard="OPENCL_CL_D3D11_H_", includes=getDisableWarningIncludeString("#include "), spec=spec, @@ -120,7 +127,6 @@ def getWin32OnlyIncludeString(include): gen.write( cl_ext_h_template.render_unicode( genExtensions={'cl_khr_egl_event', 'cl_khr_egl_image'}, - skipFunctions={}, guard="OPENCL_CL_EGL_H_", spec=spec, typedefs=typedefs, @@ -141,6 +147,7 @@ def getWin32OnlyIncludeString(include): 'cl_khr_gl_event', 'cl_khr_gl_msaa_sharing', 'cl_khr_gl_sharing', + 'cl_intel_sharing_format_query_gl', }, guard="OPENCL_CL_GL_H_", spec=spec, @@ -160,7 +167,6 @@ def getWin32OnlyIncludeString(include): gen.write( cl_ext_h_template.render_unicode( genExtensions={'cl_loader_layers'}, - skipFunctions={}, guard="OPENCL_CL_LAYER_H_", includes='#include ', spec=spec, @@ -177,7 +183,10 @@ def getWin32OnlyIncludeString(include): gen = open(args.directory + '/cl_va_api_media_sharing_intel.h', 'wb') gen.write( cl_ext_h_template.render_unicode( - genExtensions={'cl_intel_va_api_media_sharing'}, + genExtensions={ + 'cl_intel_va_api_media_sharing', + 'cl_intel_sharing_format_query_va_api', + }, guard="OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_", includes='#include ', spec=spec, @@ -195,7 +204,6 @@ def getWin32OnlyIncludeString(include): gen.write( cl_ext_h_template.render_unicode( genExtensions={}, - skipFunctions={}, guard="OPENCL_CL_EXT_H_", spec=spec, typedefs=typedefs, From 52583727142dae6207832ca3aa1f48f3a6c67367 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Sun, 29 Aug 2021 15:56:26 -0700 Subject: [PATCH 10/40] added support for CL_NO_PROTOTYPES define appended EXTENSION_NAME to extension name define --- CL/cl_d3d10.h | 104 +-- CL/cl_d3d11.h | 104 +-- CL/cl_dx9_media_sharing.h | 142 ++-- CL/cl_egl.h | 56 +- CL/cl_ext.h | 1151 ++++++++++++++++------------ CL/cl_gl.h | 163 ++-- CL/cl_layer-unused.h | 29 +- CL/cl_layer.h | 25 +- CL/cl_va_api_media_sharing_intel.h | 74 +- scripts/cl_ext.h.mako | 50 +- 10 files changed, 1113 insertions(+), 785 deletions(-) diff --git a/CL/cl_d3d10.h b/CL/cl_d3d10.h index 4e3027ca..ae7dc235 100644 --- a/CL/cl_d3d10.h +++ b/CL/cl_d3d10.h @@ -17,6 +17,10 @@ #ifndef OPENCL_CL_D3D10_H_ #define OPENCL_CL_D3D10_H_ +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + #if defined(_MSC_VER) #if _MSC_VER >=1500 #pragma warning( push ) @@ -41,7 +45,8 @@ extern "C" { * cl_khr_d3d10_sharing ***************************************************************/ #define cl_khr_d3d10_sharing 1 -#define CL_KHR_D3D10_SHARING "cl_khr_d3d10_sharing" +#define CL_KHR_D3D10_SHARING_EXTENSION_NAME \ + "cl_khr_d3d10_sharing" typedef cl_uint cl_d3d10_device_source_khr; typedef cl_uint cl_d3d10_device_set_khr; @@ -75,16 +80,6 @@ typedef cl_uint cl_d3d10_device_set_khr; #define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 -extern CL_API_ENTRY cl_int CL_API_CALL -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_API_SUFFIX__VERSION_1_0; - typedef cl_int (CL_API_CALL * clGetDeviceIDsFromD3D10KHR_fn)( cl_platform_id platform, @@ -95,13 +90,6 @@ clGetDeviceIDsFromD3D10KHR_fn)( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromD3D10BufferKHR( - cl_context context, - cl_mem_flags flags, - ID3D10Buffer* resource, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; - typedef cl_mem (CL_API_CALL * clCreateFromD3D10BufferKHR_fn)( cl_context context, @@ -109,14 +97,6 @@ clCreateFromD3D10BufferKHR_fn)( ID3D10Buffer* resource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromD3D10Texture2DKHR( - cl_context context, - cl_mem_flags flags, - ID3D10Texture2D* resource, - UINT subresource, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; - typedef cl_mem (CL_API_CALL * clCreateFromD3D10Texture2DKHR_fn)( cl_context context, @@ -125,14 +105,6 @@ clCreateFromD3D10Texture2DKHR_fn)( UINT subresource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromD3D10Texture3DKHR( - cl_context context, - cl_mem_flags flags, - ID3D10Texture3D* resource, - UINT subresource, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; - typedef cl_mem (CL_API_CALL * clCreateFromD3D10Texture3DKHR_fn)( cl_context context, @@ -141,8 +113,8 @@ clCreateFromD3D10Texture3DKHR_fn)( UINT subresource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireD3D10ObjectsKHR( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireD3D10ObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -151,7 +123,7 @@ clEnqueueAcquireD3D10ObjectsKHR( cl_event* event) CL_API_SUFFIX__VERSION_1_0; typedef cl_int (CL_API_CALL * -clEnqueueAcquireD3D10ObjectsKHR_fn)( +clEnqueueReleaseD3D10ObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -159,8 +131,43 @@ clEnqueueAcquireD3D10ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; +#ifndef CL_NO_PROTOTYPES + extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseD3D10ObjectsKHR( +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_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D10BufferKHR( + cl_context context, + cl_mem_flags flags, + ID3D10Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D10Texture2DKHR( + cl_context context, + cl_mem_flags flags, + ID3D10Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D10Texture3DKHR( + cl_context context, + cl_mem_flags flags, + ID3D10Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireD3D10ObjectsKHR( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -168,8 +175,8 @@ clEnqueueReleaseD3D10ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseD3D10ObjectsKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseD3D10ObjectsKHR( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -177,16 +184,19 @@ clEnqueueReleaseD3D10ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_intel_sharing_format_query_d3d10 ***************************************************************/ #define cl_intel_sharing_format_query_d3d10 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10 "cl_intel_sharing_format_query_d3d10" +#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10_EXTENSION_NAME \ + "cl_intel_sharing_format_query_d3d10" /* when cl_khr_d3d10_sharing is supported */ -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedD3D10TextureFormatsINTEL( +typedef cl_int (CL_API_CALL * +clGetSupportedD3D10TextureFormatsINTEL_fn)( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -194,8 +204,10 @@ clGetSupportedD3D10TextureFormatsINTEL( DXGI_FORMAT* d3d10_formats, cl_uint* num_texture_formats) ; -typedef cl_int (CL_API_CALL * -clGetSupportedD3D10TextureFormatsINTEL_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedD3D10TextureFormatsINTEL( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -203,6 +215,8 @@ clGetSupportedD3D10TextureFormatsINTEL_fn)( DXGI_FORMAT* d3d10_formats, cl_uint* num_texture_formats) ; +#endif /* CL_NO_PROTOTYPES */ + #ifdef __cplusplus } #endif diff --git a/CL/cl_d3d11.h b/CL/cl_d3d11.h index 4ab24cb8..b0b0c970 100644 --- a/CL/cl_d3d11.h +++ b/CL/cl_d3d11.h @@ -17,6 +17,10 @@ #ifndef OPENCL_CL_D3D11_H_ #define OPENCL_CL_D3D11_H_ +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + #if defined(_MSC_VER) #if _MSC_VER >=1500 #pragma warning( push ) @@ -41,7 +45,8 @@ extern "C" { * cl_khr_d3d11_sharing ***************************************************************/ #define cl_khr_d3d11_sharing 1 -#define CL_KHR_D3D11_SHARING "cl_khr_d3d11_sharing" +#define CL_KHR_D3D11_SHARING_EXTENSION_NAME \ + "cl_khr_d3d11_sharing" typedef cl_uint cl_d3d11_device_source_khr; typedef cl_uint cl_d3d11_device_set_khr; @@ -75,16 +80,6 @@ typedef cl_uint cl_d3d11_device_set_khr; #define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 -extern CL_API_ENTRY cl_int CL_API_CALL -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_API_SUFFIX__VERSION_1_2; - typedef cl_int (CL_API_CALL * clGetDeviceIDsFromD3D11KHR_fn)( cl_platform_id platform, @@ -95,13 +90,6 @@ clGetDeviceIDsFromD3D11KHR_fn)( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromD3D11BufferKHR( - cl_context context, - cl_mem_flags flags, - ID3D11Buffer* resource, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - typedef cl_mem (CL_API_CALL * clCreateFromD3D11BufferKHR_fn)( cl_context context, @@ -109,14 +97,6 @@ clCreateFromD3D11BufferKHR_fn)( ID3D11Buffer* resource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromD3D11Texture2DKHR( - cl_context context, - cl_mem_flags flags, - ID3D11Texture2D* resource, - UINT subresource, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - typedef cl_mem (CL_API_CALL * clCreateFromD3D11Texture2DKHR_fn)( cl_context context, @@ -125,14 +105,6 @@ clCreateFromD3D11Texture2DKHR_fn)( UINT subresource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromD3D11Texture3DKHR( - cl_context context, - cl_mem_flags flags, - ID3D11Texture3D* resource, - UINT subresource, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - typedef cl_mem (CL_API_CALL * clCreateFromD3D11Texture3DKHR_fn)( cl_context context, @@ -141,8 +113,8 @@ clCreateFromD3D11Texture3DKHR_fn)( UINT subresource, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireD3D11ObjectsKHR( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireD3D11ObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -151,7 +123,7 @@ clEnqueueAcquireD3D11ObjectsKHR( cl_event* event) CL_API_SUFFIX__VERSION_1_2; typedef cl_int (CL_API_CALL * -clEnqueueAcquireD3D11ObjectsKHR_fn)( +clEnqueueReleaseD3D11ObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -159,8 +131,43 @@ clEnqueueAcquireD3D11ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +#ifndef CL_NO_PROTOTYPES + extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseD3D11ObjectsKHR( +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_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D11BufferKHR( + cl_context context, + cl_mem_flags flags, + ID3D11Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D11Texture2DKHR( + cl_context context, + cl_mem_flags flags, + ID3D11Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D11Texture3DKHR( + cl_context context, + cl_mem_flags flags, + ID3D11Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireD3D11ObjectsKHR( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -168,8 +175,8 @@ clEnqueueReleaseD3D11ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseD3D11ObjectsKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseD3D11ObjectsKHR( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -177,16 +184,19 @@ clEnqueueReleaseD3D11ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_intel_sharing_format_query_d3d11 ***************************************************************/ #define cl_intel_sharing_format_query_d3d11 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11 "cl_intel_sharing_format_query_d3d11" +#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11_EXTENSION_NAME \ + "cl_intel_sharing_format_query_d3d11" /* when cl_khr_d3d11_sharing is supported */ -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedD3D11TextureFormatsINTEL( +typedef cl_int (CL_API_CALL * +clGetSupportedD3D11TextureFormatsINTEL_fn)( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -195,8 +205,10 @@ clGetSupportedD3D11TextureFormatsINTEL( DXGI_FORMAT* d3d11_formats, cl_uint* num_texture_formats) ; -typedef cl_int (CL_API_CALL * -clGetSupportedD3D11TextureFormatsINTEL_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedD3D11TextureFormatsINTEL( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -205,6 +217,8 @@ clGetSupportedD3D11TextureFormatsINTEL_fn)( DXGI_FORMAT* d3d11_formats, cl_uint* num_texture_formats) ; +#endif /* CL_NO_PROTOTYPES */ + #ifdef __cplusplus } #endif diff --git a/CL/cl_dx9_media_sharing.h b/CL/cl_dx9_media_sharing.h index a28e41dc..30b1653c 100644 --- a/CL/cl_dx9_media_sharing.h +++ b/CL/cl_dx9_media_sharing.h @@ -17,6 +17,10 @@ #ifndef OPENCL_CL_DX9_MEDIA_SHARING_H_ #define OPENCL_CL_DX9_MEDIA_SHARING_H_ +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + #if defined(_WIN32) #include #endif @@ -31,7 +35,8 @@ extern "C" { * cl_khr_dx9_media_sharing ***************************************************************/ #define cl_khr_dx9_media_sharing 1 -#define CL_KHR_DX9_MEDIA_SHARING "cl_khr_dx9_media_sharing" +#define CL_KHR_DX9_MEDIA_SHARING_EXTENSION_NAME \ + "cl_khr_dx9_media_sharing" typedef cl_uint cl_dx9_media_adapter_type_khr; typedef cl_uint cl_dx9_media_adapter_set_khr; @@ -41,7 +46,8 @@ typedef struct _cl_dx9_surface_info_khr { IDirect3DSurface9* resource; HANDLE shared_handle; } cl_dx9_surface_info_khr; -#endif + +#endif /* defined(_WIN32) */ /* Error codes */ #define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 @@ -75,17 +81,6 @@ typedef struct _cl_dx9_surface_info_khr { #define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceIDsFromDX9MediaAdapterKHR( - cl_platform_id platform, - cl_uint num_media_adapters, - cl_dx9_media_adapter_type_khr* media_adapter_type, - void* media_adapters, - cl_dx9_media_adapter_set_khr media_adapter_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; - typedef cl_int (CL_API_CALL * clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( cl_platform_id platform, @@ -97,15 +92,6 @@ clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_mem CL_API_CALL -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_API_SUFFIX__VERSION_1_2; - typedef cl_mem (CL_API_CALL * clCreateFromDX9MediaSurfaceKHR_fn)( cl_context context, @@ -115,8 +101,8 @@ clCreateFromDX9MediaSurfaceKHR_fn)( cl_uint plane, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireDX9MediaSurfacesKHR( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireDX9MediaSurfacesKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -125,7 +111,7 @@ clEnqueueAcquireDX9MediaSurfacesKHR( cl_event* event) CL_API_SUFFIX__VERSION_1_2; typedef cl_int (CL_API_CALL * -clEnqueueAcquireDX9MediaSurfacesKHR_fn)( +clEnqueueReleaseDX9MediaSurfacesKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -133,8 +119,30 @@ clEnqueueAcquireDX9MediaSurfacesKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +#ifndef CL_NO_PROTOTYPES + extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseDX9MediaSurfacesKHR( +clGetDeviceIDsFromDX9MediaAdapterKHR( + cl_platform_id platform, + cl_uint num_media_adapters, + cl_dx9_media_adapter_type_khr* media_adapter_type, + void* media_adapters, + cl_dx9_media_adapter_set_khr media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +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_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireDX9MediaSurfacesKHR( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -142,8 +150,8 @@ clEnqueueReleaseDX9MediaSurfacesKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseDX9MediaSurfacesKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseDX9MediaSurfacesKHR( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -151,11 +159,14 @@ clEnqueueReleaseDX9MediaSurfacesKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_intel_dx9_media_sharing ***************************************************************/ #define cl_intel_dx9_media_sharing 1 -#define CL_INTEL_DX9_MEDIA_SHARING "cl_intel_dx9_media_sharing" +#define CL_INTEL_DX9_MEDIA_SHARING_EXTENSION_NAME \ + "cl_intel_dx9_media_sharing" typedef cl_uint cl_dx9_device_source_intel; typedef cl_uint cl_dx9_device_set_intel; @@ -192,16 +203,6 @@ typedef cl_uint cl_dx9_device_set_intel; #define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceIDsFromDX9INTEL( - cl_platform_id platform, - cl_dx9_device_source_intel dx9_device_source, - void* dx9_object, - cl_dx9_device_set_intel dx9_device_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; - typedef cl_int (CL_API_CALL * clGetDeviceIDsFromDX9INTEL_fn)( cl_platform_id platform, @@ -212,15 +213,6 @@ clGetDeviceIDsFromDX9INTEL_fn)( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromDX9MediaSurfaceINTEL( - cl_context context, - cl_mem_flags flags, - IDirect3DSurface9* resource, - HANDLE sharedHandle, - UINT plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; - typedef cl_mem (CL_API_CALL * clCreateFromDX9MediaSurfaceINTEL_fn)( cl_context context, @@ -230,8 +222,8 @@ clCreateFromDX9MediaSurfaceINTEL_fn)( UINT plane, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireDX9ObjectsINTEL( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireDX9ObjectsINTEL_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -240,25 +232,46 @@ clEnqueueAcquireDX9ObjectsINTEL( cl_event* event) CL_API_SUFFIX__VERSION_1_1; typedef cl_int (CL_API_CALL * -clEnqueueAcquireDX9ObjectsINTEL_fn)( +clEnqueueReleaseDX9ObjectsINTEL_fn)( cl_command_queue command_queue, cl_uint num_objects, - const cl_mem* mem_objects, + cl_mem* mem_objects, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; +#ifndef CL_NO_PROTOTYPES + extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseDX9ObjectsINTEL( +clGetDeviceIDsFromDX9INTEL( + cl_platform_id platform, + cl_dx9_device_source_intel dx9_device_source, + void* dx9_object, + cl_dx9_device_set_intel dx9_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromDX9MediaSurfaceINTEL( + cl_context context, + cl_mem_flags flags, + IDirect3DSurface9* resource, + HANDLE sharedHandle, + UINT plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireDX9ObjectsINTEL( cl_command_queue command_queue, cl_uint num_objects, - cl_mem* mem_objects, + const cl_mem* mem_objects, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseDX9ObjectsINTEL_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseDX9ObjectsINTEL( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, @@ -266,16 +279,19 @@ clEnqueueReleaseDX9ObjectsINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_intel_sharing_format_query_dx9 ***************************************************************/ #define cl_intel_sharing_format_query_dx9 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_DX9 "cl_intel_sharing_format_query_dx9" +#define CL_INTEL_SHARING_FORMAT_QUERY_DX9_EXTENSION_NAME \ + "cl_intel_sharing_format_query_dx9" /* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */ -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedDX9MediaSurfaceFormatsINTEL( +typedef cl_int (CL_API_CALL * +clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -284,8 +300,10 @@ clGetSupportedDX9MediaSurfaceFormatsINTEL( D3DFORMAT* dx9_formats, cl_uint* num_surface_formats) ; -typedef cl_int (CL_API_CALL * -clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedDX9MediaSurfaceFormatsINTEL( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -294,6 +312,8 @@ clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( D3DFORMAT* dx9_formats, cl_uint* num_surface_formats) ; +#endif /* CL_NO_PROTOTYPES */ + #ifdef __cplusplus } #endif diff --git a/CL/cl_egl.h b/CL/cl_egl.h index 06668943..39eab6bc 100644 --- a/CL/cl_egl.h +++ b/CL/cl_egl.h @@ -17,6 +17,10 @@ #ifndef OPENCL_CL_EGL_H_ #define OPENCL_CL_EGL_H_ +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + #include #ifdef __cplusplus @@ -27,7 +31,8 @@ extern "C" { * cl_khr_egl_event ***************************************************************/ #define cl_khr_egl_event 1 -#define CL_KHR_EGL_EVENT "cl_khr_egl_event" +#define CL_KHR_EGL_EVENT_EXTENSION_NAME \ + "cl_khr_egl_event" /* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ typedef void* CLeglDisplayKHR; @@ -36,25 +41,30 @@ typedef void* CLeglDisplayKHR; typedef void* CLeglSyncKHR; -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromEGLSyncKHR( +typedef cl_event (CL_API_CALL * +clCreateEventFromEGLSyncKHR_fn)( cl_context context, CLeglSyncKHR sync, CLeglDisplayKHR display, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef cl_event (CL_API_CALL * -clCreateEventFromEGLSyncKHR_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateEventFromEGLSyncKHR( cl_context context, CLeglSyncKHR sync, CLeglDisplayKHR display, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_egl_image ***************************************************************/ #define cl_khr_egl_image 1 -#define CL_KHR_EGL_IMAGE "cl_khr_egl_image" +#define CL_KHR_EGL_IMAGE_EXTENSION_NAME \ + "cl_khr_egl_image" /* Command type for events created with clEnqueueAcquireEGLObjectsKHR */ #define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F @@ -75,15 +85,6 @@ typedef void* CLeglImageKHR; typedef intptr_t cl_egl_image_properties_khr; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromEGLImageKHR( - cl_context context, - CLeglDisplayKHR egldisplay, - CLeglImageKHR eglimage, - cl_mem_flags flags, - const cl_egl_image_properties_khr* properties, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; - typedef cl_mem (CL_API_CALL * clCreateFromEGLImageKHR_fn)( cl_context context, @@ -93,8 +94,8 @@ clCreateFromEGLImageKHR_fn)( const cl_egl_image_properties_khr* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireEGLObjectsKHR( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireEGLObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -103,7 +104,7 @@ clEnqueueAcquireEGLObjectsKHR( cl_event* event) CL_API_SUFFIX__VERSION_1_0; typedef cl_int (CL_API_CALL * -clEnqueueAcquireEGLObjectsKHR_fn)( +clEnqueueReleaseEGLObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -111,8 +112,19 @@ clEnqueueAcquireEGLObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromEGLImageKHR( + cl_context context, + CLeglDisplayKHR egldisplay, + CLeglImageKHR eglimage, + cl_mem_flags flags, + const cl_egl_image_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseEGLObjectsKHR( +clEnqueueAcquireEGLObjectsKHR( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -120,8 +132,8 @@ clEnqueueReleaseEGLObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseEGLObjectsKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseEGLObjectsKHR( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -129,6 +141,8 @@ clEnqueueReleaseEGLObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; +#endif /* CL_NO_PROTOTYPES */ + #ifdef __cplusplus } #endif diff --git a/CL/cl_ext.h b/CL/cl_ext.h index d83055f4..e96ada26 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -17,6 +17,10 @@ #ifndef OPENCL_CL_EXT_H_ #define OPENCL_CL_EXT_H_ +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + #include #ifdef __cplusplus @@ -27,7 +31,8 @@ extern "C" { * cl_khr_command_buffer ***************************************************************/ #define cl_khr_command_buffer 1 -#define CL_KHR_COMMAND_BUFFER "cl_khr_command_buffer" +#define CL_KHR_COMMAND_BUFFER_EXTENSION_NAME \ + "cl_khr_command_buffer" typedef cl_bitfield cl_device_command_buffer_capabilities_khr; typedef struct _cl_command_buffer_khr* cl_command_buffer_khr; @@ -78,13 +83,6 @@ typedef struct _cl_mutable_command_khr* cl_mutable_command_khr; #define CL_COMMAND_COMMAND_BUFFER_KHR 0x12A8 -extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL -clCreateCommandBufferKHR( - cl_uint num_queues, - const cl_command_queue* queues, - const cl_command_buffer_properties_khr* properties, - cl_int* errcode_ret) ; - typedef cl_command_buffer_khr (CL_API_CALL * clCreateCommandBufferKHR_fn)( cl_uint num_queues, @@ -92,39 +90,18 @@ clCreateCommandBufferKHR_fn)( const cl_command_buffer_properties_khr* properties, cl_int* errcode_ret) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clFinalizeCommandBufferKHR( - cl_command_buffer_khr command_buffer) ; - typedef cl_int (CL_API_CALL * clFinalizeCommandBufferKHR_fn)( cl_command_buffer_khr command_buffer) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainCommandBufferKHR( - cl_command_buffer_khr command_buffer) ; - typedef cl_int (CL_API_CALL * clRetainCommandBufferKHR_fn)( cl_command_buffer_khr command_buffer) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseCommandBufferKHR( - cl_command_buffer_khr command_buffer) ; - typedef cl_int (CL_API_CALL * clReleaseCommandBufferKHR_fn)( cl_command_buffer_khr command_buffer) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueCommandBufferKHR( - cl_uint num_queues, - cl_command_queue* queues, - cl_command_buffer_khr command_buffer, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; - typedef cl_int (CL_API_CALL * clEnqueueCommandBufferKHR_fn)( cl_uint num_queues, @@ -134,8 +111,8 @@ clEnqueueCommandBufferKHR_fn)( const cl_event* event_wait_list, cl_event* event) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clCommandBarrierWithWaitListKHR( +typedef cl_int (CL_API_CALL * +clCommandBarrierWithWaitListKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_uint num_sync_points_in_wait_list, @@ -144,86 +121,100 @@ clCommandBarrierWithWaitListKHR( cl_mutable_command_khr* mutable_handle) ; typedef cl_int (CL_API_CALL * -clCommandBarrierWithWaitListKHR_fn)( +clCommandCopyBufferKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_buffer, + size_t src_offset, + size_t dst_offset, + size_t size, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyBufferKHR( +typedef cl_int (CL_API_CALL * +clCommandCopyBufferRectKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, - size_t src_offset, - size_t dst_offset, - size_t size, + const size_t* src_origin, + const size_t* dst_origin, + const size_t* region, + size_t src_row_pitch, + size_t src_slice_pitch, + size_t dst_row_pitch, + size_t dst_slice_pitch, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; typedef cl_int (CL_API_CALL * -clCommandCopyBufferKHR_fn)( +clCommandCopyBufferToImageKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_buffer, - cl_mem dst_buffer, + cl_mem dst_image, size_t src_offset, - size_t dst_offset, - size_t size, + const size_t* dst_origin, + const size_t* region, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyBufferRectKHR( +typedef cl_int (CL_API_CALL * +clCommandCopyImageKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_buffer, - cl_mem dst_buffer, + cl_mem src_image, + cl_mem dst_image, const size_t* src_origin, const size_t* dst_origin, const size_t* region, - size_t src_row_pitch, - size_t src_slice_pitch, - size_t dst_row_pitch, - size_t dst_slice_pitch, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; typedef cl_int (CL_API_CALL * -clCommandCopyBufferRectKHR_fn)( +clCommandCopyImageToBufferKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_buffer, + cl_mem src_image, cl_mem dst_buffer, const size_t* src_origin, - const size_t* dst_origin, const size_t* region, - size_t src_row_pitch, - size_t src_slice_pitch, - size_t dst_row_pitch, - size_t dst_slice_pitch, + size_t dst_offset, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyBufferToImageKHR( +typedef cl_int (CL_API_CALL * +clCommandFillBufferKHR_fn)( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_buffer, - cl_mem dst_image, - size_t src_offset, - const size_t* dst_origin, + cl_mem buffer, + const void* pattern, + size_t pattern_size, + size_t offset, + size_t size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clCommandFillImageKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem image, + const void* fill_color, + const size_t* origin, const size_t* region, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, @@ -231,40 +222,106 @@ clCommandCopyBufferToImageKHR( cl_mutable_command_khr* mutable_handle) ; typedef cl_int (CL_API_CALL * -clCommandCopyBufferToImageKHR_fn)( +clCommandNDRangeKernelKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + const cl_ndrange_kernel_command_properties_khr* properties, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + const size_t* local_work_size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clGetCommandBufferInfoKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_buffer_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL +clCreateCommandBufferKHR( + cl_uint num_queues, + const cl_command_queue* queues, + const cl_command_buffer_properties_khr* properties, + cl_int* errcode_ret) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clFinalizeCommandBufferKHR( + cl_command_buffer_khr command_buffer) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainCommandBufferKHR( + cl_command_buffer_khr command_buffer) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseCommandBufferKHR( + cl_command_buffer_khr command_buffer) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueCommandBufferKHR( + cl_uint num_queues, + cl_command_queue* queues, + cl_command_buffer_khr command_buffer, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandBarrierWithWaitListKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyBufferKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_buffer, - cl_mem dst_image, + cl_mem dst_buffer, size_t src_offset, - const size_t* dst_origin, - const size_t* region, + size_t dst_offset, + size_t size, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyImageKHR( +clCommandCopyBufferRectKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_image, - cl_mem dst_image, + cl_mem src_buffer, + cl_mem dst_buffer, const size_t* src_origin, const size_t* dst_origin, const size_t* region, + size_t src_row_pitch, + size_t src_slice_pitch, + size_t dst_row_pitch, + size_t dst_slice_pitch, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandCopyImageKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyBufferToImageKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, - cl_mem src_image, + cl_mem src_buffer, cl_mem dst_image, - const size_t* src_origin, + size_t src_offset, const size_t* dst_origin, const size_t* region, cl_uint num_sync_points_in_wait_list, @@ -273,21 +330,21 @@ clCommandCopyImageKHR_fn)( cl_mutable_command_khr* mutable_handle) ; extern CL_API_ENTRY cl_int CL_API_CALL -clCommandCopyImageToBufferKHR( +clCommandCopyImageKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_image, - cl_mem dst_buffer, + cl_mem dst_image, const size_t* src_origin, + const size_t* dst_origin, const size_t* region, - size_t dst_offset, cl_uint num_sync_points_in_wait_list, const cl_sync_point_khr* sync_point_wait_list, cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandCopyImageToBufferKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyImageToBufferKHR( cl_command_buffer_khr command_buffer, cl_command_queue command_queue, cl_mem src_image, @@ -314,20 +371,6 @@ clCommandFillBufferKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandFillBufferKHR_fn)( - cl_command_buffer_khr command_buffer, - cl_command_queue command_queue, - cl_mem buffer, - const void* pattern, - size_t pattern_size, - size_t offset, - size_t size, - cl_uint num_sync_points_in_wait_list, - const cl_sync_point_khr* sync_point_wait_list, - cl_sync_point_khr* sync_point, - cl_mutable_command_khr* mutable_handle) ; - extern CL_API_ENTRY cl_int CL_API_CALL clCommandFillImageKHR( cl_command_buffer_khr command_buffer, @@ -341,19 +384,6 @@ clCommandFillImageKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandFillImageKHR_fn)( - cl_command_buffer_khr command_buffer, - cl_command_queue command_queue, - cl_mem image, - const void* fill_color, - const size_t* origin, - const size_t* region, - cl_uint num_sync_points_in_wait_list, - const cl_sync_point_khr* sync_point_wait_list, - cl_sync_point_khr* sync_point, - cl_mutable_command_khr* mutable_handle) ; - extern CL_API_ENTRY cl_int CL_API_CALL clCommandNDRangeKernelKHR( cl_command_buffer_khr command_buffer, @@ -369,21 +399,6 @@ clCommandNDRangeKernelKHR( cl_sync_point_khr* sync_point, cl_mutable_command_khr* mutable_handle) ; -typedef cl_int (CL_API_CALL * -clCommandNDRangeKernelKHR_fn)( - cl_command_buffer_khr command_buffer, - cl_command_queue command_queue, - const cl_ndrange_kernel_command_properties_khr* properties, - cl_kernel kernel, - cl_uint work_dim, - const size_t* global_work_offset, - const size_t* global_work_size, - const size_t* local_work_size, - cl_uint num_sync_points_in_wait_list, - const cl_sync_point_khr* sync_point_wait_list, - cl_sync_point_khr* sync_point, - cl_mutable_command_khr* mutable_handle) ; - extern CL_API_ENTRY cl_int CL_API_CALL clGetCommandBufferInfoKHR( cl_command_buffer_khr command_buffer, @@ -392,53 +407,55 @@ clGetCommandBufferInfoKHR( void* param_value, size_t* param_value_size_ret) ; -typedef cl_int (CL_API_CALL * -clGetCommandBufferInfoKHR_fn)( - cl_command_buffer_khr command_buffer, - cl_command_buffer_info_khr param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) ; +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** * cl_khr_create_command_queue ***************************************************************/ #define cl_khr_create_command_queue 1 -#define CL_KHR_CREATE_COMMAND_QUEUE "cl_khr_create_command_queue" +#define CL_KHR_CREATE_COMMAND_QUEUE_EXTENSION_NAME \ + "cl_khr_create_command_queue" typedef cl_properties cl_queue_properties_khr; -extern CL_API_ENTRY cl_command_queue CL_API_CALL -clCreateCommandQueueWithPropertiesKHR( +typedef cl_command_queue (CL_API_CALL * +clCreateCommandQueueWithPropertiesKHR_fn)( cl_context context, cl_device_id device, const cl_queue_properties_khr* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef cl_command_queue (CL_API_CALL * -clCreateCommandQueueWithPropertiesKHR_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_command_queue CL_API_CALL +clCreateCommandQueueWithPropertiesKHR( cl_context context, cl_device_id device, const cl_queue_properties_khr* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_depth_images ***************************************************************/ #define cl_khr_depth_images 1 -#define CL_KHR_DEPTH_IMAGES "cl_khr_depth_images" +#define CL_KHR_DEPTH_IMAGES_EXTENSION_NAME \ + "cl_khr_depth_images" #if !defined(CL_VERSION_1_2) /* cl_channel_order - defined in CL.h for OpenCL 1.2 (?) and newer */ #define CL_DEPTH 0x10BD -#endif + +#endif /* !defined(CL_VERSION_1_2) */ /*************************************************************** * cl_khr_device_uuid ***************************************************************/ #define cl_khr_device_uuid 1 -#define CL_KHR_DEVICE_UUID "cl_khr_device_uuid" +#define CL_KHR_DEVICE_UUID_EXTENSION_NAME \ + "cl_khr_device_uuid" /* Size Constants */ #define CL_UUID_SIZE_KHR 16 @@ -455,7 +472,8 @@ clCreateCommandQueueWithPropertiesKHR_fn)( * cl_khr_extended_versioning ***************************************************************/ #define cl_khr_extended_versioning 1 -#define CL_KHR_EXTENDED_VERSIONING "cl_khr_extended_versioning" +#define CL_KHR_EXTENDED_VERSIONING_EXTENSION_NAME \ + "cl_khr_extended_versioning" #define CL_VERSION_MAJOR_BITS_KHR 10 #define CL_VERSION_MINOR_BITS_KHR 10 @@ -497,7 +515,8 @@ typedef struct _cl_name_version_khr { * cl_khr_external_memory ***************************************************************/ #define cl_khr_external_memory 1 -#define CL_KHR_EXTERNAL_MEMORY "cl_khr_external_memory" +#define CL_KHR_EXTERNAL_MEMORY_EXTENSION_NAME \ + "cl_khr_external_memory" typedef cl_uint cl_external_memory_handle_type_khr; @@ -516,8 +535,8 @@ typedef cl_uint cl_external_memory_handle_type_khr; #define CL_COMMAND_RELEASE_EXTERNAL_MEM_OBJECTS_KHR 0x2048 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireExternalMemObjectsKHR( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireExternalMemObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -526,7 +545,7 @@ clEnqueueAcquireExternalMemObjectsKHR( cl_event* event) CL_API_SUFFIX__VERSION_3_0; typedef cl_int (CL_API_CALL * -clEnqueueAcquireExternalMemObjectsKHR_fn)( +clEnqueueReleaseExternalMemObjectsKHR_fn)( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -534,8 +553,10 @@ clEnqueueAcquireExternalMemObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; +#ifndef CL_NO_PROTOTYPES + extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseExternalMemObjectsKHR( +clEnqueueAcquireExternalMemObjectsKHR( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -543,8 +564,8 @@ clEnqueueReleaseExternalMemObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseExternalMemObjectsKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseExternalMemObjectsKHR( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -552,11 +573,14 @@ clEnqueueReleaseExternalMemObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_external_memory_dma_buf ***************************************************************/ #define cl_khr_external_memory_dma_buf 1 -#define CL_KHR_EXTERNAL_MEMORY_DMA_BUF "cl_khr_external_memory_dma_buf" +#define CL_KHR_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME \ + "cl_khr_external_memory_dma_buf" /* cl_external_memory_handle_type_khr */ #define CL_EXTERNAL_MEMORY_HANDLE_DMA_BUF_KHR 0x2067 @@ -565,7 +589,8 @@ clEnqueueReleaseExternalMemObjectsKHR_fn)( * cl_khr_external_memory_dx ***************************************************************/ #define cl_khr_external_memory_dx 1 -#define CL_KHR_EXTERNAL_MEMORY_DX "cl_khr_external_memory_dx" +#define CL_KHR_EXTERNAL_MEMORY_DX_EXTENSION_NAME \ + "cl_khr_external_memory_dx" /* cl_external_memory_handle_type_khr */ #define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR 0x2063 @@ -577,7 +602,8 @@ clEnqueueReleaseExternalMemObjectsKHR_fn)( * cl_khr_external_memory_opaque_fd ***************************************************************/ #define cl_khr_external_memory_opaque_fd 1 -#define CL_KHR_EXTERNAL_MEMORY_OPAQUE_FD "cl_khr_external_memory_opaque_fd" +#define CL_KHR_EXTERNAL_MEMORY_OPAQUE_FD_EXTENSION_NAME \ + "cl_khr_external_memory_opaque_fd" /* cl_external_memory_handle_type_khr */ #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_FD_KHR 0x2060 @@ -586,7 +612,8 @@ clEnqueueReleaseExternalMemObjectsKHR_fn)( * cl_khr_external_memory_win32 ***************************************************************/ #define cl_khr_external_memory_win32 1 -#define CL_KHR_EXTERNAL_MEMORY_WIN32 "cl_khr_external_memory_win32" +#define CL_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME \ + "cl_khr_external_memory_win32" /* cl_external_memory_handle_type_khr */ #define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR 0x2061 @@ -596,7 +623,8 @@ clEnqueueReleaseExternalMemObjectsKHR_fn)( * cl_khr_external_semaphore ***************************************************************/ #define cl_khr_external_semaphore 1 -#define CL_KHR_EXTERNAL_SEMAPHORE "cl_khr_external_semaphore" +#define CL_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME \ + "cl_khr_external_semaphore" typedef struct _cl_semaphore_khr * cl_semaphore_khr; typedef cl_uint cl_external_semaphore_handle_type_khr; @@ -614,8 +642,8 @@ typedef cl_uint cl_external_semaphore_handle_type_khr; #define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_LIST_END_KHR 0 -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSemaphoreHandleForTypeKHR( +typedef cl_int (CL_API_CALL * +clGetSemaphoreHandleForTypeKHR_fn)( cl_semaphore_khr sema_object, cl_device_id device, cl_external_semaphore_handle_type_khr handle_type, @@ -623,8 +651,10 @@ clGetSemaphoreHandleForTypeKHR( void* handle_ptr, size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clGetSemaphoreHandleForTypeKHR_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSemaphoreHandleForTypeKHR( cl_semaphore_khr sema_object, cl_device_id device, cl_external_semaphore_handle_type_khr handle_type, @@ -632,11 +662,14 @@ clGetSemaphoreHandleForTypeKHR_fn)( void* handle_ptr, size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_external_semaphore_dx_fence ***************************************************************/ #define cl_khr_external_semaphore_dx_fence 1 -#define CL_KHR_EXTERNAL_SEMAPHORE_DX_FENCE "cl_khr_external_semaphore_dx_fence" +#define CL_KHR_EXTERNAL_SEMAPHORE_DX_FENCE_EXTENSION_NAME \ + "cl_khr_external_semaphore_dx_fence" /* cl_external_semaphore_handle_type_khr */ #define CL_SEMAPHORE_HANDLE_D3D12_FENCE_KHR 0x2059 @@ -645,7 +678,8 @@ clGetSemaphoreHandleForTypeKHR_fn)( * cl_khr_external_semaphore_opaque_fd ***************************************************************/ #define cl_khr_external_semaphore_opaque_fd 1 -#define CL_KHR_EXTERNAL_SEMAPHORE_OPAQUE_FD "cl_khr_external_semaphore_opaque_fd" +#define CL_KHR_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXTENSION_NAME \ + "cl_khr_external_semaphore_opaque_fd" /* cl_external_semaphore_handle_type_khr */ #define CL_SEMAPHORE_HANDLE_OPAQUE_FD_KHR 0x2055 @@ -654,7 +688,8 @@ clGetSemaphoreHandleForTypeKHR_fn)( * cl_khr_external_semaphore_sync_fd ***************************************************************/ #define cl_khr_external_semaphore_sync_fd 1 -#define CL_KHR_EXTERNAL_SEMAPHORE_SYNC_FD "cl_khr_external_semaphore_sync_fd" +#define CL_KHR_EXTERNAL_SEMAPHORE_SYNC_FD_EXTENSION_NAME \ + "cl_khr_external_semaphore_sync_fd" /* cl_external_semaphore_handle_type_khr */ #define CL_SEMAPHORE_HANDLE_SYNC_FD_KHR 0x2058 @@ -663,7 +698,8 @@ clGetSemaphoreHandleForTypeKHR_fn)( * cl_khr_external_semaphore_win32 ***************************************************************/ #define cl_khr_external_semaphore_win32 1 -#define CL_KHR_EXTERNAL_SEMAPHORE_WIN32 "cl_khr_external_semaphore_win32" +#define CL_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME \ + "cl_khr_external_semaphore_win32" /* cl_external_semaphore_handle_type_khr */ #define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR 0x2056 @@ -673,7 +709,8 @@ clGetSemaphoreHandleForTypeKHR_fn)( * cl_khr_fp16 ***************************************************************/ #define cl_khr_fp16 1 -#define CL_KHR_FP16 "cl_khr_fp16" +#define CL_KHR_FP16_EXTENSION_NAME \ + "cl_khr_fp16" /* cl_device_info */ #define CL_DEVICE_HALF_FP_CONFIG 0x1033 @@ -682,18 +719,21 @@ clGetSemaphoreHandleForTypeKHR_fn)( * cl_khr_fp64 ***************************************************************/ #define cl_khr_fp64 1 -#define CL_KHR_FP64 "cl_khr_fp64" +#define CL_KHR_FP64_EXTENSION_NAME \ + "cl_khr_fp64" #if !defined(CL_VERSION_1_2) /* cl_device_info - defined in CL.h for OpenCL 1.2 and newer */ #define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 -#endif + +#endif /* !defined(CL_VERSION_1_2) */ /*************************************************************** * cl_khr_icd ***************************************************************/ #define cl_khr_icd 1 -#define CL_KHR_ICD "cl_khr_icd" +#define CL_KHR_ICD_EXTENSION_NAME \ + "cl_khr_icd" /* cl_platform_info */ #define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 @@ -702,23 +742,28 @@ clGetSemaphoreHandleForTypeKHR_fn)( #define CL_PLATFORM_NOT_FOUND_KHR -1001 -extern CL_API_ENTRY cl_int CL_API_CALL -clIcdGetPlatformIDsKHR( +typedef cl_int (CL_API_CALL * +clIcdGetPlatformIDsKHR_fn)( cl_uint num_entries, cl_platform_id* platforms, cl_uint* num_platforms) ; -typedef cl_int (CL_API_CALL * -clIcdGetPlatformIDsKHR_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clIcdGetPlatformIDsKHR( cl_uint num_entries, cl_platform_id* platforms, cl_uint* num_platforms) ; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_il_program ***************************************************************/ #define cl_khr_il_program 1 -#define CL_KHR_IL_PROGRAM "cl_khr_il_program" +#define CL_KHR_IL_PROGRAM_EXTENSION_NAME \ + "cl_khr_il_program" /* cl_device_info */ #define CL_DEVICE_IL_VERSION_KHR 0x105B @@ -727,25 +772,30 @@ clIcdGetPlatformIDsKHR_fn)( #define CL_PROGRAM_IL_KHR 0x1169 -extern CL_API_ENTRY cl_program CL_API_CALL -clCreateProgramWithILKHR( +typedef cl_program (CL_API_CALL * +clCreateProgramWithILKHR_fn)( cl_context context, const void* il, size_t length, cl_int* errcode_ret) ; -typedef cl_program (CL_API_CALL * -clCreateProgramWithILKHR_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_program CL_API_CALL +clCreateProgramWithILKHR( cl_context context, const void* il, size_t length, cl_int* errcode_ret) ; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_image2D_from_buffer ***************************************************************/ #define cl_khr_image2D_from_buffer 1 -#define CL_KHR_IMAGE2D_FROM_BUFFER "cl_khr_image2D_from_buffer" +#define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \ + "cl_khr_image2D_from_buffer" /* cl_device_info */ #define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A @@ -755,7 +805,8 @@ clCreateProgramWithILKHR_fn)( * cl_khr_initialize_memory ***************************************************************/ #define cl_khr_initialize_memory 1 -#define CL_KHR_INITIALIZE_MEMORY "cl_khr_initialize_memory" +#define CL_KHR_INITIALIZE_MEMORY_EXTENSION_NAME \ + "cl_khr_initialize_memory" /* Interop tokens */ #define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 @@ -764,7 +815,8 @@ clCreateProgramWithILKHR_fn)( * cl_khr_integer_dot_product ***************************************************************/ #define cl_khr_integer_dot_product 1 -#define CL_KHR_INTEGER_DOT_PRODUCT "cl_khr_integer_dot_product" +#define CL_KHR_INTEGER_DOT_PRODUCT_EXTENSION_NAME \ + "cl_khr_integer_dot_product" typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr; typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { @@ -789,7 +841,8 @@ typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { * cl_khr_mipmap_image ***************************************************************/ #define cl_khr_mipmap_image 1 -#define CL_KHR_MIPMAP_IMAGE "cl_khr_mipmap_image" +#define CL_KHR_MIPMAP_IMAGE_EXTENSION_NAME \ + "cl_khr_mipmap_image" /* cl_sampler_properties */ #define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 @@ -800,7 +853,8 @@ typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { * cl_khr_pci_bus_info ***************************************************************/ #define cl_khr_pci_bus_info 1 -#define CL_KHR_PCI_BUS_INFO "cl_khr_pci_bus_info" +#define CL_KHR_PCI_BUS_INFO_EXTENSION_NAME \ + "cl_khr_pci_bus_info" typedef struct _cl_device_pci_bus_info_khr { cl_uint pci_domain; @@ -816,7 +870,8 @@ typedef struct _cl_device_pci_bus_info_khr { * cl_khr_priority_hints ***************************************************************/ #define cl_khr_priority_hints 1 -#define CL_KHR_PRIORITY_HINTS "cl_khr_priority_hints" +#define CL_KHR_PRIORITY_HINTS_EXTENSION_NAME \ + "cl_khr_priority_hints" /* To be used by clGetEventInfo */ typedef cl_uint cl_queue_priority_khr; @@ -833,7 +888,8 @@ typedef cl_uint cl_queue_priority_khr; * cl_khr_semaphore ***************************************************************/ #define cl_khr_semaphore 1 -#define CL_KHR_SEMAPHORE "cl_khr_semaphore" +#define CL_KHR_SEMAPHORE_EXTENSION_NAME \ + "cl_khr_semaphore" /* type cl_semaphore_khr */ typedef cl_properties cl_semaphore_properties_khr; @@ -869,20 +925,14 @@ typedef cl_ulong cl_semaphore_payload_khr; #define CL_INVALID_SEMAPHORE_KHR -1142 -extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL -clCreateSemaphoreWithPropertiesKHR( - cl_context context, - const cl_semaphore_properties_khr* sema_props, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - typedef cl_semaphore_khr (CL_API_CALL * clCreateSemaphoreWithPropertiesKHR_fn)( cl_context context, const cl_semaphore_properties_khr* sema_props, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueWaitSemaphoresKHR( +typedef cl_int (CL_API_CALL * +clEnqueueWaitSemaphoresKHR_fn)( cl_command_queue command_queue, cl_uint num_sema_objects, const cl_semaphore_khr* sema_objects, @@ -891,8 +941,42 @@ clEnqueueWaitSemaphoresKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueWaitSemaphoresKHR_fn)( +typedef cl_int (CL_API_CALL * +clEnqueueSignalSemaphoresKHR_fn)( + cl_command_queue command_queue, + cl_uint num_sema_objects, + const cl_semaphore_khr* sema_objects, + const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clGetSemaphoreInfoKHR_fn)( + cl_semaphore_khr sema_object, + cl_semaphore_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clReleaseSemaphoreKHR_fn)( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clRetainSemaphoreKHR_fn)( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL +clCreateSemaphoreWithPropertiesKHR( + cl_context context, + const cl_semaphore_properties_khr* sema_props, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWaitSemaphoresKHR( cl_command_queue command_queue, cl_uint num_sema_objects, const cl_semaphore_khr* sema_objects, @@ -911,16 +995,6 @@ clEnqueueSignalSemaphoresKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueSignalSemaphoresKHR_fn)( - cl_command_queue command_queue, - cl_uint num_sema_objects, - const cl_semaphore_khr* sema_objects, - const cl_semaphore_payload_khr* sema_payload_list, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - extern CL_API_ENTRY cl_int CL_API_CALL clGetSemaphoreInfoKHR( cl_semaphore_khr sema_object, @@ -929,35 +1003,22 @@ clGetSemaphoreInfoKHR( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clGetSemaphoreInfoKHR_fn)( - cl_semaphore_khr sema_object, - cl_semaphore_info_khr param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - extern CL_API_ENTRY cl_int CL_API_CALL clReleaseSemaphoreKHR( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clReleaseSemaphoreKHR_fn)( - cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; - extern CL_API_ENTRY cl_int CL_API_CALL clRetainSemaphoreKHR( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clRetainSemaphoreKHR_fn)( - cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** * cl_khr_spir ***************************************************************/ #define cl_khr_spir 1 -#define CL_KHR_SPIR "cl_khr_spir" +#define CL_KHR_SPIR_EXTENSION_NAME \ + "cl_khr_spir" /* cl_device_info */ #define CL_DEVICE_SPIR_VERSIONS 0x40E0 @@ -969,7 +1030,8 @@ clRetainSemaphoreKHR_fn)( * cl_khr_subgroup_named_barrier ***************************************************************/ #define cl_khr_subgroup_named_barrier 1 -#define CL_KHR_SUBGROUP_NAMED_BARRIER "cl_khr_subgroup_named_barrier" +#define CL_KHR_SUBGROUP_NAMED_BARRIER_EXTENSION_NAME \ + "cl_khr_subgroup_named_barrier" /* cl_device_info */ #define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 @@ -978,20 +1040,22 @@ clRetainSemaphoreKHR_fn)( * cl_khr_subgroups ***************************************************************/ #define cl_khr_subgroups 1 -#define CL_KHR_SUBGROUPS "cl_khr_subgroups" +#define CL_KHR_SUBGROUPS_EXTENSION_NAME \ + "cl_khr_subgroups" #if !defined(CL_VERSION_2_1) /* defined in CL.h for OpenCL 2.1 and newer */ typedef cl_uint cl_kernel_sub_group_info; -#endif + +#endif /* !defined(CL_VERSION_2_1) */ /* cl_kernel_sub_group_info */ #define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 #define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSubGroupInfoKHR( +typedef cl_int (CL_API_CALL * +clGetKernelSubGroupInfoKHR_fn)( cl_kernel in_kernel, cl_device_id in_device, cl_kernel_sub_group_info param_name, @@ -1001,8 +1065,10 @@ clGetKernelSubGroupInfoKHR( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; -typedef cl_int (CL_API_CALL * -clGetKernelSubGroupInfoKHR_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSubGroupInfoKHR( cl_kernel in_kernel, cl_device_id in_device, cl_kernel_sub_group_info param_name, @@ -1012,15 +1078,18 @@ clGetKernelSubGroupInfoKHR_fn)( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_suggested_local_work_size ***************************************************************/ #define cl_khr_suggested_local_work_size 1 -#define CL_KHR_SUGGESTED_LOCAL_WORK_SIZE "cl_khr_suggested_local_work_size" +#define CL_KHR_SUGGESTED_LOCAL_WORK_SIZE_EXTENSION_NAME \ + "cl_khr_suggested_local_work_size" -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSuggestedLocalWorkSizeKHR( +typedef cl_int (CL_API_CALL * +clGetKernelSuggestedLocalWorkSizeKHR_fn)( cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, @@ -1028,8 +1097,10 @@ clGetKernelSuggestedLocalWorkSizeKHR( const size_t* global_work_size, size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; -typedef cl_int (CL_API_CALL * -clGetKernelSuggestedLocalWorkSizeKHR_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSuggestedLocalWorkSizeKHR( cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, @@ -1037,11 +1108,14 @@ clGetKernelSuggestedLocalWorkSizeKHR_fn)( const size_t* global_work_size, size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_terminate_context ***************************************************************/ #define cl_khr_terminate_context 1 -#define CL_KHR_TERMINATE_CONTEXT "cl_khr_terminate_context" +#define CL_KHR_TERMINATE_CONTEXT_EXTENSION_NAME \ + "cl_khr_terminate_context" /* cl_device_info */ #define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 @@ -1053,19 +1127,24 @@ clGetKernelSuggestedLocalWorkSizeKHR_fn)( #define CL_CONTEXT_TERMINATED_KHR -1121 +typedef cl_int (CL_API_CALL * +clTerminateContextKHR_fn)( + cl_context context) CL_API_SUFFIX__VERSION_1_2; + +#ifndef CL_NO_PROTOTYPES + extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR( cl_context context) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clTerminateContextKHR_fn)( - cl_context context) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** * cl_khr_throttle_hints ***************************************************************/ #define cl_khr_throttle_hints 1 -#define CL_KHR_THROTTLE_HINTS "cl_khr_throttle_hints" +#define CL_KHR_THROTTLE_HINTS_EXTENSION_NAME \ + "cl_khr_throttle_hints" /* To be used by clGetEventInfo */ typedef cl_uint cl_queue_throttle_khr; @@ -1082,7 +1161,8 @@ typedef cl_uint cl_queue_throttle_khr; * cl_ext_cxx_for_opencl ***************************************************************/ #define cl_ext_cxx_for_opencl 1 -#define CL_EXT_CXX_FOR_OPENCL "cl_ext_cxx_for_opencl" +#define CL_EXT_CXX_FOR_OPENCL_EXTENSION_NAME \ + "cl_ext_cxx_for_opencl" /* cl_device_info */ #define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 @@ -1091,7 +1171,8 @@ typedef cl_uint cl_queue_throttle_khr; * cl_ext_device_fission ***************************************************************/ #define cl_ext_device_fission 1 -#define CL_EXT_DEVICE_FISSION "cl_ext_device_fission" +#define CL_EXT_DEVICE_FISSION_EXTENSION_NAME \ + "cl_ext_device_fission" typedef cl_ulong cl_device_partition_property_ext; @@ -1127,43 +1208,48 @@ typedef cl_ulong cl_device_partition_property_ext; #define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext)0 - 1) -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseDeviceEXT( - cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - typedef cl_int (CL_API_CALL * clReleaseDeviceEXT_fn)( cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainDeviceEXT( - cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - typedef cl_int (CL_API_CALL * clRetainDeviceEXT_fn)( cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -extern CL_API_ENTRY cl_int CL_API_CALL -clCreateSubDevicesEXT( +typedef cl_int (CL_API_CALL * +clCreateSubDevicesEXT_fn)( cl_device_id in_device, const cl_device_partition_property_ext* properties, cl_uint num_entries, cl_device_id* out_devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -typedef cl_int (CL_API_CALL * -clCreateSubDevicesEXT_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseDeviceEXT( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainDeviceEXT( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCreateSubDevicesEXT( cl_device_id in_device, const cl_device_partition_property_ext* properties, cl_uint num_entries, cl_device_id* out_devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_ext_float_atomics ***************************************************************/ #define cl_ext_float_atomics 1 -#define CL_EXT_FLOAT_ATOMICS "cl_ext_float_atomics" +#define CL_EXT_FLOAT_ATOMICS_EXTENSION_NAME \ + "cl_ext_float_atomics" typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; @@ -1184,7 +1270,8 @@ typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; * cl_ext_migrate_memobject ***************************************************************/ #define cl_ext_migrate_memobject 1 -#define CL_EXT_MIGRATE_MEMOBJECT "cl_ext_migrate_memobject" +#define CL_EXT_MIGRATE_MEMOBJECT_EXTENSION_NAME \ + "cl_ext_migrate_memobject" typedef cl_bitfield cl_mem_migration_flags_ext; @@ -1195,8 +1282,8 @@ typedef cl_bitfield cl_mem_migration_flags_ext; #define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemObjectEXT( +typedef cl_int (CL_API_CALL * +clEnqueueMigrateMemObjectEXT_fn)( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -1205,8 +1292,10 @@ clEnqueueMigrateMemObjectEXT( const cl_event* event_wait_list, cl_event* event) ; -typedef cl_int (CL_API_CALL * -clEnqueueMigrateMemObjectEXT_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMigrateMemObjectEXT( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, @@ -1215,79 +1304,92 @@ clEnqueueMigrateMemObjectEXT_fn)( const cl_event* event_wait_list, cl_event* event) ; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_APPLE_ContextLoggingFunctions ***************************************************************/ #define cl_APPLE_ContextLoggingFunctions 1 -#define CL_APPLE_CONTEXTLOGGINGFUNCTIONS "cl_APPLE_ContextLoggingFunctions" +#define CL_APPLE_CONTEXTLOGGINGFUNCTIONS_EXTENSION_NAME \ + "cl_APPLE_ContextLoggingFunctions" -extern CL_API_ENTRY void CL_API_CALL -clLogMessagesToSystemLogAPPLE( +typedef void (CL_API_CALL * +clLogMessagesToSystemLogAPPLE_fn)( const char* errstr, const void* private_info, size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; typedef void (CL_API_CALL * -clLogMessagesToSystemLogAPPLE_fn)( +clLogMessagesToStdoutAPPLE_fn)( const char* errstr, const void* private_info, size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY void CL_API_CALL -clLogMessagesToStdoutAPPLE( +typedef void (CL_API_CALL * +clLogMessagesToStderrAPPLE_fn)( const char* errstr, const void* private_info, size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -typedef void (CL_API_CALL * -clLogMessagesToStdoutAPPLE_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToSystemLogAPPLE( const char* errstr, const void* private_info, size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY void CL_API_CALL -clLogMessagesToStderrAPPLE( +clLogMessagesToStdoutAPPLE( const char* errstr, const void* private_info, size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -typedef void (CL_API_CALL * -clLogMessagesToStderrAPPLE_fn)( +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToStderrAPPLE( const char* errstr, const void* private_info, size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_APPLE_SetMemObjectDestructor ***************************************************************/ #define cl_APPLE_SetMemObjectDestructor 1 -#define CL_APPLE_SETMEMOBJECTDESTRUCTOR "cl_APPLE_SetMemObjectDestructor" +#define CL_APPLE_SETMEMOBJECTDESTRUCTOR_EXTENSION_NAME \ + "cl_APPLE_SetMemObjectDestructor" -extern CL_API_ENTRY cl_int CL_API_CALL -clSetMemObjectDestructorAPPLE( +typedef cl_int (CL_API_CALL * +clSetMemObjectDestructorAPPLE_fn)( cl_mem memobj, void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_0; -typedef cl_int (CL_API_CALL * -clSetMemObjectDestructorAPPLE_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetMemObjectDestructorAPPLE( cl_mem memobj, void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_0; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_amd_device_attribute_query ***************************************************************/ #define cl_amd_device_attribute_query 1 -#define CL_AMD_DEVICE_ATTRIBUTE_QUERY "cl_amd_device_attribute_query" +#define CL_AMD_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ + "cl_amd_device_attribute_query" /* cl_device_info */ #define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 @@ -1316,7 +1418,8 @@ clSetMemObjectDestructorAPPLE_fn)( * cl_arm_controlled_kernel_termination ***************************************************************/ #define cl_arm_controlled_kernel_termination 1 -#define CL_ARM_CONTROLLED_KERNEL_TERMINATION "cl_arm_controlled_kernel_termination" +#define CL_ARM_CONTROLLED_KERNEL_TERMINATION_EXTENSION_NAME \ + "cl_arm_controlled_kernel_termination" /* Types */ typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; @@ -1345,7 +1448,8 @@ typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; * cl_arm_get_core_id ***************************************************************/ #define cl_arm_get_core_id 1 -#define CL_ARM_GET_CORE_ID "cl_arm_get_core_id" +#define CL_ARM_GET_CORE_ID_EXTENSION_NAME \ + "cl_arm_get_core_id" /* cl_device_info */ #define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF @@ -1354,7 +1458,8 @@ typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; * cl_arm_import_memory ***************************************************************/ #define cl_arm_import_memory 1 -#define CL_ARM_IMPORT_MEMORY "cl_arm_import_memory" +#define CL_ARM_IMPORT_MEMORY_EXTENSION_NAME \ + "cl_arm_import_memory" typedef intptr_t cl_import_properties_arm; @@ -1370,8 +1475,8 @@ typedef intptr_t cl_import_properties_arm; #define CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM 0x41F0 -extern CL_API_ENTRY cl_mem CL_API_CALL -clImportMemoryARM( +typedef cl_mem (CL_API_CALL * +clImportMemoryARM_fn)( cl_context context, cl_mem_flags flags, const cl_import_properties_arm* properties, @@ -1379,8 +1484,10 @@ clImportMemoryARM( size_t size, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef cl_mem (CL_API_CALL * -clImportMemoryARM_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_mem CL_API_CALL +clImportMemoryARM( cl_context context, cl_mem_flags flags, const cl_import_properties_arm* properties, @@ -1388,11 +1495,14 @@ clImportMemoryARM_fn)( size_t size, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_arm_printf ***************************************************************/ #define cl_arm_printf 1 -#define CL_ARM_PRINTF "cl_arm_printf" +#define CL_ARM_PRINTF_EXTENSION_NAME \ + "cl_arm_printf" /* cl_context_properties */ #define CL_PRINTF_CALLBACK_ARM 0x40B0 @@ -1402,7 +1512,8 @@ clImportMemoryARM_fn)( * cl_arm_protected_memory_allocation ***************************************************************/ #define cl_arm_protected_memory_allocation 1 -#define CL_ARM_PROTECTED_MEMORY_ALLOCATION "cl_arm_protected_memory_allocation" +#define CL_ARM_PROTECTED_MEMORY_ALLOCATION_EXTENSION_NAME \ + "cl_arm_protected_memory_allocation" #define CL_MEM_PROTECTED_ALLOC_ARM (1 << 36) @@ -1410,7 +1521,8 @@ clImportMemoryARM_fn)( * cl_arm_scheduling_controls ***************************************************************/ #define cl_arm_scheduling_controls 1 -#define CL_ARM_SCHEDULING_CONTROLS "cl_arm_scheduling_controls" +#define CL_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME \ + "cl_arm_scheduling_controls" /* Types */ typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; @@ -1446,7 +1558,8 @@ typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; * cl_arm_shared_virtual_memory ***************************************************************/ #define cl_arm_shared_virtual_memory 1 -#define CL_ARM_SHARED_VIRTUAL_MEMORY "cl_arm_shared_virtual_memory" +#define CL_ARM_SHARED_VIRTUAL_MEMORY_EXTENSION_NAME \ + "cl_arm_shared_virtual_memory" typedef cl_bitfield cl_svm_mem_flags_arm; typedef cl_uint cl_kernel_exec_info_arm; @@ -1480,13 +1593,6 @@ typedef cl_bitfield cl_device_svm_capabilities_arm; #define CL_MEM_SVM_ATOMICS_ARM (1 << 11) -extern CL_API_ENTRY void* CL_API_CALL -clSVMAllocARM( - cl_context context, - cl_svm_mem_flags_arm flags, - size_t size, - cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; - typedef void* (CL_API_CALL * clSVMAllocARM_fn)( cl_context context, @@ -1494,27 +1600,11 @@ clSVMAllocARM_fn)( size_t size, cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY void CL_API_CALL -clSVMFreeARM( - cl_context context, - void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; - typedef void (CL_API_CALL * clSVMFreeARM_fn)( cl_context context, void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMFreeARM( - cl_command_queue command_queue, - cl_uint num_svm_pointers, - void* svm_pointers[], - void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), - void* user_data, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - typedef cl_int (CL_API_CALL * clEnqueueSVMFreeARM_fn)( cl_command_queue command_queue, @@ -1526,8 +1616,8 @@ clEnqueueSVMFreeARM_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemcpyARM( +typedef cl_int (CL_API_CALL * +clEnqueueSVMMemcpyARM_fn)( cl_command_queue command_queue, cl_bool blocking_copy, void* dst_ptr, @@ -1538,70 +1628,108 @@ clEnqueueSVMMemcpyARM( cl_event* event) CL_API_SUFFIX__VERSION_1_2; typedef cl_int (CL_API_CALL * -clEnqueueSVMMemcpyARM_fn)( +clEnqueueSVMMemFillARM_fn)( cl_command_queue command_queue, - cl_bool blocking_copy, - void* dst_ptr, - const void* src_ptr, + void* svm_ptr, + const void* pattern, + size_t pattern_size, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemFillARM( +typedef cl_int (CL_API_CALL * +clEnqueueSVMMapARM_fn)( cl_command_queue command_queue, + cl_bool blocking_map, + cl_map_flags flags, void* svm_ptr, - const void* pattern, - size_t pattern_size, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; typedef cl_int (CL_API_CALL * -clEnqueueSVMMemFillARM_fn)( +clEnqueueSVMUnmapARM_fn)( cl_command_queue command_queue, void* svm_ptr, - const void* pattern, - size_t pattern_size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clSetKernelArgSVMPointerARM_fn)( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clSetKernelExecInfoARM_fn)( + cl_kernel kernel, + cl_kernel_exec_info_arm param_name, + size_t param_value_size, + const void* param_value) CL_API_SUFFIX__VERSION_1_2; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY void* CL_API_CALL +clSVMAllocARM( + cl_context context, + cl_svm_mem_flags_arm flags, size_t size, + cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY void CL_API_CALL +clSVMFreeARM( + cl_context context, + void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMFreeARM( + cl_command_queue command_queue, + cl_uint num_svm_pointers, + void* svm_pointers[], + void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), + void* user_data, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMapARM( +clEnqueueSVMMemcpyARM( cl_command_queue command_queue, - cl_bool blocking_map, - cl_map_flags flags, - void* svm_ptr, + cl_bool blocking_copy, + void* dst_ptr, + const void* src_ptr, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueSVMMapARM_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMemFillARM( cl_command_queue command_queue, - cl_bool blocking_map, - cl_map_flags flags, void* svm_ptr, + const void* pattern, + size_t pattern_size, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMUnmapARM( +clEnqueueSVMMapARM( cl_command_queue command_queue, + cl_bool blocking_map, + cl_map_flags flags, void* svm_ptr, + size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueSVMUnmapARM_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMUnmapARM( cl_command_queue command_queue, void* svm_ptr, cl_uint num_events_in_wait_list, @@ -1614,12 +1742,6 @@ clSetKernelArgSVMPointerARM( cl_uint arg_index, const void* arg_value) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clSetKernelArgSVMPointerARM_fn)( - cl_kernel kernel, - cl_uint arg_index, - const void* arg_value) CL_API_SUFFIX__VERSION_1_2; - extern CL_API_ENTRY cl_int CL_API_CALL clSetKernelExecInfoARM( cl_kernel kernel, @@ -1627,18 +1749,14 @@ clSetKernelExecInfoARM( size_t param_value_size, const void* param_value) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clSetKernelExecInfoARM_fn)( - cl_kernel kernel, - cl_kernel_exec_info_arm param_name, - size_t param_value_size, - const void* param_value) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** * cl_img_cached_allocations ***************************************************************/ #define cl_img_cached_allocations 1 -#define CL_IMG_CACHED_ALLOCATIONS "cl_img_cached_allocations" +#define CL_IMG_CACHED_ALLOCATIONS_EXTENSION_NAME \ + "cl_img_cached_allocations" /* cl_mem_flags */ #define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) @@ -1648,7 +1766,8 @@ clSetKernelExecInfoARM_fn)( * cl_img_generate_mipmap ***************************************************************/ #define cl_img_generate_mipmap 1 -#define CL_IMG_GENERATE_MIPMAP "cl_img_generate_mipmap" +#define CL_IMG_GENERATE_MIPMAP_EXTENSION_NAME \ + "cl_img_generate_mipmap" typedef cl_uint cl_mipmap_filter_mode_img; @@ -1660,8 +1779,8 @@ typedef cl_uint cl_mipmap_filter_mode_img; #define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueGenerateMipmapIMG( +typedef cl_int (CL_API_CALL * +clEnqueueGenerateMipmapIMG_fn)( cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image, @@ -1672,8 +1791,10 @@ clEnqueueGenerateMipmapIMG( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueGenerateMipmapIMG_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueGenerateMipmapIMG( cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image, @@ -1684,11 +1805,14 @@ clEnqueueGenerateMipmapIMG_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_img_mem_properties ***************************************************************/ #define cl_img_mem_properties 1 -#define CL_IMG_MEM_PROPERTIES "cl_img_mem_properties" +#define CL_IMG_MEM_PROPERTIES_EXTENSION_NAME \ + "cl_img_mem_properties" /* cl_mem_properties */ #define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 @@ -1700,7 +1824,8 @@ clEnqueueGenerateMipmapIMG_fn)( * cl_img_use_gralloc_ptr ***************************************************************/ #define cl_img_use_gralloc_ptr 1 -#define CL_IMG_USE_GRALLOC_PTR "cl_img_use_gralloc_ptr" +#define CL_IMG_USE_GRALLOC_PTR_EXTENSION_NAME \ + "cl_img_use_gralloc_ptr" /* Error codes */ #define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 @@ -1714,8 +1839,8 @@ clEnqueueGenerateMipmapIMG_fn)( #define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireGrallocObjectsIMG( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireGrallocObjectsIMG_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -1724,7 +1849,7 @@ clEnqueueAcquireGrallocObjectsIMG( cl_event* event) CL_API_SUFFIX__VERSION_1_2; typedef cl_int (CL_API_CALL * -clEnqueueAcquireGrallocObjectsIMG_fn)( +clEnqueueReleaseGrallocObjectsIMG_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -1732,8 +1857,10 @@ clEnqueueAcquireGrallocObjectsIMG_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +#ifndef CL_NO_PROTOTYPES + extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseGrallocObjectsIMG( +clEnqueueAcquireGrallocObjectsIMG( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -1741,8 +1868,8 @@ clEnqueueReleaseGrallocObjectsIMG( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseGrallocObjectsIMG_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseGrallocObjectsIMG( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -1750,11 +1877,14 @@ clEnqueueReleaseGrallocObjectsIMG_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_img_yuv_image ***************************************************************/ #define cl_img_yuv_image 1 -#define CL_IMG_YUV_IMAGE "cl_img_yuv_image" +#define CL_IMG_YUV_IMAGE_EXTENSION_NAME \ + "cl_img_yuv_image" /* cl_channel_order */ #define CL_NV21_IMG 0x40D0 @@ -1764,7 +1894,8 @@ clEnqueueReleaseGrallocObjectsIMG_fn)( * cl_intel_accelerator ***************************************************************/ #define cl_intel_accelerator 1 -#define CL_INTEL_ACCELERATOR "cl_intel_accelerator" +#define CL_INTEL_ACCELERATOR_EXTENSION_NAME \ + "cl_intel_accelerator" typedef struct _cl_accelerator_intel* cl_accelerator_intel; typedef cl_uint cl_accelerator_type_intel; @@ -1783,14 +1914,6 @@ typedef cl_uint cl_accelerator_info_intel; #define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 -extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL -clCreateAcceleratorINTEL( - cl_context context, - cl_accelerator_type_intel accelerator_type, - size_t descriptor_size, - const void* descriptor, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - typedef cl_accelerator_intel (CL_API_CALL * clCreateAcceleratorINTEL_fn)( cl_context context, @@ -1799,8 +1922,8 @@ clCreateAcceleratorINTEL_fn)( const void* descriptor, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clGetAcceleratorInfoINTEL( +typedef cl_int (CL_API_CALL * +clGetAcceleratorInfoINTEL_fn)( cl_accelerator_intel accelerator, cl_accelerator_info_intel param_name, size_t param_value_size, @@ -1808,7 +1931,25 @@ clGetAcceleratorInfoINTEL( size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; typedef cl_int (CL_API_CALL * -clGetAcceleratorInfoINTEL_fn)( +clRetainAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clReleaseAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL +clCreateAcceleratorINTEL( + cl_context context, + cl_accelerator_type_intel accelerator_type, + size_t descriptor_size, + const void* descriptor, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetAcceleratorInfoINTEL( cl_accelerator_intel accelerator, cl_accelerator_info_intel param_name, size_t param_value_size, @@ -1819,23 +1960,18 @@ extern CL_API_ENTRY cl_int CL_API_CALL clRetainAcceleratorINTEL( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clRetainAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; - extern CL_API_ENTRY cl_int CL_API_CALL clReleaseAcceleratorINTEL( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clReleaseAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** * cl_intel_advanced_motion_estimation ***************************************************************/ #define cl_intel_advanced_motion_estimation 1 -#define CL_INTEL_ADVANCED_MOTION_ESTIMATION "cl_intel_advanced_motion_estimation" +#define CL_INTEL_ADVANCED_MOTION_ESTIMATION_EXTENSION_NAME \ + "cl_intel_advanced_motion_estimation" /* cl_device_info */ #define CL_DEVICE_ME_VERSION_INTEL 0x407E @@ -1890,7 +2026,8 @@ clReleaseAcceleratorINTEL_fn)( * cl_intel_command_queue_families ***************************************************************/ #define cl_intel_command_queue_families 1 -#define CL_INTEL_COMMAND_QUEUE_FAMILIES "cl_intel_command_queue_families" +#define CL_INTEL_COMMAND_QUEUE_FAMILIES_EXTENSION_NAME \ + "cl_intel_command_queue_families" typedef cl_bitfield cl_command_queue_capabilities_intel; @@ -1933,13 +2070,14 @@ typedef struct _cl_queue_family_properties_intel { * cl_intel_create_buffer_with_properties ***************************************************************/ #define cl_intel_create_buffer_with_properties 1 -#define CL_INTEL_CREATE_BUFFER_WITH_PROPERTIES "cl_intel_create_buffer_with_properties" +#define CL_INTEL_CREATE_BUFFER_WITH_PROPERTIES_EXTENSION_NAME \ + "cl_intel_create_buffer_with_properties" typedef cl_properties cl_mem_properties_intel; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateBufferWithPropertiesINTEL( +typedef cl_mem (CL_API_CALL * +clCreateBufferWithPropertiesINTEL_fn)( cl_context context, const cl_mem_properties_intel* properties, cl_mem_flags flags, @@ -1947,8 +2085,10 @@ clCreateBufferWithPropertiesINTEL( void* host_ptr, cl_int* errcode_ret) ; -typedef cl_mem (CL_API_CALL * -clCreateBufferWithPropertiesINTEL_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateBufferWithPropertiesINTEL( cl_context context, const cl_mem_properties_intel* properties, cl_mem_flags flags, @@ -1956,11 +2096,14 @@ clCreateBufferWithPropertiesINTEL_fn)( void* host_ptr, cl_int* errcode_ret) ; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_intel_device_attribute_query ***************************************************************/ #define cl_intel_device_attribute_query 1 -#define CL_INTEL_DEVICE_ATTRIBUTE_QUERY "cl_intel_device_attribute_query" +#define CL_INTEL_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ + "cl_intel_device_attribute_query" typedef cl_bitfield cl_device_feature_capabilities_intel; @@ -1981,7 +2124,8 @@ typedef cl_bitfield cl_device_feature_capabilities_intel; * cl_intel_device_partition_by_names ***************************************************************/ #define cl_intel_device_partition_by_names 1 -#define CL_INTEL_DEVICE_PARTITION_BY_NAMES "cl_intel_device_partition_by_names" +#define CL_INTEL_DEVICE_PARTITION_BY_NAMES_EXTENSION_NAME \ + "cl_intel_device_partition_by_names" #define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 #define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 @@ -1990,7 +2134,8 @@ typedef cl_bitfield cl_device_feature_capabilities_intel; * cl_intel_device_side_avc_motion_estimation ***************************************************************/ #define cl_intel_device_side_avc_motion_estimation 1 -#define CL_INTEL_DEVICE_SIDE_AVC_MOTION_ESTIMATION "cl_intel_device_side_avc_motion_estimation" +#define CL_INTEL_DEVICE_SIDE_AVC_MOTION_ESTIMATION_EXTENSION_NAME \ + "cl_intel_device_side_avc_motion_estimation" /* cl_device_info */ #define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B @@ -2146,7 +2291,8 @@ typedef cl_bitfield cl_device_feature_capabilities_intel; * cl_intel_driver_diagnostics ***************************************************************/ #define cl_intel_driver_diagnostics 1 -#define CL_INTEL_DRIVER_DIAGNOSTICS "cl_intel_driver_diagnostics" +#define CL_INTEL_DRIVER_DIAGNOSTICS_EXTENSION_NAME \ + "cl_intel_driver_diagnostics" typedef cl_uint cl_diagnostics_verbose_level; @@ -2161,7 +2307,8 @@ typedef cl_uint cl_diagnostics_verbose_level; * cl_intel_egl_image_yuv ***************************************************************/ #define cl_intel_egl_image_yuv 1 -#define CL_INTEL_EGL_IMAGE_YUV "cl_intel_egl_image_yuv" +#define CL_INTEL_EGL_IMAGE_YUV_EXTENSION_NAME \ + "cl_intel_egl_image_yuv" /* cl_egl_image_properties_khr */ #define CL_EGL_YUV_PLANE_INTEL 0x4107 @@ -2170,7 +2317,8 @@ typedef cl_uint cl_diagnostics_verbose_level; * cl_intel_exec_by_local_thread ***************************************************************/ #define cl_intel_exec_by_local_thread 1 -#define CL_INTEL_EXEC_BY_LOCAL_THREAD "cl_intel_exec_by_local_thread" +#define CL_INTEL_EXEC_BY_LOCAL_THREAD_EXTENSION_NAME \ + "cl_intel_exec_by_local_thread" /* cl_command_queue_properties - bitfield */ #define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (1 << 31) @@ -2179,7 +2327,8 @@ typedef cl_uint cl_diagnostics_verbose_level; * cl_intel_mem_alloc_buffer_location ***************************************************************/ #define cl_intel_mem_alloc_buffer_location 1 -#define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION "cl_intel_mem_alloc_buffer_location" +#define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION_EXTENSION_NAME \ + "cl_intel_mem_alloc_buffer_location" /* cl_mem_properties_intel */ #define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E @@ -2191,7 +2340,8 @@ typedef cl_uint cl_diagnostics_verbose_level; * cl_intel_mem_channel_property ***************************************************************/ #define cl_intel_mem_channel_property 1 -#define CL_INTEL_MEM_CHANNEL_PROPERTY "cl_intel_mem_channel_property" +#define CL_INTEL_MEM_CHANNEL_PROPERTY_EXTENSION_NAME \ + "cl_intel_mem_channel_property" /* cl_mem_properties_intel */ #define CL_MEM_CHANNEL_INTEL 0x4213 @@ -2200,7 +2350,8 @@ typedef cl_uint cl_diagnostics_verbose_level; * cl_intel_mem_force_host_memory ***************************************************************/ #define cl_intel_mem_force_host_memory 1 -#define CL_INTEL_MEM_FORCE_HOST_MEMORY "cl_intel_mem_force_host_memory" +#define CL_INTEL_MEM_FORCE_HOST_MEMORY_EXTENSION_NAME \ + "cl_intel_mem_force_host_memory" /* cl_mem_flags */ #define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) @@ -2209,7 +2360,8 @@ typedef cl_uint cl_diagnostics_verbose_level; * cl_intel_motion_estimation ***************************************************************/ #define cl_intel_motion_estimation 1 -#define CL_INTEL_MOTION_ESTIMATION "cl_intel_motion_estimation" +#define CL_INTEL_MOTION_ESTIMATION_EXTENSION_NAME \ + "cl_intel_motion_estimation" typedef struct _cl_motion_estimation_desc_intel { cl_uint mb_block_type; @@ -2244,7 +2396,8 @@ typedef struct _cl_motion_estimation_desc_intel { * cl_intel_packed_yuv ***************************************************************/ #define cl_intel_packed_yuv 1 -#define CL_INTEL_PACKED_YUV "cl_intel_packed_yuv" +#define CL_INTEL_PACKED_YUV_EXTENSION_NAME \ + "cl_intel_packed_yuv" /* cl_channel_order */ #define CL_YUYV_INTEL 0x4076 @@ -2256,7 +2409,8 @@ typedef struct _cl_motion_estimation_desc_intel { * cl_intel_planar_yuv ***************************************************************/ #define cl_intel_planar_yuv 1 -#define CL_INTEL_PLANAR_YUV "cl_intel_planar_yuv" +#define CL_INTEL_PLANAR_YUV_EXTENSION_NAME \ + "cl_intel_planar_yuv" /* cl_channel_order */ #define CL_NV12_INTEL 0x410E @@ -2273,7 +2427,8 @@ typedef struct _cl_motion_estimation_desc_intel { * cl_intel_required_subgroup_size ***************************************************************/ #define cl_intel_required_subgroup_size 1 -#define CL_INTEL_REQUIRED_SUBGROUP_SIZE "cl_intel_required_subgroup_size" +#define CL_INTEL_REQUIRED_SUBGROUP_SIZE_EXTENSION_NAME \ + "cl_intel_required_subgroup_size" /* cl_device_info */ #define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 @@ -2288,13 +2443,15 @@ typedef struct _cl_motion_estimation_desc_intel { * cl_intel_sharing_format_query ***************************************************************/ #define cl_intel_sharing_format_query 1 -#define CL_INTEL_SHARING_FORMAT_QUERY "cl_intel_sharing_format_query" +#define CL_INTEL_SHARING_FORMAT_QUERY_EXTENSION_NAME \ + "cl_intel_sharing_format_query" /*************************************************************** * cl_intel_simultaneous_sharing ***************************************************************/ #define cl_intel_simultaneous_sharing 1 -#define CL_INTEL_SIMULTANEOUS_SHARING "cl_intel_simultaneous_sharing" +#define CL_INTEL_SIMULTANEOUS_SHARING_EXTENSION_NAME \ + "cl_intel_simultaneous_sharing" /* cl_device_info */ #define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 @@ -2304,7 +2461,8 @@ typedef struct _cl_motion_estimation_desc_intel { * cl_intel_unified_shared_memory ***************************************************************/ #define cl_intel_unified_shared_memory 1 -#define CL_INTEL_UNIFIED_SHARED_MEMORY "cl_intel_unified_shared_memory" +#define CL_INTEL_UNIFIED_SHARED_MEMORY_EXTENSION_NAME \ + "cl_intel_unified_shared_memory" typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel; /* type cl_mem_properties_intel */ @@ -2359,8 +2517,8 @@ typedef cl_uint cl_mem_advice_intel; #define CL_COMMAND_MEMADVISE_INTEL 0x4207 -extern CL_API_ENTRY void* CL_API_CALL -clHostMemAllocINTEL( +typedef void* (CL_API_CALL * +clHostMemAllocINTEL_fn)( cl_context context, const cl_mem_properties_intel* properties, size_t size, @@ -2368,15 +2526,16 @@ clHostMemAllocINTEL( cl_int* errcode_ret) ; typedef void* (CL_API_CALL * -clHostMemAllocINTEL_fn)( +clDeviceMemAllocINTEL_fn)( cl_context context, + cl_device_id device, const cl_mem_properties_intel* properties, size_t size, cl_uint alignment, cl_int* errcode_ret) ; -extern CL_API_ENTRY void* CL_API_CALL -clDeviceMemAllocINTEL( +typedef void* (CL_API_CALL * +clSharedMemAllocINTEL_fn)( cl_context context, cl_device_id device, const cl_mem_properties_intel* properties, @@ -2384,17 +2543,75 @@ clDeviceMemAllocINTEL( cl_uint alignment, cl_int* errcode_ret) ; -typedef void* (CL_API_CALL * -clDeviceMemAllocINTEL_fn)( +typedef cl_int (CL_API_CALL * +clMemFreeINTEL_fn)( + cl_context context, + void* ptr) ; + +typedef cl_int (CL_API_CALL * +clMemBlockingFreeINTEL_fn)( + cl_context context, + void* ptr) ; + +typedef cl_int (CL_API_CALL * +clGetMemAllocInfoINTEL_fn)( + cl_context context, + const void* ptr, + cl_mem_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +typedef cl_int (CL_API_CALL * +clSetKernelArgMemPointerINTEL_fn)( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) ; + +typedef cl_int (CL_API_CALL * +clEnqueueMemFillINTEL_fn)( + cl_command_queue command_queue, + void* dst_ptr, + const void* pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +typedef cl_int (CL_API_CALL * +clEnqueueMemcpyINTEL_fn)( + cl_command_queue command_queue, + cl_bool blocking, + void* dst_ptr, + const void* src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +typedef cl_int (CL_API_CALL * +clEnqueueMemAdviseINTEL_fn)( + cl_command_queue command_queue, + const void* ptr, + size_t size, + cl_mem_advice_intel advice, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY void* CL_API_CALL +clHostMemAllocINTEL( cl_context context, - cl_device_id device, const cl_mem_properties_intel* properties, size_t size, cl_uint alignment, cl_int* errcode_ret) ; extern CL_API_ENTRY void* CL_API_CALL -clSharedMemAllocINTEL( +clDeviceMemAllocINTEL( cl_context context, cl_device_id device, const cl_mem_properties_intel* properties, @@ -2402,8 +2619,8 @@ clSharedMemAllocINTEL( cl_uint alignment, cl_int* errcode_ret) ; -typedef void* (CL_API_CALL * -clSharedMemAllocINTEL_fn)( +extern CL_API_ENTRY void* CL_API_CALL +clSharedMemAllocINTEL( cl_context context, cl_device_id device, const cl_mem_properties_intel* properties, @@ -2416,21 +2633,11 @@ clMemFreeINTEL( cl_context context, void* ptr) ; -typedef cl_int (CL_API_CALL * -clMemFreeINTEL_fn)( - cl_context context, - void* ptr) ; - extern CL_API_ENTRY cl_int CL_API_CALL clMemBlockingFreeINTEL( cl_context context, void* ptr) ; -typedef cl_int (CL_API_CALL * -clMemBlockingFreeINTEL_fn)( - cl_context context, - void* ptr) ; - extern CL_API_ENTRY cl_int CL_API_CALL clGetMemAllocInfoINTEL( cl_context context, @@ -2440,27 +2647,12 @@ clGetMemAllocInfoINTEL( void* param_value, size_t* param_value_size_ret) ; -typedef cl_int (CL_API_CALL * -clGetMemAllocInfoINTEL_fn)( - cl_context context, - const void* ptr, - cl_mem_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) ; - extern CL_API_ENTRY cl_int CL_API_CALL clSetKernelArgMemPointerINTEL( cl_kernel kernel, cl_uint arg_index, const void* arg_value) ; -typedef cl_int (CL_API_CALL * -clSetKernelArgMemPointerINTEL_fn)( - cl_kernel kernel, - cl_uint arg_index, - const void* arg_value) ; - extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMemFillINTEL( cl_command_queue command_queue, @@ -2472,17 +2664,6 @@ clEnqueueMemFillINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef cl_int (CL_API_CALL * -clEnqueueMemFillINTEL_fn)( - cl_command_queue command_queue, - void* dst_ptr, - const void* pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; - extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMemcpyINTEL( cl_command_queue command_queue, @@ -2494,17 +2675,6 @@ clEnqueueMemcpyINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef cl_int (CL_API_CALL * -clEnqueueMemcpyINTEL_fn)( - cl_command_queue command_queue, - cl_bool blocking, - void* dst_ptr, - const void* src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; - extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMemAdviseINTEL( cl_command_queue command_queue, @@ -2515,21 +2685,13 @@ clEnqueueMemAdviseINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef cl_int (CL_API_CALL * -clEnqueueMemAdviseINTEL_fn)( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_advice_intel advice, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; +#endif /* CL_NO_PROTOTYPES */ #if defined(CL_VERSION_1_2) /* Requires OpenCL 1.2 for cl_mem_migration_flags: */ -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemINTEL( +typedef cl_int (CL_API_CALL * +clEnqueueMigrateMemINTEL_fn)( cl_command_queue command_queue, const void* ptr, size_t size, @@ -2538,8 +2700,10 @@ clEnqueueMigrateMemINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef cl_int (CL_API_CALL * -clEnqueueMigrateMemINTEL_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMigrateMemINTEL( cl_command_queue command_queue, const void* ptr, size_t size, @@ -2547,12 +2711,15 @@ clEnqueueMigrateMemINTEL_fn)( cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) ; -#endif + +#endif /* CL_NO_PROTOTYPES */ + +#endif /* defined(CL_VERSION_1_2) */ /* deprecated, use clEnqueueMemFillINTEL instead */ -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemsetINTEL( +typedef cl_int (CL_API_CALL * +clEnqueueMemsetINTEL_fn)( cl_command_queue command_queue, void* dst_ptr, cl_int value, @@ -2561,8 +2728,10 @@ clEnqueueMemsetINTEL( const cl_event* event_wait_list, cl_event* event) ; -typedef cl_int (CL_API_CALL * -clEnqueueMemsetINTEL_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMemsetINTEL( cl_command_queue command_queue, void* dst_ptr, cl_int value, @@ -2571,11 +2740,14 @@ clEnqueueMemsetINTEL_fn)( const cl_event* event_wait_list, cl_event* event) ; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_nv_device_attribute_query ***************************************************************/ #define cl_nv_device_attribute_query 1 -#define CL_NV_DEVICE_ATTRIBUTE_QUERY "cl_nv_device_attribute_query" +#define CL_NV_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ + "cl_nv_device_attribute_query" /* cl_device_info */ #define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 @@ -2590,24 +2762,30 @@ clEnqueueMemsetINTEL_fn)( * cl_pocl_content_size ***************************************************************/ #define cl_pocl_content_size 1 -#define CL_POCL_CONTENT_SIZE "cl_pocl_content_size" +#define CL_POCL_CONTENT_SIZE_EXTENSION_NAME \ + "cl_pocl_content_size" -extern CL_API_ENTRY cl_int CL_API_CALL -clSetContentSizeBufferPoCL( +typedef cl_int (CL_API_CALL * +clSetContentSizeBufferPoCL_fn)( cl_mem buffer, cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; -typedef cl_int (CL_API_CALL * -clSetContentSizeBufferPoCL_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetContentSizeBufferPoCL( cl_mem buffer, cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_qcom_android_native_buffer_host_ptr ***************************************************************/ #define cl_qcom_android_native_buffer_host_ptr 1 -#define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR "cl_qcom_android_native_buffer_host_ptr" +#define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR_EXTENSION_NAME \ + "cl_qcom_android_native_buffer_host_ptr" typedef struct _cl_mem_ext_host_ptr { cl_uint allocation_type; @@ -2625,7 +2803,8 @@ typedef struct _cl_mem_android_native_buffer_host_ptr { * cl_qcom_ext_host_ptr ***************************************************************/ #define cl_qcom_ext_host_ptr 1 -#define CL_QCOM_EXT_HOST_PTR "cl_qcom_ext_host_ptr" +#define CL_QCOM_EXT_HOST_PTR_EXTENSION_NAME \ + "cl_qcom_ext_host_ptr" typedef cl_uint cl_image_pitch_info_qcom; /* type cl_mem_ext_host_ptr */ @@ -2648,8 +2827,8 @@ typedef cl_uint cl_image_pitch_info_qcom; #define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceImageInfoQCOM( +typedef cl_int (CL_API_CALL * +clGetDeviceImageInfoQCOM_fn)( cl_device_id device, size_t image_width, size_t image_height, @@ -2659,8 +2838,10 @@ clGetDeviceImageInfoQCOM( void* param_value, size_t* param_value_size_ret) ; -typedef cl_int (CL_API_CALL * -clGetDeviceImageInfoQCOM_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceImageInfoQCOM( cl_device_id device, size_t image_width, size_t image_height, @@ -2670,11 +2851,14 @@ clGetDeviceImageInfoQCOM_fn)( void* param_value, size_t* param_value_size_ret) ; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_qcom_ext_host_ptr_iocoherent ***************************************************************/ #define cl_qcom_ext_host_ptr_iocoherent 1 -#define CL_QCOM_EXT_HOST_PTR_IOCOHERENT "cl_qcom_ext_host_ptr_iocoherent" +#define CL_QCOM_EXT_HOST_PTR_IOCOHERENT_EXTENSION_NAME \ + "cl_qcom_ext_host_ptr_iocoherent" /* cl_uint host_cache_policy */ #define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 @@ -2683,7 +2867,8 @@ clGetDeviceImageInfoQCOM_fn)( * cl_qcom_ion_host_ptr ***************************************************************/ #define cl_qcom_ion_host_ptr 1 -#define CL_QCOM_ION_HOST_PTR "cl_qcom_ion_host_ptr" +#define CL_QCOM_ION_HOST_PTR_EXTENSION_NAME \ + "cl_qcom_ion_host_ptr" /* type cl_mem_ext_host_ptr */ typedef struct _cl_mem_ion_host_ptr { diff --git a/CL/cl_gl.h b/CL/cl_gl.h index aac12876..fed6b0ea 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -17,6 +17,10 @@ #ifndef OPENCL_CL_GL_H_ #define OPENCL_CL_GL_H_ +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + #include #ifdef __cplusplus @@ -27,23 +31,27 @@ extern "C" { * cl_khr_gl_depth_images ***************************************************************/ #define cl_khr_gl_depth_images 1 -#define CL_KHR_GL_DEPTH_IMAGES "cl_khr_gl_depth_images" +#define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_NAME \ + "cl_khr_gl_depth_images" #if !defined(CL_VERSION_1_2) /* cl_channel_order - defined in CL.h for OpenCL 1.2 and newer */ #define CL_DEPTH_STENCIL 0x10BE -#endif + +#endif /* !defined(CL_VERSION_1_2) */ #if !defined(CL_VERSION_1_2) /* cl_channel_type - defined in CL.h for OpenCL 1.2 and newer */ #define CL_UNORM_INT24 0x10DF -#endif + +#endif /* !defined(CL_VERSION_1_2) */ /*************************************************************** * cl_khr_gl_event ***************************************************************/ #define cl_khr_gl_event 1 -#define CL_KHR_GL_EVENT "cl_khr_gl_event" +#define CL_KHR_GL_EVENT_EXTENSION_NAME \ + "cl_khr_gl_event" typedef struct __GLsync * cl_GLsync; @@ -51,23 +59,28 @@ typedef struct __GLsync * cl_GLsync; #define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromGLsyncKHR( +typedef cl_event (CL_API_CALL * +clCreateEventFromGLsyncKHR_fn)( cl_context context, cl_GLsync sync, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; -typedef cl_event (CL_API_CALL * -clCreateEventFromGLsyncKHR_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateEventFromGLsyncKHR( cl_context context, cl_GLsync sync, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_gl_msaa_sharing ***************************************************************/ #define cl_khr_gl_msaa_sharing 1 -#define CL_KHR_GL_MSAA_SHARING "cl_khr_gl_msaa_sharing" +#define CL_KHR_GL_MSAA_SHARING_EXTENSION_NAME \ + "cl_khr_gl_msaa_sharing" /* cl_gl_texture_info */ #define CL_GL_NUM_SAMPLES 0x2012 @@ -76,7 +89,8 @@ clCreateEventFromGLsyncKHR_fn)( * cl_khr_gl_sharing ***************************************************************/ #define cl_khr_gl_sharing 1 -#define CL_KHR_GL_SHARING "cl_khr_gl_sharing" +#define CL_KHR_GL_SHARING_EXTENSION_NAME \ + "cl_khr_gl_sharing" typedef cl_uint cl_gl_context_info; @@ -110,23 +124,33 @@ typedef cl_uint cl_gl_platform_info; #define CL_GL_OBJECT_TEXTURE1D 0x200F #define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 #define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 -#endif + +#endif /* defined(CL_VERSION_1_2) */ /* cl_gl_texture_info */ #define CL_GL_TEXTURE_TARGET 0x2004 #define CL_GL_MIPMAP_LEVEL 0x2005 -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLContextInfoKHR( +typedef 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) CL_API_SUFFIX__VERSION_1_0; -typedef cl_int (CL_API_CALL * -clGetGLContextInfoKHR_fn)( +typedef cl_mem (CL_API_CALL * +clCreateFromGLBuffer_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLuint bufobj, + int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetGLContextInfoKHR( const cl_context_properties* properties, cl_gl_context_info param_name, size_t param_value_size, @@ -140,17 +164,12 @@ clCreateFromGLBuffer( cl_GLuint bufobj, int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef cl_mem (CL_API_CALL * -clCreateFromGLBuffer_fn)( - cl_context context, - cl_mem_flags flags, - cl_GLuint bufobj, - int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; +#endif /* CL_NO_PROTOTYPES */ #if defined(CL_VERSION_1_2) -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLTexture( +typedef cl_mem (CL_API_CALL * +clCreateFromGLTexture_fn)( cl_context context, cl_mem_flags flags, cl_GLenum target, @@ -158,23 +177,21 @@ clCreateFromGLTexture( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef cl_mem (CL_API_CALL * -clCreateFromGLTexture_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLTexture( cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#endif +#endif /* CL_NO_PROTOTYPES */ + +#endif /* defined(CL_VERSION_1_2) */ -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLRenderbuffer( - cl_context context, - cl_mem_flags flags, - cl_GLuint renderbuffer, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; typedef cl_mem (CL_API_CALL * clCreateFromGLRenderbuffer_fn)( @@ -183,26 +200,12 @@ clCreateFromGLRenderbuffer_fn)( cl_GLuint renderbuffer, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLObjectInfo( - cl_mem memobj, - cl_gl_object_type* gl_object_type, - cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0; - typedef cl_int (CL_API_CALL * clGetGLObjectInfo_fn)( cl_mem memobj, cl_gl_object_type* gl_object_type, cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLTextureInfo( - cl_mem memobj, - cl_gl_texture_info param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - typedef cl_int (CL_API_CALL * clGetGLTextureInfo_fn)( cl_mem memobj, @@ -211,8 +214,8 @@ clGetGLTextureInfo_fn)( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireGLObjects( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireGLObjects_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -221,7 +224,7 @@ clEnqueueAcquireGLObjects( cl_event* event) CL_API_SUFFIX__VERSION_1_0; typedef cl_int (CL_API_CALL * -clEnqueueAcquireGLObjects_fn)( +clEnqueueReleaseGLObjects_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -229,8 +232,31 @@ clEnqueueAcquireGLObjects_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLRenderbuffer( + cl_context context, + cl_mem_flags flags, + cl_GLuint renderbuffer, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseGLObjects( +clGetGLObjectInfo( + cl_mem memobj, + cl_gl_object_type* gl_object_type, + cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetGLTextureInfo( + cl_mem memobj, + cl_gl_texture_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireGLObjects( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -238,8 +264,8 @@ clEnqueueReleaseGLObjects( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseGLObjects_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseGLObjects( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -247,10 +273,12 @@ clEnqueueReleaseGLObjects_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; +#endif /* CL_NO_PROTOTYPES */ + /* OpenCL 1.0 APIs that were deprecated in OpenCL 1.2 */ -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLTexture2D( +typedef cl_mem (CL_API_CALL * +clCreateFromGLTexture2D_fn)( cl_context context, cl_mem_flags flags, cl_GLenum target, @@ -259,7 +287,7 @@ clCreateFromGLTexture2D( cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; typedef cl_mem (CL_API_CALL * -clCreateFromGLTexture2D_fn)( +clCreateFromGLTexture3D_fn)( cl_context context, cl_mem_flags flags, cl_GLenum target, @@ -267,8 +295,10 @@ clCreateFromGLTexture2D_fn)( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; +#ifndef CL_NO_PROTOTYPES + extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLTexture3D( +clCreateFromGLTexture2D( cl_context context, cl_mem_flags flags, cl_GLenum target, @@ -276,8 +306,8 @@ clCreateFromGLTexture3D( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef cl_mem (CL_API_CALL * -clCreateFromGLTexture3D_fn)( +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLTexture3D( cl_context context, cl_mem_flags flags, cl_GLenum target, @@ -285,16 +315,19 @@ clCreateFromGLTexture3D_fn)( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_intel_sharing_format_query_gl ***************************************************************/ #define cl_intel_sharing_format_query_gl 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_GL "cl_intel_sharing_format_query_gl" +#define CL_INTEL_SHARING_FORMAT_QUERY_GL_EXTENSION_NAME \ + "cl_intel_sharing_format_query_gl" /* when cl_khr_gl_sharing is supported */ -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedGLTextureFormatsINTEL( +typedef cl_int (CL_API_CALL * +clGetSupportedGLTextureFormatsINTEL_fn)( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -302,8 +335,10 @@ clGetSupportedGLTextureFormatsINTEL( cl_GLenum* gl_formats, cl_uint* num_texture_formats) ; -typedef cl_int (CL_API_CALL * -clGetSupportedGLTextureFormatsINTEL_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedGLTextureFormatsINTEL( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -311,6 +346,8 @@ clGetSupportedGLTextureFormatsINTEL_fn)( cl_GLenum* gl_formats, cl_uint* num_texture_formats) ; +#endif /* CL_NO_PROTOTYPES */ + #ifdef __cplusplus } #endif diff --git a/CL/cl_layer-unused.h b/CL/cl_layer-unused.h index 7277e637..46b8b4d2 100644 --- a/CL/cl_layer-unused.h +++ b/CL/cl_layer-unused.h @@ -17,6 +17,10 @@ #ifndef OPENCL_CL_LAYER_H_ #define OPENCL_CL_LAYER_H_ +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + #include #include @@ -28,7 +32,8 @@ extern "C" { * cl_loader_layers ***************************************************************/ #define cl_loader_layers 1 -#define CL_LOADER_LAYERS "cl_loader_layers" +#define CL_LOADER_LAYERS_EXTENSION_NAME \ + "cl_loader_layers" typedef cl_uint cl_layer_info; typedef cl_uint cl_layer_api_version; @@ -40,15 +45,24 @@ typedef cl_uint cl_layer_api_version; #define CL_LAYER_API_VERSION_100 100 -extern CL_API_ENTRY cl_int CL_API_CALL -clGetLayerInfo( +typedef cl_int (CL_API_CALL * +clGetLayerInfo_fn)( size_t param_value_size, cl_layer_info param_name, void* param_value, size_t* param_value_size_ret) ; typedef cl_int (CL_API_CALL * -clGetLayerInfo_fn)( +clInitLayer_fn)( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch) ; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetLayerInfo( size_t param_value_size, cl_layer_info param_name, void* param_value, @@ -61,12 +75,7 @@ clInitLayer( cl_uint* num_entries_ret, const cl_icd_dispatch** layer_dispatch) ; -typedef cl_int (CL_API_CALL * -clInitLayer_fn)( - cl_uint num_entries, - const cl_icd_dispatch* target_dispatch, - cl_uint* num_entries_ret, - const cl_icd_dispatch** layer_dispatch) ; +#endif /* CL_NO_PROTOTYPES */ #ifdef __cplusplus } diff --git a/CL/cl_layer.h b/CL/cl_layer.h index 015f89a2..b56b8e46 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -28,7 +28,8 @@ extern "C" { * cl_loader_layers ***************************************************************/ #define cl_loader_layers 1 -#define CL_LOADER_LAYERS "cl_loader_layers" +#define CL_LOADER_LAYERS_EXTENSION_NAME \ + "cl_loader_layers" typedef cl_uint cl_layer_info; typedef cl_uint cl_layer_api_version; @@ -40,15 +41,24 @@ typedef cl_uint cl_layer_api_version; #define CL_LAYER_API_VERSION_100 100 -extern CL_API_ENTRY cl_int CL_API_CALL -clGetLayerInfo( +typedef cl_int (CL_API_CALL * +pfn_clGetLayerInfo)( size_t param_value_size, cl_layer_info param_name, void* param_value, size_t* param_value_size_ret) ; typedef cl_int (CL_API_CALL * -pfn_clGetLayerInfo)( +pfn_clInitLayer)( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch) ; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetLayerInfo( size_t param_value_size, cl_layer_info param_name, void* param_value, @@ -61,12 +71,7 @@ clInitLayer( cl_uint* num_entries_ret, const cl_icd_dispatch** layer_dispatch) ; -typedef cl_int (CL_API_CALL * -pfn_clInitLayer)( - cl_uint num_entries, - const cl_icd_dispatch* target_dispatch, - cl_uint* num_entries_ret, - const cl_icd_dispatch** layer_dispatch) ; +#endif /* CL_NO_PROTOTYPES */ #ifdef __cplusplus } diff --git a/CL/cl_va_api_media_sharing_intel.h b/CL/cl_va_api_media_sharing_intel.h index c958c8a4..979cd839 100644 --- a/CL/cl_va_api_media_sharing_intel.h +++ b/CL/cl_va_api_media_sharing_intel.h @@ -17,6 +17,10 @@ #ifndef OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ #define OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + #include #include @@ -28,12 +32,13 @@ extern "C" { * cl_intel_sharing_format_query_va_api ***************************************************************/ #define cl_intel_sharing_format_query_va_api 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API "cl_intel_sharing_format_query_va_api" +#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API_EXTENSION_NAME \ + "cl_intel_sharing_format_query_va_api" /* when cl_intel_va_api_media_sharing is supported */ -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSupportedVA_APIMediaSurfaceFormatsINTEL( +typedef cl_int (CL_API_CALL * +clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -42,8 +47,10 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL( VAImageFormat* va_api_formats, cl_uint* num_surface_formats) ; -typedef cl_int (CL_API_CALL * -clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedVA_APIMediaSurfaceFormatsINTEL( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, @@ -52,11 +59,14 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( VAImageFormat* va_api_formats, cl_uint* num_surface_formats) ; +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_intel_va_api_media_sharing ***************************************************************/ #define cl_intel_va_api_media_sharing 1 -#define CL_INTEL_VA_API_MEDIA_SHARING "cl_intel_va_api_media_sharing" +#define CL_INTEL_VA_API_MEDIA_SHARING_EXTENSION_NAME \ + "cl_intel_va_api_media_sharing" typedef cl_uint cl_va_api_device_source_intel; typedef cl_uint cl_va_api_device_set_intel; @@ -88,16 +98,6 @@ typedef cl_uint cl_va_api_device_set_intel; #define CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL 0x409B -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceIDsFromVA_APIMediaAdapterINTEL( - cl_platform_id platform, - cl_va_api_device_source_intel media_adapter_type, - void* media_adapter, - cl_va_api_device_set_intel media_adapter_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; - typedef cl_int (CL_API_CALL * clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)( cl_platform_id platform, @@ -108,14 +108,6 @@ clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)( cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromVA_APIMediaSurfaceINTEL( - cl_context context, - cl_mem_flags flags, - VASurfaceID* surface, - cl_uint plane, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - typedef cl_mem (CL_API_CALL * clCreateFromVA_APIMediaSurfaceINTEL_fn)( cl_context context, @@ -124,8 +116,8 @@ clCreateFromVA_APIMediaSurfaceINTEL_fn)( cl_uint plane, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireVA_APIMediaSurfacesINTEL( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -134,7 +126,7 @@ clEnqueueAcquireVA_APIMediaSurfacesINTEL( cl_event* event) CL_API_SUFFIX__VERSION_1_2; typedef cl_int (CL_API_CALL * -clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( +clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -142,8 +134,28 @@ clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +#ifndef CL_NO_PROTOTYPES + extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseVA_APIMediaSurfacesINTEL( +clGetDeviceIDsFromVA_APIMediaAdapterINTEL( + cl_platform_id platform, + cl_va_api_device_source_intel media_adapter_type, + void* media_adapter, + cl_va_api_device_set_intel media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromVA_APIMediaSurfaceINTEL( + cl_context context, + cl_mem_flags flags, + VASurfaceID* surface, + cl_uint plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireVA_APIMediaSurfacesINTEL( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -151,8 +163,8 @@ clEnqueueReleaseVA_APIMediaSurfacesINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef cl_int (CL_API_CALL * -clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseVA_APIMediaSurfacesINTEL( cl_command_queue command_queue, cl_uint num_objects, const cl_mem* mem_objects, @@ -160,6 +172,8 @@ clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; +#endif /* CL_NO_PROTOTYPES */ + #ifdef __cplusplus } #endif diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 4fcb4410..a4bf146b 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -105,6 +105,10 @@ def isDuplicateName(name): #ifndef ${guard} #define ${guard} +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + %if includes: ${includes} %endif @@ -122,7 +126,8 @@ extern "C" { * ${name} ***************************************************************/ #define ${name} 1 -#define ${name.upper()} "${name}" +#define ${name.upper()}_EXTENSION_NAME ${"\\"} + "${name}" %for block in extension.findall('require'): % if shouldEmit(block): @@ -166,32 +171,43 @@ ${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; // enum ${enum.get('name')} not found! % endif % endfor -% for func in block.findall('command'): +% if block.findall('command'): +% for func in block.findall('command'): <% api = apisigs[func.get('name')] %> -extern CL_API_ENTRY ${api.RetType} CL_API_CALL -${api.Name}( -% for i, paramStr in enumerate(getCParameterStrings(api.Params)): -% if i < len(api.Params)-1: +typedef ${api.RetType} (CL_API_CALL * +${api.Name}_fn)( +% for i, paramStr in enumerate(getCParameterStrings(api.Params)): +% if i < len(api.Params)-1: ${paramStr}, -% else: +% else: ${paramStr}) ${api.Suffix}; -% endif -% endfor +% endif +% endfor +% endfor -typedef ${api.RetType} (CL_API_CALL * -${api.Name}_fn)( -% for i, paramStr in enumerate(getCParameterStrings(api.Params)): -% if i < len(api.Params)-1: +#ifndef CL_NO_PROTOTYPES +% for func in block.findall('command'): +<% + api = apisigs[func.get('name')] +%> +extern CL_API_ENTRY ${api.RetType} CL_API_CALL +${api.Name}( +% for i, paramStr in enumerate(getCParameterStrings(api.Params)): +% if i < len(api.Params)-1: ${paramStr}, -% else: +% else: ${paramStr}) ${api.Suffix}; -% endif +% endif +% endfor % endfor -% endfor + +#endif /* CL_NO_PROTOTYPES */ +% endif % if block.get('condition'): -#endif + +#endif /* ${block.get('condition')} */ % endif % endif From 4f373a7901def9acf9b34ba8ad0e48760f830712 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Mon, 18 Oct 2021 13:38:45 -0700 Subject: [PATCH 11/40] generate new extensions: cl_khr_semaphore cl_khr_external_semaphore (and related extensions) cl_khr_external_memory (and related extensions) cl_intel_device_attribute_query --- CL/cl_ext.h | 6 +++--- scripts/cl_ext.h.mako | 16 ++++++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index e96ada26..5495a49c 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -914,8 +914,8 @@ typedef cl_ulong cl_semaphore_payload_khr; /* cl_semaphore_info_khr or cl_semaphore_properties_khr */ #define CL_SEMAPHORE_TYPE_KHR 0x203D -#define CL_DEVICE_HANDLE_LIST_KHR 0x2051 -#define CL_DEVICE_HANDLE_LIST_END_KHR 0 +/* enum CL_DEVICE_HANDLE_LIST_KHR */ +/* enum CL_DEVICE_HANDLE_LIST_END_KHR */ /* cl_command_type */ #define CL_COMMAND_SEMAPHORE_WAIT_KHR 0x2042 @@ -2334,7 +2334,7 @@ typedef cl_uint cl_diagnostics_verbose_level; #define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E /* cl_mem_alloc_info_intel */ -#define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E +/* enum CL_MEM_ALLOC_BUFFER_LOCATION_INTEL */ /*************************************************************** * cl_intel_mem_channel_property diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index a4bf146b..bf91c369 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -159,16 +159,20 @@ ${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; % endif % endfor % for enum in sorted(block.findall('enum'), key=getEnumSortKey): -% if enum.get('name') in enums: -% if enums[enum.get('name')].Value: +% if isDuplicateName(enum.get('name')): +/* enum ${enum.get('name')} */ +% else: +% if enum.get('name') in enums: +% if enums[enum.get('name')].Value: #define ${enum.get('name').ljust(51)} ${enums[enum.get('name')].Value} -% elif enums[enum.get('name')].Bitpos: +% elif enums[enum.get('name')].Bitpos: #define ${enum.get('name').ljust(51)} (1 << ${enums[enum.get('name')].Bitpos}) -% else: +% else: // enum ${enum.get('name')} is unassigned! -% endif -% else: +% endif +% else: // enum ${enum.get('name')} not found! +% endif % endif % endfor % if block.findall('command'): From 8937bb1643bf531ddfcc7eae42e5c5b6667ee835 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 30 Nov 2021 12:16:31 -0800 Subject: [PATCH 12/40] handle the case where the bit shift amount is greater than 31 Done by shifting the unsigned long long literal 1ULL. This is done conditionally for now, only when the shift amount is greater than 31, because shifting by 31 or less is defined. --- CMakeLists.txt | 38 ++++++++++++++++++++++++++++++++++++++ scripts/cl_ext.h.mako | 11 ++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 89bbdec8..38d2602c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,6 +97,44 @@ if((CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR OPENCL_HEADERS_BUILD_TESTING) AN add_subdirectory(tests) endif() +if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) + find_package(Python3 COMPONENTS Interpreter) + set(OPENCL_HEADERS_XML_PATH CACHE FILEPATH "Path to cl.xml for OpenCL Extension Loader genereration") + set(OPENCL_HEADERS_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated) + add_custom_target(headers_generate + COMMAND ${CMAKE_COMMAND} -E make_directory ${OPENCL_HEADERS_OUTPUT_DIRECTORY} + COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_SOURCE_DIR}/scripts + ${Python3_EXECUTABLE} gen_headers.py + -registry ${OPENCL_HEADERS_XML_PATH} + -o ${OPENCL_HEADERS_OUTPUT_DIRECTORY} + ) + add_custom_target(headers_copy + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_d3d10.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_d3d11.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_dx9_media_sharing.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_egl.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_ext.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_gl.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_va_api_media_sharing_intel.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + ) + set_target_properties(headers_generate PROPERTIES FOLDER "Generation") + set_target_properties(headers_copy PROPERTIES FOLDER "Generation") +endif() + join_paths(OPENCL_INCLUDEDIR_PC "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") configure_file(OpenCL-Headers.pc.in OpenCL-Headers.pc @ONLY) diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index bf91c369..0abe2bbc 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -76,6 +76,15 @@ def getCParameterStrings(params): strings.append(paramstr) return strings +# Gets a bit string for the specified bit position: +def getBitPosString(bitpos): + ret = '(1' + ret += 'ULL' if int(bitpos) > 31 else '' + ret += ' << ' + ret += bitpos + ret += ')' + return ret + # Names that have been generated already, since some may be shared by multiple # extensions: generatedNames = set() @@ -166,7 +175,7 @@ ${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; % if enums[enum.get('name')].Value: #define ${enum.get('name').ljust(51)} ${enums[enum.get('name')].Value} % elif enums[enum.get('name')].Bitpos: -#define ${enum.get('name').ljust(51)} (1 << ${enums[enum.get('name')].Bitpos}) +#define ${enum.get('name').ljust(51)} ${getBitPosString(enums[enum.get('name')].Bitpos)} % else: // enum ${enum.get('name')} is unassigned! % endif From 0b03b7294c4854e7bd63ac142c89a572fbeca3dd Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Thu, 13 Jan 2022 15:23:17 -0600 Subject: [PATCH 13/40] Activate generation for cl_layer.h. --- CMakeLists.txt | 3 +++ scripts/cl_ext.h.mako | 12 ++++++++++++ scripts/gen_headers.py | 30 ++++++++++++++++++------------ 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 38d2602c..26074dbc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,6 +130,9 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) COMMAND ${CMAKE_COMMAND} -E copy ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_va_api_media_sharing_intel.h ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_layer.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL ) set_target_properties(headers_generate PROPERTIES FOLDER "Generation") set_target_properties(headers_copy PROPERTIES FOLDER "Generation") diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 0abe2bbc..69a3bed1 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -198,6 +198,18 @@ ${api.Name}_fn)( ${paramStr}) ${api.Suffix}; % endif % endfor +% if prefix_pointer_gen: + +typedef ${api.RetType} (CL_API_CALL * +pfn_${api.Name})( +% for i, paramStr in enumerate(getCParameterStrings(api.Params)): +% if i < len(api.Params)-1: + ${paramStr}, +% else: + ${paramStr}) ${api.Suffix}; +% endif +% endfor +% endif % endfor #ifndef CL_NO_PROTOTYPES diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index c22d9fac..86d42141 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -79,7 +79,8 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis). + extapis=extapis, + prefix_pointer_gen=False). encode('utf-8', 'replace')) print('Generating cl_d3d10.h...') @@ -99,7 +100,8 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis). + extapis=extapis, + prefix_pointer_gen=False). encode('utf-8', 'replace')) print('Generating cl_d3d11.h...') @@ -119,7 +121,8 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis). + extapis=extapis, + prefix_pointer_gen=False). encode('utf-8', 'replace')) print('Generating cl_egl.h...') @@ -135,7 +138,8 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis). + extapis=extapis, + prefix_pointer_gen=False). encode('utf-8', 'replace')) print('Generating cl_gl.h...') @@ -157,13 +161,12 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis). + extapis=extapis, + prefix_pointer_gen=False). encode('utf-8', 'replace')) - # cl_layer.h is currently generated but unused because the ICD loader - # uses a different naming convention for function pointers. - print('Generating cl_layer.h (note: unused)...') - gen = open(args.directory + '/cl_layer-unused.h', 'wb') + print('Generating cl_layer.h...') + gen = open(args.directory + '/cl_layer.h', 'wb') gen.write( cl_ext_h_template.render_unicode( genExtensions={'cl_loader_layers'}, @@ -176,7 +179,8 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis). + extapis=extapis, + prefix_pointer_gen=True). encode('utf-8', 'replace')) print('Generating cl_va_api_media_sharing_intel.h...') @@ -196,7 +200,8 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis). + extapis=extapis, + prefix_pointer_gen=False). encode('utf-8', 'replace')) print('Generating cl_ext.h...') @@ -212,7 +217,8 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis). + extapis=extapis, + prefix_pointer_gen=False). encode('utf-8', 'replace')) except: traceback = RichTraceback() From 29eabbd11c87c0e4d1da54ef00dddb218034555d Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Thu, 13 Jan 2022 15:23:33 -0600 Subject: [PATCH 14/40] Regenerate headers. --- CL/cl_ext.h | 2 +- CL/cl_layer.h | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 5495a49c..a3c73570 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -1515,7 +1515,7 @@ clImportMemoryARM( #define CL_ARM_PROTECTED_MEMORY_ALLOCATION_EXTENSION_NAME \ "cl_arm_protected_memory_allocation" -#define CL_MEM_PROTECTED_ALLOC_ARM (1 << 36) +#define CL_MEM_PROTECTED_ALLOC_ARM (1ULL << 36) /*************************************************************** * cl_arm_scheduling_controls diff --git a/CL/cl_layer.h b/CL/cl_layer.h index b56b8e46..bb67084e 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -17,6 +17,10 @@ #ifndef OPENCL_CL_LAYER_H_ #define OPENCL_CL_LAYER_H_ +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + #include #include @@ -41,6 +45,13 @@ typedef cl_uint cl_layer_api_version; #define CL_LAYER_API_VERSION_100 100 +typedef cl_int (CL_API_CALL * +clGetLayerInfo_fn)( + size_t param_value_size, + cl_layer_info param_name, + void* param_value, + size_t* param_value_size_ret) ; + typedef cl_int (CL_API_CALL * pfn_clGetLayerInfo)( size_t param_value_size, @@ -48,6 +59,13 @@ pfn_clGetLayerInfo)( void* param_value, size_t* param_value_size_ret) ; +typedef cl_int (CL_API_CALL * +clInitLayer_fn)( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch) ; + typedef cl_int (CL_API_CALL * pfn_clInitLayer)( cl_uint num_entries, From 2b5828b869125a2ee55f223cbaea975be66b795a Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Thu, 13 Jan 2022 18:16:05 -0800 Subject: [PATCH 15/40] minor updates for pfn_ function pointer typedef generation --- CL/cl_layer-unused.h | 84 ------------------------------------------ CL/cl_layer.h | 21 +++++++---- CMakeLists.txt | 6 +-- scripts/cl_ext.h.mako | 17 +++++++-- scripts/gen_headers.py | 32 ++++++++-------- 5 files changed, 47 insertions(+), 113 deletions(-) delete mode 100644 CL/cl_layer-unused.h diff --git a/CL/cl_layer-unused.h b/CL/cl_layer-unused.h deleted file mode 100644 index 46b8b4d2..00000000 --- a/CL/cl_layer-unused.h +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#ifndef OPENCL_CL_LAYER_H_ -#define OPENCL_CL_LAYER_H_ - -/* -** This header is generated from the Khronos OpenCL XML API Registry. -*/ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/*************************************************************** -* cl_loader_layers -***************************************************************/ -#define cl_loader_layers 1 -#define CL_LOADER_LAYERS_EXTENSION_NAME \ - "cl_loader_layers" - -typedef cl_uint cl_layer_info; -typedef cl_uint cl_layer_api_version; - -/* cl_layer_info */ -#define CL_LAYER_API_VERSION 0x4240 - -/* Misc API enums */ -#define CL_LAYER_API_VERSION_100 100 - - -typedef cl_int (CL_API_CALL * -clGetLayerInfo_fn)( - size_t param_value_size, - cl_layer_info param_name, - void* param_value, - size_t* param_value_size_ret) ; - -typedef cl_int (CL_API_CALL * -clInitLayer_fn)( - cl_uint num_entries, - const cl_icd_dispatch* target_dispatch, - cl_uint* num_entries_ret, - const cl_icd_dispatch** layer_dispatch) ; - -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetLayerInfo( - size_t param_value_size, - cl_layer_info param_name, - void* param_value, - size_t* param_value_size_ret) ; - -extern CL_API_ENTRY cl_int CL_API_CALL -clInitLayer( - cl_uint num_entries, - const cl_icd_dispatch* target_dispatch, - cl_uint* num_entries_ret, - const cl_icd_dispatch** layer_dispatch) ; - -#endif /* CL_NO_PROTOTYPES */ - -#ifdef __cplusplus -} -#endif - -#endif /* OPENCL_CL_LAYER_H_ */ diff --git a/CL/cl_layer.h b/CL/cl_layer.h index bb67084e..b7f1cbd6 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -52,13 +52,6 @@ clGetLayerInfo_fn)( void* param_value, size_t* param_value_size_ret) ; -typedef cl_int (CL_API_CALL * -pfn_clGetLayerInfo)( - size_t param_value_size, - cl_layer_info param_name, - void* param_value, - size_t* param_value_size_ret) ; - typedef cl_int (CL_API_CALL * clInitLayer_fn)( cl_uint num_entries, @@ -66,6 +59,20 @@ clInitLayer_fn)( cl_uint* num_entries_ret, const cl_icd_dispatch** layer_dispatch) ; +/* +** The function pointer typedefs prefixed with "pfn_" are provided for +** compatibility with earlier versions of the headers. New code is +** encouraged to use the function pointer typedefs that are suffixed with +** "_fn" instead, for consistency. +*/ + +typedef cl_int (CL_API_CALL * +pfn_clGetLayerInfo)( + size_t param_value_size, + cl_layer_info param_name, + void* param_value, + size_t* param_value_size_ret) ; + typedef cl_int (CL_API_CALL * pfn_clInitLayer)( cl_uint num_entries, diff --git a/CMakeLists.txt b/CMakeLists.txt index 26074dbc..43e97cc3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,7 +99,7 @@ endif() if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) find_package(Python3 COMPONENTS Interpreter) - set(OPENCL_HEADERS_XML_PATH CACHE FILEPATH "Path to cl.xml for OpenCL Extension Loader genereration") + set(OPENCL_HEADERS_XML_PATH CACHE FILEPATH "Path to cl.xml for OpenCL Header genereration") set(OPENCL_HEADERS_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated) add_custom_target(headers_generate COMMAND ${CMAKE_COMMAND} -E make_directory ${OPENCL_HEADERS_OUTPUT_DIRECTORY} @@ -128,10 +128,10 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_gl.h ${CMAKE_CURRENT_SOURCE_DIR}/CL COMMAND ${CMAKE_COMMAND} -E copy - ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_va_api_media_sharing_intel.h + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_layer.h ${CMAKE_CURRENT_SOURCE_DIR}/CL COMMAND ${CMAKE_COMMAND} -E copy - ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_layer.h + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_va_api_media_sharing_intel.h ${CMAKE_CURRENT_SOURCE_DIR}/CL ) set_target_properties(headers_generate PROPERTIES FOLDER "Generation") diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 69a3bed1..3de901e3 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -198,8 +198,19 @@ ${api.Name}_fn)( ${paramStr}) ${api.Suffix}; % endif % endfor -% if prefix_pointer_gen: +% endfor +% if generate_pfn_typedefs: +/* +** The function pointer typedefs prefixed with "pfn_" are provided for +** compatibility with earlier versions of the headers. New code is +** encouraged to use the function pointer typedefs that are suffixed with +** "_fn" instead, for consistency. +*/ +% for func in block.findall('command'): +<% + api = apisigs[func.get('name')] +%> typedef ${api.RetType} (CL_API_CALL * pfn_${api.Name})( % for i, paramStr in enumerate(getCParameterStrings(api.Params)): @@ -209,8 +220,8 @@ pfn_${api.Name})( ${paramStr}) ${api.Suffix}; % endif % endfor -% endif -% endfor +% endfor +% endif #ifndef CL_NO_PROTOTYPES % for func in block.findall('command'): diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index 86d42141..83beddb8 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -72,6 +72,7 @@ def getWin32OnlyIncludeString(include): }, guard="OPENCL_CL_DX9_MEDIA_SHARING_H_", includes=getWin32OnlyIncludeString("#include "), + generate_pfn_typedefs=False, spec=spec, typedefs=typedefs, macros=macros, @@ -79,8 +80,7 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis, - prefix_pointer_gen=False). + extapis=extapis). encode('utf-8', 'replace')) print('Generating cl_d3d10.h...') @@ -93,6 +93,7 @@ def getWin32OnlyIncludeString(include): }, guard="OPENCL_CL_D3D10_H_", includes=getDisableWarningIncludeString("#include "), + generate_pfn_typedefs=False, spec=spec, typedefs=typedefs, macros=macros, @@ -100,8 +101,7 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis, - prefix_pointer_gen=False). + extapis=extapis). encode('utf-8', 'replace')) print('Generating cl_d3d11.h...') @@ -114,6 +114,7 @@ def getWin32OnlyIncludeString(include): }, guard="OPENCL_CL_D3D11_H_", includes=getDisableWarningIncludeString("#include "), + generate_pfn_typedefs=False, spec=spec, typedefs=typedefs, macros=macros, @@ -121,8 +122,7 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis, - prefix_pointer_gen=False). + extapis=extapis). encode('utf-8', 'replace')) print('Generating cl_egl.h...') @@ -131,6 +131,7 @@ def getWin32OnlyIncludeString(include): cl_ext_h_template.render_unicode( genExtensions={'cl_khr_egl_event', 'cl_khr_egl_image'}, guard="OPENCL_CL_EGL_H_", + generate_pfn_typedefs=False, spec=spec, typedefs=typedefs, macros=macros, @@ -138,8 +139,7 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis, - prefix_pointer_gen=False). + extapis=extapis). encode('utf-8', 'replace')) print('Generating cl_gl.h...') @@ -154,6 +154,7 @@ def getWin32OnlyIncludeString(include): 'cl_intel_sharing_format_query_gl', }, guard="OPENCL_CL_GL_H_", + generate_pfn_typedefs=False, spec=spec, typedefs=typedefs, macros=macros, @@ -161,8 +162,7 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis, - prefix_pointer_gen=False). + extapis=extapis). encode('utf-8', 'replace')) print('Generating cl_layer.h...') @@ -172,6 +172,7 @@ def getWin32OnlyIncludeString(include): genExtensions={'cl_loader_layers'}, guard="OPENCL_CL_LAYER_H_", includes='#include ', + generate_pfn_typedefs=True, spec=spec, typedefs=typedefs, macros=macros, @@ -179,8 +180,7 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis, - prefix_pointer_gen=True). + extapis=extapis). encode('utf-8', 'replace')) print('Generating cl_va_api_media_sharing_intel.h...') @@ -193,6 +193,7 @@ def getWin32OnlyIncludeString(include): }, guard="OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_", includes='#include ', + generate_pfn_typedefs=False, spec=spec, typedefs=typedefs, macros=macros, @@ -200,8 +201,7 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis, - prefix_pointer_gen=False). + extapis=extapis). encode('utf-8', 'replace')) print('Generating cl_ext.h...') @@ -210,6 +210,7 @@ def getWin32OnlyIncludeString(include): cl_ext_h_template.render_unicode( genExtensions={}, guard="OPENCL_CL_EXT_H_", + generate_pfn_typedefs=False, spec=spec, typedefs=typedefs, macros=macros, @@ -217,8 +218,7 @@ def getWin32OnlyIncludeString(include): enums=enums, apisigs=apisigs, coreapis=coreapis, - extapis=extapis, - prefix_pointer_gen=False). + extapis=extapis). encode('utf-8', 'replace')) except: traceback = RichTraceback() From 252244620799421fe9fbf660d77173187b39b02c Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Thu, 13 Jan 2022 18:30:22 -0800 Subject: [PATCH 16/40] update copyright dates --- CL/cl_d3d10.h | 2 +- CL/cl_d3d11.h | 2 +- CL/cl_dx9_media_sharing.h | 2 +- CL/cl_egl.h | 2 +- CL/cl_ext.h | 2 +- CL/cl_gl.h | 2 +- CL/cl_layer.h | 2 +- CL/cl_va_api_media_sharing_intel.h | 2 +- scripts/cl_ext.h.mako | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CL/cl_d3d10.h b/CL/cl_d3d10.h index ae7dc235..0020fb5f 100644 --- a/CL/cl_d3d10.h +++ b/CL/cl_d3d10.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. + * Copyright (c) 2008-2022 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_d3d11.h b/CL/cl_d3d11.h index b0b0c970..7b8a527f 100644 --- a/CL/cl_d3d11.h +++ b/CL/cl_d3d11.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. + * Copyright (c) 2008-2022 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_dx9_media_sharing.h b/CL/cl_dx9_media_sharing.h index 30b1653c..f83c494d 100644 --- a/CL/cl_dx9_media_sharing.h +++ b/CL/cl_dx9_media_sharing.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. + * Copyright (c) 2008-2022 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_egl.h b/CL/cl_egl.h index 39eab6bc..419aa364 100644 --- a/CL/cl_egl.h +++ b/CL/cl_egl.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. + * Copyright (c) 2008-2022 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_ext.h b/CL/cl_ext.h index a3c73570..d1fb042f 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. + * Copyright (c) 2008-2022 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_gl.h b/CL/cl_gl.h index fed6b0ea..661d6446 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. + * Copyright (c) 2008-2022 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_layer.h b/CL/cl_layer.h index b7f1cbd6..3a1bcae5 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. + * Copyright (c) 2008-2022 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_va_api_media_sharing_intel.h b/CL/cl_va_api_media_sharing_intel.h index 979cd839..d57fe92a 100644 --- a/CL/cl_va_api_media_sharing_intel.h +++ b/CL/cl_va_api_media_sharing_intel.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. + * Copyright (c) 2008-2022 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 3de901e3..ddbc3bc6 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -96,7 +96,7 @@ def isDuplicateName(name): return False %>/******************************************************************************* - * Copyright (c) 2008-2021 The Khronos Group Inc. + * Copyright (c) 2008-2022 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From c57eeffe07f1c68a38379864a40ba366bd7e3a11 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Sun, 15 May 2022 18:04:15 -0700 Subject: [PATCH 17/40] generate headers with latest XML file cl_intel_program_scope_host_pipe --- CL/cl_ext.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ CL/cl_layer.h | 6 ++--- 2 files changed, 71 insertions(+), 3 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index d1fb042f..cb9836a0 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -2423,6 +2423,74 @@ typedef struct _cl_motion_estimation_desc_intel { #define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E #define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F +/*************************************************************** +* cl_intel_program_scope_host_pipe +***************************************************************/ +#define cl_intel_program_scope_host_pipe 1 +#define CL_INTEL_PROGRAM_SCOPE_HOST_PIPE_EXTENSION_NAME \ + "cl_intel_program_scope_host_pipe" + +/* clGetEventInfo response when param_name is CL_EVENT_COMMAND_TYPE */ +#define CL_COMMAND_READ_HOST_PIPE_INTEL 0x4214 +#define CL_COMMAND_WRITE_HOST_PIPE_INTEL 0x4215 + +/* clGetProgramInfo param_name */ +#define CL_PROGRAM_NUM_HOST_PIPES_INTEL 0x4216 +#define CL_PROGRAM_HOST_PIPE_NAMES_INTEL 0x4217 + + +typedef cl_int (CL_API_CALL * +clEnqueueReadHostPipeINTEL_fn)( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_read, + void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +typedef cl_int (CL_API_CALL * +clEnqueueWriteHostPipeINTEL_fn)( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_write, + const void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReadHostPipeINTEL( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_read, + void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWriteHostPipeINTEL( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_write, + const void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_intel_required_subgroup_size ***************************************************************/ diff --git a/CL/cl_layer.h b/CL/cl_layer.h index 3a1bcae5..d534a71c 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -47,8 +47,8 @@ typedef cl_uint cl_layer_api_version; typedef cl_int (CL_API_CALL * clGetLayerInfo_fn)( - size_t param_value_size, cl_layer_info param_name, + size_t param_value_size, void* param_value, size_t* param_value_size_ret) ; @@ -68,8 +68,8 @@ clInitLayer_fn)( typedef cl_int (CL_API_CALL * pfn_clGetLayerInfo)( - size_t param_value_size, cl_layer_info param_name, + size_t param_value_size, void* param_value, size_t* param_value_size_ret) ; @@ -84,8 +84,8 @@ pfn_clInitLayer)( extern CL_API_ENTRY cl_int CL_API_CALL clGetLayerInfo( - size_t param_value_size, cl_layer_info param_name, + size_t param_value_size, void* param_value, size_t* param_value_size_ret) ; From e46a29bf351df0fd1693f91f0372da82730bff4f Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 6 Sep 2022 22:20:03 -0700 Subject: [PATCH 18/40] add an extension condition check for the entire extension This is needed for cl_ext_image_requirements_info where the entire extension is guarded by an ifdef vs. particular blocks of the extension. --- scripts/cl_ext.h.mako | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index ddbc3bc6..fed2a62b 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -134,6 +134,10 @@ extern "C" { %>/*************************************************************** * ${name} ***************************************************************/ +%if extension.get('condition'): +#if ${extension.get('condition')} + +%endif #define ${name} 1 #define ${name.upper()}_EXTENSION_NAME ${"\\"} "${name}" @@ -248,6 +252,10 @@ ${api.Name}( % endif %endfor +%if extension.get('condition'): +#endif /* ${extension.get('condition')} */ + +%endif % endif %endfor #ifdef __cplusplus From be20f230f567a15f3efad9f4d34e5e0b62dcc71a Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 6 Sep 2022 22:37:42 -0700 Subject: [PATCH 19/40] generate headers with the latest XML file cl_khr_command_buffer_mutable_dispatch cl_ext_image_requirements_info cl_intel_queue_no_sync_operations --- CL/cl_ext.h | 187 +++++++++++++++++++++++++++++++++++++++-- scripts/gen_headers.py | 1 + 2 files changed, 182 insertions(+), 6 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index cb9836a0..31c85945 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -409,6 +409,113 @@ clGetCommandBufferInfoKHR( #endif /* CL_NO_PROTOTYPES */ +/*************************************************************** +* cl_khr_command_buffer_mutable_dispatch +***************************************************************/ +#define cl_khr_command_buffer_mutable_dispatch 1 +#define CL_KHR_COMMAND_BUFFER_MUTABLE_DISPATCH_EXTENSION_NAME \ + "cl_khr_command_buffer_mutable_dispatch" + +typedef cl_uint cl_command_buffer_structure_type_khr; +typedef cl_bitfield cl_mutable_dispatch_fields_khr; +typedef cl_uint cl_mutable_command_info_khr; +typedef struct _cl_mutable_dispatch_arg_khr { + cl_uint arg_index; + size_t arg_size; + const void* arg_value; +} cl_mutable_dispatch_arg_khr; +typedef struct _cl_mutable_dispatch_exec_info_khr { + cl_uint param_name; + size_t param_value_size; + const void* param_value; +} cl_mutable_dispatch_exec_info_khr; +typedef struct _cl_mutable_dispatch_config_khr { + cl_command_buffer_structure_type_khr type; + const void* next; + cl_mutable_command_khr command; + cl_uint num_args; + cl_uint num_svm_args; + cl_uint num_exec_infos; + cl_uint work_dim; + const cl_mutable_dispatch_arg_khr* arg_list; + const cl_mutable_dispatch_arg_khr* arg_svm_list; + const cl_mutable_dispatch_exec_info_khr* exec_info_list; + const size_t* global_work_offset; + const size_t* global_work_size; + const size_t* local_work_size; +} cl_mutable_dispatch_config_khr; +typedef struct _cl_mutable_base_config_khr { + cl_command_buffer_structure_type_khr type; + const void* next; + cl_uint num_mutable_dispatch; + const cl_mutable_dispatch_config_khr* mutable_dispatch_list; +} cl_mutable_base_config_khr; + +/* cl_command_buffer_flags_khr - bitfield */ +#define CL_COMMAND_BUFFER_MUTABLE_KHR (1 << 1) + +/* Error codes */ +#define CL_INVALID_MUTABLE_COMMAND_KHR -1141 + +/* cl_device_info */ +#define CL_DEVICE_MUTABLE_DISPATCH_CAPABILITIES_KHR 0x12B0 + +/* cl_ndrange_kernel_command_properties_khr */ +#define CL_MUTABLE_DISPATCH_UPDATABLE_FIELDS_KHR 0x12B1 + +/* cl_mutable_dispatch_fields_khr - bitfield */ +#define CL_MUTABLE_DISPATCH_GLOBAL_OFFSET_KHR (1 << 0) +#define CL_MUTABLE_DISPATCH_GLOBAL_SIZE_KHR (1 << 1) +#define CL_MUTABLE_DISPATCH_LOCAL_SIZE_KHR (1 << 2) +#define CL_MUTABLE_DISPATCH_ARGUMENTS_KHR (1 << 3) +#define CL_MUTABLE_DISPATCH_EXEC_INFO_KHR (1 << 4) + +/* cl_mutable_command_info_khr */ +#define CL_MUTABLE_COMMAND_COMMAND_QUEUE_KHR 0x12A0 +#define CL_MUTABLE_COMMAND_COMMAND_BUFFER_KHR 0x12A1 +#define CL_MUTABLE_COMMAND_COMMAND_TYPE_KHR 0x12AD +#define CL_MUTABLE_DISPATCH_PROPERTIES_ARRAY_KHR 0x12A2 +#define CL_MUTABLE_DISPATCH_KERNEL_KHR 0x12A3 +#define CL_MUTABLE_DISPATCH_DIMENSIONS_KHR 0x12A4 +#define CL_MUTABLE_DISPATCH_GLOBAL_WORK_OFFSET_KHR 0x12A5 +#define CL_MUTABLE_DISPATCH_GLOBAL_WORK_SIZE_KHR 0x12A6 +#define CL_MUTABLE_DISPATCH_LOCAL_WORK_SIZE_KHR 0x12A7 + +/* cl_command_buffer_structure_type_khr */ +#define CL_STRUCTURE_TYPE_MUTABLE_BASE_CONFIG_KHR 0 +#define CL_STRUCTURE_TYPE_MUTABLE_DISPATCH_CONFIG_KHR 1 + + +typedef cl_int (CL_API_CALL * +clUpdateMutableCommandsKHR_fn)( + cl_command_buffer_khr command_buffer, + const cl_mutable_base_config_khr* mutable_config) ; + +typedef cl_int (CL_API_CALL * +clGetMutableCommandInfoKHR_fn)( + cl_mutable_command_khr command, + cl_mutable_command_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clUpdateMutableCommandsKHR( + cl_command_buffer_khr command_buffer, + const cl_mutable_base_config_khr* mutable_config) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetMutableCommandInfoKHR( + cl_mutable_command_khr command, + cl_mutable_command_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#endif /* CL_NO_PROTOTYPES */ + /*************************************************************** * cl_khr_create_command_queue ***************************************************************/ @@ -1117,12 +1224,17 @@ clGetKernelSuggestedLocalWorkSizeKHR( #define CL_KHR_TERMINATE_CONTEXT_EXTENSION_NAME \ "cl_khr_terminate_context" +typedef cl_bitfield cl_device_terminate_capability_khr; + /* cl_device_info */ #define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 /* cl_context_properties */ #define CL_CONTEXT_TERMINATE_KHR 0x2032 +/* cl_device_terminate_capability_khr */ +#define CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR (1 << 0) + /* Error codes */ #define CL_CONTEXT_TERMINATED_KHR -1121 @@ -1266,6 +1378,59 @@ typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; #define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232 #define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233 +/*************************************************************** +* cl_ext_image_requirements_info +***************************************************************/ +#if defined(CL_VERSION_3_0) + +#define cl_ext_image_requirements_info 1 +#define CL_EXT_IMAGE_REQUIREMENTS_INFO_EXTENSION_NAME \ + "cl_ext_image_requirements_info" + +/* Types */ +typedef cl_uint cl_image_requirements_info_ext; + +/* cl_image_requirements_info_ext */ +#define CL_IMAGE_REQUIREMENTS_BASE_ADDRESS_ALIGNMENT_EXT 0x1292 +#define CL_IMAGE_REQUIREMENTS_ROW_PITCH_ALIGNMENT_EXT 0x1290 +#define CL_IMAGE_REQUIREMENTS_SIZE_EXT 0x12B2 +#define CL_IMAGE_REQUIREMENTS_MAX_WIDTH_EXT 0x12B3 +#define CL_IMAGE_REQUIREMENTS_MAX_HEIGHT_EXT 0x12B4 +#define CL_IMAGE_REQUIREMENTS_MAX_DEPTH_EXT 0x12B5 +#define CL_IMAGE_REQUIREMENTS_MAX_ARRAY_SIZE_EXT 0x12B6 + +/* Enqueued Commands APIs */ + +typedef cl_int (CL_API_CALL * +clGetImageRequirementsInfoEXT_fn)( + cl_context context, + const cl_mem_properties* properties, + cl_mem_flags flags, + const cl_image_format* image_format, + const cl_image_desc* image_desc, + cl_image_requirements_info_ext param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetImageRequirementsInfoEXT( + cl_context context, + const cl_mem_properties* properties, + cl_mem_flags flags, + const cl_image_format* image_format, + const cl_image_desc* image_desc, + cl_image_requirements_info_ext param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; + +#endif /* CL_NO_PROTOTYPES */ + +#endif /* defined(CL_VERSION_3_0) */ + /*************************************************************** * cl_ext_migrate_memobject ***************************************************************/ @@ -1533,23 +1698,23 @@ typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; #define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) #define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) #define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) -#define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5) +#define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5) #define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_BATCH_QUEUE_SIZE_ARM (1 << 6) /* cl_device_info */ #define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 #define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB -#define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA - -/* cl_kernel_exec_info */ -#define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9 +#define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA /* cl_kernel_exec_info */ #define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 #define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 -#define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8 +#define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8 #define CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM 0x41F1 +/* cl_kernel_info */ +#define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9 + /* cl_queue_properties */ #define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 #define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC @@ -2491,6 +2656,16 @@ clEnqueueWriteHostPipeINTEL( #endif /* CL_NO_PROTOTYPES */ +/*************************************************************** +* cl_intel_queue_no_sync_operations +***************************************************************/ +#define cl_intel_queue_no_sync_operations 1 +#define CL_INTEL_QUEUE_NO_SYNC_OPERATIONS_EXTENSION_NAME \ + "cl_intel_queue_no_sync_operations" + +/* cl_command_queue_properties */ +#define CL_QUEUE_NO_SYNC_OPERATIONS_INTEL (1 << 29) + /*************************************************************** * cl_intel_required_subgroup_size ***************************************************************/ diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index 83beddb8..8afdf287 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -27,6 +27,7 @@ def getDisableWarningIncludeString(include): #if _MSC_VER >=1500 #pragma warning( push ) #pragma warning( disable : 4201 ) +#pragma warning( disable : 5105 ) #endif #endif """ From 057a34b9b6201e4822c5b873ac6d8caee94eded2 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 6 Sep 2022 22:58:10 -0700 Subject: [PATCH 20/40] fix include guards for dx9 header for warning disables --- CL/cl_dx9_media_sharing.h | 12 ++++++++++++ CL/cl_layer.h | 1 + CL/cl_va_api_media_sharing_intel.h | 1 + scripts/cl_ext.h.mako | 1 + scripts/gen_headers.py | 8 +++----- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CL/cl_dx9_media_sharing.h b/CL/cl_dx9_media_sharing.h index f83c494d..ec3feac2 100644 --- a/CL/cl_dx9_media_sharing.h +++ b/CL/cl_dx9_media_sharing.h @@ -22,7 +22,19 @@ */ #if defined(_WIN32) +#if defined(_MSC_VER) +#if _MSC_VER >=1500 +#pragma warning( push ) +#pragma warning( disable : 4201 ) +#pragma warning( disable : 5105 ) +#endif +#endif #include +#if defined(_MSC_VER) +#if _MSC_VER >=1500 +#pragma warning( pop ) +#endif +#endif #endif #include diff --git a/CL/cl_layer.h b/CL/cl_layer.h index d534a71c..3c7e5840 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -22,6 +22,7 @@ */ #include + #include #ifdef __cplusplus diff --git a/CL/cl_va_api_media_sharing_intel.h b/CL/cl_va_api_media_sharing_intel.h index d57fe92a..3c003aae 100644 --- a/CL/cl_va_api_media_sharing_intel.h +++ b/CL/cl_va_api_media_sharing_intel.h @@ -22,6 +22,7 @@ */ #include + #include #ifdef __cplusplus diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index fed2a62b..2f20ad13 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -120,6 +120,7 @@ def isDuplicateName(name): %if includes: ${includes} + %endif #include diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index 8afdf287..a1622f22 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -36,15 +36,13 @@ def getDisableWarningIncludeString(include): #if _MSC_VER >=1500 #pragma warning( pop ) #endif -#endif -""" +#endif""" return warningPush + include + warningPop def getWin32OnlyIncludeString(include): return """#if defined(_WIN32) """ + include + """ -#endif -""" +#endif""" if __name__ == "__main__": args = gen.parse_args() @@ -72,7 +70,7 @@ def getWin32OnlyIncludeString(include): 'cl_intel_sharing_format_query_dx9', }, guard="OPENCL_CL_DX9_MEDIA_SHARING_H_", - includes=getWin32OnlyIncludeString("#include "), + includes=getWin32OnlyIncludeString(getDisableWarningIncludeString("#include ")), generate_pfn_typedefs=False, spec=spec, typedefs=typedefs, From 501c3f89427da20e2d6a19674c72c467e2789255 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 25 Oct 2022 16:34:40 -0700 Subject: [PATCH 21/40] regenerate headers from the latest XML file --- CL/cl_ext.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 31c85945..0814f881 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -1378,6 +1378,16 @@ typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; #define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232 #define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233 +/*************************************************************** +* cl_ext_image_from_buffer +***************************************************************/ +#define cl_ext_image_from_buffer 1 +#define CL_EXT_IMAGE_FROM_BUFFER_EXTENSION_NAME \ + "cl_ext_image_from_buffer" + +/* cl_image_requirements_info_ext */ +#define CL_IMAGE_REQUIREMENTS_SLICE_PITCH_ALIGNMENT_EXT 0x1291 + /*************************************************************** * cl_ext_image_requirements_info ***************************************************************/ @@ -1662,6 +1672,19 @@ clImportMemoryARM( #endif /* CL_NO_PROTOTYPES */ +/*************************************************************** +* cl_arm_job_slot_selection +***************************************************************/ +#define cl_arm_job_slot_selection 1 +#define CL_ARM_JOB_SLOT_SELECTION_EXTENSION_NAME \ + "cl_arm_job_slot_selection" + +/* cl_device_info */ +#define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 + +/* cl_queue_properties */ +#define CL_QUEUE_JOB_SLOT_ARM 0x41E1 + /*************************************************************** * cl_arm_printf ***************************************************************/ From cab5eab98a2f29f621fc92204d4a7da1f690e5ec Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 17 Feb 2023 08:29:06 -0800 Subject: [PATCH 22/40] regenerate headers from the latest XML file --- CL/cl_ext.h | 11 +++++++++++ CL/cl_layer.h | 1 + 2 files changed, 12 insertions(+) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 0814f881..710ee427 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -2286,6 +2286,17 @@ clCreateBufferWithPropertiesINTEL( #endif /* CL_NO_PROTOTYPES */ +/*************************************************************** +* cl_intel_create_mem_object_properties +***************************************************************/ +#define cl_intel_create_mem_object_properties 1 +#define CL_INTEL_CREATE_MEM_OBJECT_PROPERTIES_EXTENSION_NAME \ + "cl_intel_create_mem_object_properties" + +/* cl_mem_properties */ +#define CL_MEM_LOCALLY_UNCACHED_RESOURCE_INTEL 0x4218 +#define CL_MEM_DEVICE_ID_INTEL 0x4219 + /*************************************************************** * cl_intel_device_attribute_query ***************************************************************/ diff --git a/CL/cl_layer.h b/CL/cl_layer.h index 3c7e5840..e0245854 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -41,6 +41,7 @@ typedef cl_uint cl_layer_api_version; /* cl_layer_info */ #define CL_LAYER_API_VERSION 0x4240 +#define CL_LAYER_NAME 0x4241 /* Misc API enums */ #define CL_LAYER_API_VERSION_100 100 From 64ae491b753c74b9e321963529c0c13a5429d7c5 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Mon, 20 Mar 2023 22:11:39 -0700 Subject: [PATCH 23/40] generate extensions in the same order as previously For easier initial review, generate extensions in the same order as the existing files. This can be switched to a more regular order later. --- CL/cl_egl.h | 66 +- CL/cl_ext.h | 3262 ++++++++++++++++++++--------------------- CL/cl_gl.h | 116 +- scripts/cl_ext.h.mako | 121 +- 4 files changed, 1842 insertions(+), 1723 deletions(-) diff --git a/CL/cl_egl.h b/CL/cl_egl.h index 419aa364..0d1bdb9b 100644 --- a/CL/cl_egl.h +++ b/CL/cl_egl.h @@ -27,38 +27,6 @@ extern "C" { #endif -/*************************************************************** -* cl_khr_egl_event -***************************************************************/ -#define cl_khr_egl_event 1 -#define CL_KHR_EGL_EVENT_EXTENSION_NAME \ - "cl_khr_egl_event" - -/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ -typedef void* CLeglDisplayKHR; - -/* CLeglSyncKHR is an opaque handle to an EGLSync object */ -typedef void* CLeglSyncKHR; - - -typedef cl_event (CL_API_CALL * -clCreateEventFromEGLSyncKHR_fn)( - cl_context context, - CLeglSyncKHR sync, - CLeglDisplayKHR display, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromEGLSyncKHR( - cl_context context, - CLeglSyncKHR sync, - CLeglDisplayKHR display, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -#endif /* CL_NO_PROTOTYPES */ - /*************************************************************** * cl_khr_egl_image ***************************************************************/ @@ -79,7 +47,7 @@ clCreateEventFromEGLSyncKHR( typedef void* CLeglImageKHR; /* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ -/* type CLeglDisplayKHR */ +typedef void* CLeglDisplayKHR; /* properties passed to clCreateFromEGLImageKHR */ typedef intptr_t cl_egl_image_properties_khr; @@ -143,6 +111,38 @@ clEnqueueReleaseEGLObjectsKHR( #endif /* CL_NO_PROTOTYPES */ +/*************************************************************** +* cl_khr_egl_event +***************************************************************/ +#define cl_khr_egl_event 1 +#define CL_KHR_EGL_EVENT_EXTENSION_NAME \ + "cl_khr_egl_event" + +/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ +/* type CLeglDisplayKHR */ + +/* CLeglSyncKHR is an opaque handle to an EGLSync object */ +typedef void* CLeglSyncKHR; + + +typedef cl_event (CL_API_CALL * +clCreateEventFromEGLSyncKHR_fn)( + cl_context context, + CLeglSyncKHR sync, + CLeglDisplayKHR display, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateEventFromEGLSyncKHR( + cl_context context, + CLeglSyncKHR sync, + CLeglDisplayKHR display, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#endif /* CL_NO_PROTOTYPES */ + #ifdef __cplusplus } #endif diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 710ee427..de2c3105 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -517,1117 +517,1245 @@ clGetMutableCommandInfoKHR( #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_create_command_queue +* cl_khr_fp64 ***************************************************************/ -#define cl_khr_create_command_queue 1 -#define CL_KHR_CREATE_COMMAND_QUEUE_EXTENSION_NAME \ - "cl_khr_create_command_queue" - -typedef cl_properties cl_queue_properties_khr; - +#define cl_khr_fp64 1 +#define CL_KHR_FP64_EXTENSION_NAME \ + "cl_khr_fp64" -typedef cl_command_queue (CL_API_CALL * -clCreateCommandQueueWithPropertiesKHR_fn)( - cl_context context, - cl_device_id device, - const cl_queue_properties_khr* properties, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; +#if !defined(CL_VERSION_1_2) +/* cl_device_info - defined in CL.h for OpenCL 1.2 and newer */ +#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 -#ifndef CL_NO_PROTOTYPES +#endif /* !defined(CL_VERSION_1_2) */ -extern CL_API_ENTRY cl_command_queue CL_API_CALL -clCreateCommandQueueWithPropertiesKHR( - cl_context context, - cl_device_id device, - const cl_queue_properties_khr* properties, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; +/*************************************************************** +* cl_khr_fp16 +***************************************************************/ +#define cl_khr_fp16 1 +#define CL_KHR_FP16_EXTENSION_NAME \ + "cl_khr_fp16" -#endif /* CL_NO_PROTOTYPES */ +/* cl_device_info */ +#define CL_DEVICE_HALF_FP_CONFIG 0x1033 /*************************************************************** -* cl_khr_depth_images +* cl_APPLE_SetMemObjectDestructor ***************************************************************/ -#define cl_khr_depth_images 1 -#define CL_KHR_DEPTH_IMAGES_EXTENSION_NAME \ - "cl_khr_depth_images" +#define cl_APPLE_SetMemObjectDestructor 1 +#define CL_APPLE_SETMEMOBJECTDESTRUCTOR_EXTENSION_NAME \ + "cl_APPLE_SetMemObjectDestructor" -#if !defined(CL_VERSION_1_2) -/* cl_channel_order - defined in CL.h for OpenCL 1.2 (?) and newer */ -#define CL_DEPTH 0x10BD -#endif /* !defined(CL_VERSION_1_2) */ +typedef cl_int (CL_API_CALL * +clSetMemObjectDestructorAPPLE_fn)( + cl_mem memobj, + void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), + void* user_data) CL_API_SUFFIX__VERSION_1_0; -/*************************************************************** -* cl_khr_device_uuid -***************************************************************/ -#define cl_khr_device_uuid 1 -#define CL_KHR_DEVICE_UUID_EXTENSION_NAME \ - "cl_khr_device_uuid" +#ifndef CL_NO_PROTOTYPES -/* Size Constants */ -#define CL_UUID_SIZE_KHR 16 -#define CL_LUID_SIZE_KHR 8 +extern CL_API_ENTRY cl_int CL_API_CALL +clSetMemObjectDestructorAPPLE( + cl_mem memobj, + void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), + void* user_data) CL_API_SUFFIX__VERSION_1_0; -/* cl_device_info */ -#define CL_DEVICE_UUID_KHR 0x106A -#define CL_DRIVER_UUID_KHR 0x106B -#define CL_DEVICE_LUID_VALID_KHR 0x106C -#define CL_DEVICE_LUID_KHR 0x106D -#define CL_DEVICE_NODE_MASK_KHR 0x106E +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_extended_versioning +* cl_APPLE_ContextLoggingFunctions ***************************************************************/ -#define cl_khr_extended_versioning 1 -#define CL_KHR_EXTENDED_VERSIONING_EXTENSION_NAME \ - "cl_khr_extended_versioning" +#define cl_APPLE_ContextLoggingFunctions 1 +#define CL_APPLE_CONTEXTLOGGINGFUNCTIONS_EXTENSION_NAME \ + "cl_APPLE_ContextLoggingFunctions" -#define CL_VERSION_MAJOR_BITS_KHR 10 -#define CL_VERSION_MINOR_BITS_KHR 10 -#define CL_VERSION_PATCH_BITS_KHR 12 -#define CL_VERSION_MAJOR_MASK_KHR ((1 << CL_VERSION_MAJOR_BITS_KHR) - 1) -#define CL_VERSION_MINOR_MASK_KHR ((1 << CL_VERSION_MINOR_BITS_KHR) - 1) -#define CL_VERSION_PATCH_MASK_KHR ((1 << CL_VERSION_PATCH_BITS_KHR) - 1) +typedef void (CL_API_CALL * +clLogMessagesToSystemLogAPPLE_fn)( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; -#define CL_VERSION_MAJOR_KHR(version) ((version) >> (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) -#define CL_VERSION_MINOR_KHR(version) (((version) >> CL_VERSION_PATCH_BITS_KHR) & CL_VERSION_MINOR_MASK_KHR) -#define CL_VERSION_PATCH_KHR(version) ((version) & CL_VERSION_PATCH_MASK_KHR) +typedef void (CL_API_CALL * +clLogMessagesToStdoutAPPLE_fn)( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; -#define CL_MAKE_VERSION_KHR(major, minor, patch) \ - ((((major) & CL_VERSION_MAJOR_MASK_KHR) << (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) | \ - (((minor) & CL_VERSION_MINOR_MASK_KHR) << CL_VERSION_PATCH_BITS_KHR) | \ - ((patch) & CL_VERSION_PATCH_MASK_KHR)) +typedef void (CL_API_CALL * +clLogMessagesToStderrAPPLE_fn)( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; -#define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 +#ifndef CL_NO_PROTOTYPES -typedef cl_uint cl_version_khr; -typedef struct _cl_name_version_khr { - cl_version_khr version; - char name[CL_NAME_VERSION_MAX_NAME_SIZE_KHR]; -} cl_name_version_khr; +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToSystemLogAPPLE( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; -/* cl_platform_info */ -#define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 -#define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToStdoutAPPLE( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; -/* cl_device_info */ -#define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E -#define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F -#define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 -#define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 -#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToStderrAPPLE( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_external_memory +* cl_khr_icd ***************************************************************/ -#define cl_khr_external_memory 1 -#define CL_KHR_EXTERNAL_MEMORY_EXTENSION_NAME \ - "cl_khr_external_memory" - -typedef cl_uint cl_external_memory_handle_type_khr; +#define cl_khr_icd 1 +#define CL_KHR_ICD_EXTENSION_NAME \ + "cl_khr_icd" /* cl_platform_info */ -#define CL_PLATFORM_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x2044 - -/* cl_device_info */ -#define CL_DEVICE_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x204F - -/* cl_mem_properties */ -#define CL_DEVICE_HANDLE_LIST_KHR 0x2051 -#define CL_DEVICE_HANDLE_LIST_END_KHR 0 - -/* cl_command_type */ -#define CL_COMMAND_ACQUIRE_EXTERNAL_MEM_OBJECTS_KHR 0x2047 -#define CL_COMMAND_RELEASE_EXTERNAL_MEM_OBJECTS_KHR 0x2048 +#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 +/* Error codes */ +#define CL_PLATFORM_NOT_FOUND_KHR -1001 -typedef cl_int (CL_API_CALL * -clEnqueueAcquireExternalMemObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_3_0; typedef cl_int (CL_API_CALL * -clEnqueueReleaseExternalMemObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_3_0; +clIcdGetPlatformIDsKHR_fn)( + cl_uint num_entries, + cl_platform_id* platforms, + cl_uint* num_platforms) ; #ifndef CL_NO_PROTOTYPES extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireExternalMemObjectsKHR( - cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_3_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseExternalMemObjectsKHR( - cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_3_0; +clIcdGetPlatformIDsKHR( + cl_uint num_entries, + cl_platform_id* platforms, + cl_uint* num_platforms) ; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_external_memory_dma_buf +* cl_khr_il_program ***************************************************************/ -#define cl_khr_external_memory_dma_buf 1 -#define CL_KHR_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME \ - "cl_khr_external_memory_dma_buf" +#define cl_khr_il_program 1 +#define CL_KHR_IL_PROGRAM_EXTENSION_NAME \ + "cl_khr_il_program" -/* cl_external_memory_handle_type_khr */ -#define CL_EXTERNAL_MEMORY_HANDLE_DMA_BUF_KHR 0x2067 +/* cl_device_info */ +#define CL_DEVICE_IL_VERSION_KHR 0x105B -/*************************************************************** -* cl_khr_external_memory_dx -***************************************************************/ -#define cl_khr_external_memory_dx 1 -#define CL_KHR_EXTERNAL_MEMORY_DX_EXTENSION_NAME \ - "cl_khr_external_memory_dx" +/* cl_program_info */ +#define CL_PROGRAM_IL_KHR 0x1169 -/* cl_external_memory_handle_type_khr */ -#define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR 0x2063 -#define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KMT_KHR 0x2064 -#define CL_EXTERNAL_MEMORY_HANDLE_D3D12_HEAP_KHR 0x2065 -#define CL_EXTERNAL_MEMORY_HANDLE_D3D12_RESOURCE_KHR 0x2066 -/*************************************************************** -* cl_khr_external_memory_opaque_fd -***************************************************************/ -#define cl_khr_external_memory_opaque_fd 1 -#define CL_KHR_EXTERNAL_MEMORY_OPAQUE_FD_EXTENSION_NAME \ - "cl_khr_external_memory_opaque_fd" +typedef cl_program (CL_API_CALL * +clCreateProgramWithILKHR_fn)( + cl_context context, + const void* il, + size_t length, + cl_int* errcode_ret) ; -/* cl_external_memory_handle_type_khr */ -#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_FD_KHR 0x2060 +#ifndef CL_NO_PROTOTYPES -/*************************************************************** -* cl_khr_external_memory_win32 -***************************************************************/ -#define cl_khr_external_memory_win32 1 -#define CL_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME \ - "cl_khr_external_memory_win32" - -/* cl_external_memory_handle_type_khr */ -#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR 0x2061 -#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2062 - -/*************************************************************** -* cl_khr_external_semaphore -***************************************************************/ -#define cl_khr_external_semaphore 1 -#define CL_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME \ - "cl_khr_external_semaphore" - -typedef struct _cl_semaphore_khr * cl_semaphore_khr; -typedef cl_uint cl_external_semaphore_handle_type_khr; - -/* cl_platform_info */ -#define CL_PLATFORM_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x2037 -#define CL_PLATFORM_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x2038 - -/* cl_device_info */ -#define CL_DEVICE_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x204D -#define CL_DEVICE_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x204E - -/* cl_semaphore_properties_khr */ -#define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x203F -#define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_LIST_END_KHR 0 - - -typedef cl_int (CL_API_CALL * -clGetSemaphoreHandleForTypeKHR_fn)( - cl_semaphore_khr sema_object, - cl_device_id device, - cl_external_semaphore_handle_type_khr handle_type, - size_t handle_size, - void* handle_ptr, - size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; - -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSemaphoreHandleForTypeKHR( - cl_semaphore_khr sema_object, - cl_device_id device, - cl_external_semaphore_handle_type_khr handle_type, - size_t handle_size, - void* handle_ptr, - size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; +extern CL_API_ENTRY cl_program CL_API_CALL +clCreateProgramWithILKHR( + cl_context context, + const void* il, + size_t length, + cl_int* errcode_ret) ; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_external_semaphore_dx_fence -***************************************************************/ -#define cl_khr_external_semaphore_dx_fence 1 -#define CL_KHR_EXTERNAL_SEMAPHORE_DX_FENCE_EXTENSION_NAME \ - "cl_khr_external_semaphore_dx_fence" - -/* cl_external_semaphore_handle_type_khr */ -#define CL_SEMAPHORE_HANDLE_D3D12_FENCE_KHR 0x2059 - -/*************************************************************** -* cl_khr_external_semaphore_opaque_fd +* cl_khr_image2D_from_buffer ***************************************************************/ -#define cl_khr_external_semaphore_opaque_fd 1 -#define CL_KHR_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXTENSION_NAME \ - "cl_khr_external_semaphore_opaque_fd" +#define cl_khr_image2D_from_buffer 1 +#define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \ + "cl_khr_image2D_from_buffer" -/* cl_external_semaphore_handle_type_khr */ -#define CL_SEMAPHORE_HANDLE_OPAQUE_FD_KHR 0x2055 +/* cl_device_info */ +#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A +#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B /*************************************************************** -* cl_khr_external_semaphore_sync_fd +* cl_khr_initialize_memory ***************************************************************/ -#define cl_khr_external_semaphore_sync_fd 1 -#define CL_KHR_EXTERNAL_SEMAPHORE_SYNC_FD_EXTENSION_NAME \ - "cl_khr_external_semaphore_sync_fd" +#define cl_khr_initialize_memory 1 +#define CL_KHR_INITIALIZE_MEMORY_EXTENSION_NAME \ + "cl_khr_initialize_memory" -/* cl_external_semaphore_handle_type_khr */ -#define CL_SEMAPHORE_HANDLE_SYNC_FD_KHR 0x2058 +/* Interop tokens */ +#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 /*************************************************************** -* cl_khr_external_semaphore_win32 +* cl_khr_terminate_context ***************************************************************/ -#define cl_khr_external_semaphore_win32 1 -#define CL_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME \ - "cl_khr_external_semaphore_win32" - -/* cl_external_semaphore_handle_type_khr */ -#define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR 0x2056 -#define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2057 +#define cl_khr_terminate_context 1 +#define CL_KHR_TERMINATE_CONTEXT_EXTENSION_NAME \ + "cl_khr_terminate_context" -/*************************************************************** -* cl_khr_fp16 -***************************************************************/ -#define cl_khr_fp16 1 -#define CL_KHR_FP16_EXTENSION_NAME \ - "cl_khr_fp16" +typedef cl_bitfield cl_device_terminate_capability_khr; /* cl_device_info */ -#define CL_DEVICE_HALF_FP_CONFIG 0x1033 - -/*************************************************************** -* cl_khr_fp64 -***************************************************************/ -#define cl_khr_fp64 1 -#define CL_KHR_FP64_EXTENSION_NAME \ - "cl_khr_fp64" - -#if !defined(CL_VERSION_1_2) -/* cl_device_info - defined in CL.h for OpenCL 1.2 and newer */ -#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 - -#endif /* !defined(CL_VERSION_1_2) */ +#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 -/*************************************************************** -* cl_khr_icd -***************************************************************/ -#define cl_khr_icd 1 -#define CL_KHR_ICD_EXTENSION_NAME \ - "cl_khr_icd" +/* cl_context_properties */ +#define CL_CONTEXT_TERMINATE_KHR 0x2032 -/* cl_platform_info */ -#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 +/* cl_device_terminate_capability_khr */ +#define CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR (1 << 0) /* Error codes */ -#define CL_PLATFORM_NOT_FOUND_KHR -1001 +#define CL_CONTEXT_TERMINATED_KHR -1121 typedef cl_int (CL_API_CALL * -clIcdGetPlatformIDsKHR_fn)( - cl_uint num_entries, - cl_platform_id* platforms, - cl_uint* num_platforms) ; +clTerminateContextKHR_fn)( + cl_context context) CL_API_SUFFIX__VERSION_1_2; #ifndef CL_NO_PROTOTYPES extern CL_API_ENTRY cl_int CL_API_CALL -clIcdGetPlatformIDsKHR( - cl_uint num_entries, - cl_platform_id* platforms, - cl_uint* num_platforms) ; +clTerminateContextKHR( + cl_context context) CL_API_SUFFIX__VERSION_1_2; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_il_program +* cl_khr_spir ***************************************************************/ -#define cl_khr_il_program 1 -#define CL_KHR_IL_PROGRAM_EXTENSION_NAME \ - "cl_khr_il_program" +#define cl_khr_spir 1 +#define CL_KHR_SPIR_EXTENSION_NAME \ + "cl_khr_spir" /* cl_device_info */ -#define CL_DEVICE_IL_VERSION_KHR 0x105B +#define CL_DEVICE_SPIR_VERSIONS 0x40E0 -/* cl_program_info */ -#define CL_PROGRAM_IL_KHR 0x1169 +/* cl_program_binary_type */ +#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 +/*************************************************************** +* cl_khr_create_command_queue +***************************************************************/ +#define cl_khr_create_command_queue 1 +#define CL_KHR_CREATE_COMMAND_QUEUE_EXTENSION_NAME \ + "cl_khr_create_command_queue" -typedef cl_program (CL_API_CALL * -clCreateProgramWithILKHR_fn)( +typedef cl_properties cl_queue_properties_khr; + + +typedef cl_command_queue (CL_API_CALL * +clCreateCommandQueueWithPropertiesKHR_fn)( cl_context context, - const void* il, - size_t length, - cl_int* errcode_ret) ; + cl_device_id device, + const cl_queue_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; #ifndef CL_NO_PROTOTYPES -extern CL_API_ENTRY cl_program CL_API_CALL -clCreateProgramWithILKHR( +extern CL_API_ENTRY cl_command_queue CL_API_CALL +clCreateCommandQueueWithPropertiesKHR( cl_context context, - const void* il, - size_t length, - cl_int* errcode_ret) ; + cl_device_id device, + const cl_queue_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_image2D_from_buffer +* cl_nv_device_attribute_query ***************************************************************/ -#define cl_khr_image2D_from_buffer 1 -#define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \ - "cl_khr_image2D_from_buffer" +#define cl_nv_device_attribute_query 1 +#define CL_NV_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ + "cl_nv_device_attribute_query" /* cl_device_info */ -#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A -#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B +#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 +#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 +#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 +#define CL_DEVICE_WARP_SIZE_NV 0x4003 +#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 +#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 +#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 /*************************************************************** -* cl_khr_initialize_memory +* cl_amd_device_attribute_query ***************************************************************/ -#define cl_khr_initialize_memory 1 -#define CL_KHR_INITIALIZE_MEMORY_EXTENSION_NAME \ - "cl_khr_initialize_memory" +#define cl_amd_device_attribute_query 1 +#define CL_AMD_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ + "cl_amd_device_attribute_query" -/* Interop tokens */ -#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 +/* cl_device_info */ +#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 +#define CL_DEVICE_TOPOLOGY_AMD 0x4037 +#define CL_DEVICE_BOARD_NAME_AMD 0x4038 +#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 +#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 +#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 +#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 +#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 +#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 +#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 +#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 +#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 +#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 +#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 +#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A +#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B +#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C +#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 +#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 +#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 +#define CL_DEVICE_PCIE_ID_AMD 0x4034 /*************************************************************** -* cl_khr_integer_dot_product +* cl_arm_printf ***************************************************************/ -#define cl_khr_integer_dot_product 1 -#define CL_KHR_INTEGER_DOT_PRODUCT_EXTENSION_NAME \ - "cl_khr_integer_dot_product" +#define cl_arm_printf 1 +#define CL_ARM_PRINTF_EXTENSION_NAME \ + "cl_arm_printf" -typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr; -typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { - cl_bool signed_accelerated; - cl_bool unsigned_accelerated; - cl_bool mixed_signedness_accelerated; - cl_bool accumulating_saturating_signed_accelerated; - cl_bool accumulating_saturating_unsigned_accelerated; - cl_bool accumulating_saturating_mixed_signedness_accelerated; -} cl_device_integer_dot_product_acceleration_properties_khr; - -/* cl_device_integer_dot_product_capabilities_khr */ -#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0) -#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) - -/* cl_device_info */ -#define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073 -#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR 0x1074 -#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR 0x1075 +/* cl_context_properties */ +#define CL_PRINTF_CALLBACK_ARM 0x40B0 +#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 /*************************************************************** -* cl_khr_mipmap_image +* cl_ext_device_fission ***************************************************************/ -#define cl_khr_mipmap_image 1 -#define CL_KHR_MIPMAP_IMAGE_EXTENSION_NAME \ - "cl_khr_mipmap_image" - -/* cl_sampler_properties */ -#define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 -#define CL_SAMPLER_LOD_MIN_KHR 0x1156 -#define CL_SAMPLER_LOD_MAX_KHR 0x1157 +#define cl_ext_device_fission 1 +#define CL_EXT_DEVICE_FISSION_EXTENSION_NAME \ + "cl_ext_device_fission" -/*************************************************************** -* cl_khr_pci_bus_info -***************************************************************/ -#define cl_khr_pci_bus_info 1 -#define CL_KHR_PCI_BUS_INFO_EXTENSION_NAME \ - "cl_khr_pci_bus_info" +typedef cl_ulong cl_device_partition_property_ext; -typedef struct _cl_device_pci_bus_info_khr { - cl_uint pci_domain; - cl_uint pci_bus; - cl_uint pci_device; - cl_uint pci_function; -} cl_device_pci_bus_info_khr; +/* Error codes */ +#define CL_DEVICE_PARTITION_FAILED_EXT -1057 +#define CL_INVALID_PARTITION_COUNT_EXT -1058 +#define CL_INVALID_PARTITION_NAME_EXT -1059 /* cl_device_info */ -#define CL_DEVICE_PCI_BUS_INFO_KHR 0x410F +#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 +#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 +#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 +#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 +#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 -/*************************************************************** -* cl_khr_priority_hints -***************************************************************/ -#define cl_khr_priority_hints 1 -#define CL_KHR_PRIORITY_HINTS_EXTENSION_NAME \ - "cl_khr_priority_hints" +/* cl_device_partition_property_ext */ +#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 +#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 +#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 +#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 -/* To be used by clGetEventInfo */ -typedef cl_uint cl_queue_priority_khr; +/* cl_device_partition_property_ext - affinity domains */ +#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 +#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 +#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 +#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 +#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 +#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 -/* cl_queue_properties */ -#define CL_QUEUE_PRIORITY_KHR 0x1096 +/* cl_device_partition_property_ext - list terminators */ +#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext)0) +#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext)0) +#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext)0 - 1) -/* cl_queue_priority_khr */ -#define CL_QUEUE_PRIORITY_HIGH_KHR (1 << 0) -#define CL_QUEUE_PRIORITY_MED_KHR (1 << 1) -#define CL_QUEUE_PRIORITY_LOW_KHR (1 << 2) -/*************************************************************** -* cl_khr_semaphore -***************************************************************/ -#define cl_khr_semaphore 1 -#define CL_KHR_SEMAPHORE_EXTENSION_NAME \ - "cl_khr_semaphore" +typedef cl_int (CL_API_CALL * +clReleaseDeviceEXT_fn)( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -/* type cl_semaphore_khr */ -typedef cl_properties cl_semaphore_properties_khr; -typedef cl_uint cl_semaphore_info_khr; -typedef cl_uint cl_semaphore_type_khr; -typedef cl_ulong cl_semaphore_payload_khr; +typedef cl_int (CL_API_CALL * +clRetainDeviceEXT_fn)( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -/* cl_semaphore_type */ -#define CL_SEMAPHORE_TYPE_BINARY_KHR 1 +typedef cl_int (CL_API_CALL * +clCreateSubDevicesEXT_fn)( + cl_device_id in_device, + const cl_device_partition_property_ext* properties, + cl_uint num_entries, + cl_device_id* out_devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -/* cl_platform_info */ -#define CL_PLATFORM_SEMAPHORE_TYPES_KHR 0x2036 +#ifndef CL_NO_PROTOTYPES -/* cl_device_info */ -#define CL_DEVICE_SEMAPHORE_TYPES_KHR 0x204C +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseDeviceEXT( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -/* cl_semaphore_info_khr */ -#define CL_SEMAPHORE_CONTEXT_KHR 0x2039 -#define CL_SEMAPHORE_REFERENCE_COUNT_KHR 0x203A -#define CL_SEMAPHORE_PROPERTIES_KHR 0x203B -#define CL_SEMAPHORE_PAYLOAD_KHR 0x203C +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainDeviceEXT( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -/* cl_semaphore_info_khr or cl_semaphore_properties_khr */ -#define CL_SEMAPHORE_TYPE_KHR 0x203D -/* enum CL_DEVICE_HANDLE_LIST_KHR */ -/* enum CL_DEVICE_HANDLE_LIST_END_KHR */ +extern CL_API_ENTRY cl_int CL_API_CALL +clCreateSubDevicesEXT( + cl_device_id in_device, + const cl_device_partition_property_ext* properties, + cl_uint num_entries, + cl_device_id* out_devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -/* cl_command_type */ -#define CL_COMMAND_SEMAPHORE_WAIT_KHR 0x2042 -#define CL_COMMAND_SEMAPHORE_SIGNAL_KHR 0x2043 +#endif /* CL_NO_PROTOTYPES */ -/* Error codes */ -#define CL_INVALID_SEMAPHORE_KHR -1142 +/*************************************************************** +* cl_ext_migrate_memobject +***************************************************************/ +#define cl_ext_migrate_memobject 1 +#define CL_EXT_MIGRATE_MEMOBJECT_EXTENSION_NAME \ + "cl_ext_migrate_memobject" +typedef cl_bitfield cl_mem_migration_flags_ext; -typedef cl_semaphore_khr (CL_API_CALL * -clCreateSemaphoreWithPropertiesKHR_fn)( - cl_context context, - const cl_semaphore_properties_khr* sema_props, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; +/* cl_mem_migration_flags_ext */ +#define CL_MIGRATE_MEM_OBJECT_HOST_EXT (1 << 0) + +/* cl_command_type */ +#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 -typedef cl_int (CL_API_CALL * -clEnqueueWaitSemaphoresKHR_fn)( - cl_command_queue command_queue, - cl_uint num_sema_objects, - const cl_semaphore_khr* sema_objects, - const cl_semaphore_payload_khr* sema_payload_list, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; typedef cl_int (CL_API_CALL * -clEnqueueSignalSemaphoresKHR_fn)( +clEnqueueMigrateMemObjectEXT_fn)( cl_command_queue command_queue, - cl_uint num_sema_objects, - const cl_semaphore_khr* sema_objects, - const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_mem_migration_flags_ext flags, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * -clGetSemaphoreInfoKHR_fn)( - cl_semaphore_khr sema_object, - cl_semaphore_info_khr param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * -clReleaseSemaphoreKHR_fn)( - cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * -clRetainSemaphoreKHR_fn)( - cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + cl_event* event) ; #ifndef CL_NO_PROTOTYPES -extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL -clCreateSemaphoreWithPropertiesKHR( - cl_context context, - const cl_semaphore_properties_khr* sema_props, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueWaitSemaphoresKHR( - cl_command_queue command_queue, - cl_uint num_sema_objects, - const cl_semaphore_khr* sema_objects, - const cl_semaphore_payload_khr* sema_payload_list, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSignalSemaphoresKHR( +clEnqueueMigrateMemObjectEXT( cl_command_queue command_queue, - cl_uint num_sema_objects, - const cl_semaphore_khr* sema_objects, - const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_mem_migration_flags_ext flags, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetSemaphoreInfoKHR( - cl_semaphore_khr sema_object, - cl_semaphore_info_khr param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseSemaphoreKHR( - cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainSemaphoreKHR( - cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + cl_event* event) ; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_spir +* cl_ext_cxx_for_opencl ***************************************************************/ -#define cl_khr_spir 1 -#define CL_KHR_SPIR_EXTENSION_NAME \ - "cl_khr_spir" +#define cl_ext_cxx_for_opencl 1 +#define CL_EXT_CXX_FOR_OPENCL_EXTENSION_NAME \ + "cl_ext_cxx_for_opencl" /* cl_device_info */ -#define CL_DEVICE_SPIR_VERSIONS 0x40E0 - -/* cl_program_binary_type */ -#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 +#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 /*************************************************************** -* cl_khr_subgroup_named_barrier +* cl_qcom_ext_host_ptr ***************************************************************/ -#define cl_khr_subgroup_named_barrier 1 -#define CL_KHR_SUBGROUP_NAMED_BARRIER_EXTENSION_NAME \ - "cl_khr_subgroup_named_barrier" - -/* cl_device_info */ -#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 +#define cl_qcom_ext_host_ptr 1 +#define CL_QCOM_EXT_HOST_PTR_EXTENSION_NAME \ + "cl_qcom_ext_host_ptr" -/*************************************************************** -* cl_khr_subgroups -***************************************************************/ -#define cl_khr_subgroups 1 -#define CL_KHR_SUBGROUPS_EXTENSION_NAME \ - "cl_khr_subgroups" +typedef cl_uint cl_image_pitch_info_qcom; +typedef struct _cl_mem_ext_host_ptr { + cl_uint allocation_type; + cl_uint host_cache_policy; +} cl_mem_ext_host_ptr; -#if !defined(CL_VERSION_2_1) -/* defined in CL.h for OpenCL 2.1 and newer */ -typedef cl_uint cl_kernel_sub_group_info; +/* cl_mem_flags */ +#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) -#endif /* !defined(CL_VERSION_2_1) */ +/* cl_device_info */ +#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 +#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 -/* cl_kernel_sub_group_info */ -#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 -#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 +/* cl_image_pitch_info_qcom */ +#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 +#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 + +/* cl_uint host_cache_policy */ +#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 +#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 +#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 +#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 typedef cl_int (CL_API_CALL * -clGetKernelSubGroupInfoKHR_fn)( - cl_kernel in_kernel, - cl_device_id in_device, - cl_kernel_sub_group_info param_name, - size_t input_value_size, - const void* input_value, +clGetDeviceImageInfoQCOM_fn)( + cl_device_id device, + size_t image_width, + size_t image_height, + const cl_image_format* image_format, + cl_image_pitch_info_qcom param_name, size_t param_value_size, void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; + size_t* param_value_size_ret) ; #ifndef CL_NO_PROTOTYPES extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSubGroupInfoKHR( - cl_kernel in_kernel, - cl_device_id in_device, - cl_kernel_sub_group_info param_name, - size_t input_value_size, - const void* input_value, +clGetDeviceImageInfoQCOM( + cl_device_id device, + size_t image_width, + size_t image_height, + const cl_image_format* image_format, + cl_image_pitch_info_qcom param_name, size_t param_value_size, void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; + size_t* param_value_size_ret) ; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_suggested_local_work_size +* cl_qcom_ext_host_ptr_iocoherent ***************************************************************/ -#define cl_khr_suggested_local_work_size 1 -#define CL_KHR_SUGGESTED_LOCAL_WORK_SIZE_EXTENSION_NAME \ - "cl_khr_suggested_local_work_size" - - -typedef cl_int (CL_API_CALL * -clGetKernelSuggestedLocalWorkSizeKHR_fn)( - cl_command_queue command_queue, - cl_kernel kernel, - cl_uint work_dim, - const size_t* global_work_offset, - const size_t* global_work_size, - size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; - -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSuggestedLocalWorkSizeKHR( - cl_command_queue command_queue, - cl_kernel kernel, - cl_uint work_dim, - const size_t* global_work_offset, - const size_t* global_work_size, - size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; +#define cl_qcom_ext_host_ptr_iocoherent 1 +#define CL_QCOM_EXT_HOST_PTR_IOCOHERENT_EXTENSION_NAME \ + "cl_qcom_ext_host_ptr_iocoherent" -#endif /* CL_NO_PROTOTYPES */ +/* cl_uint host_cache_policy */ +#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 /*************************************************************** -* cl_khr_terminate_context +* cl_qcom_ion_host_ptr ***************************************************************/ -#define cl_khr_terminate_context 1 -#define CL_KHR_TERMINATE_CONTEXT_EXTENSION_NAME \ - "cl_khr_terminate_context" - -typedef cl_bitfield cl_device_terminate_capability_khr; - -/* cl_device_info */ -#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 - -/* cl_context_properties */ -#define CL_CONTEXT_TERMINATE_KHR 0x2032 - -/* cl_device_terminate_capability_khr */ -#define CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR (1 << 0) - -/* Error codes */ -#define CL_CONTEXT_TERMINATED_KHR -1121 +#define cl_qcom_ion_host_ptr 1 +#define CL_QCOM_ION_HOST_PTR_EXTENSION_NAME \ + "cl_qcom_ion_host_ptr" +/* type cl_mem_ext_host_ptr */ +typedef struct _cl_mem_ion_host_ptr { + cl_mem_ext_host_ptr ext_host_ptr; + int ion_filedesc; + void* ion_hostptr; +} cl_mem_ion_host_ptr; -typedef cl_int (CL_API_CALL * -clTerminateContextKHR_fn)( - cl_context context) CL_API_SUFFIX__VERSION_1_2; +/* cl_uint allocation_type */ +#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 -#ifndef CL_NO_PROTOTYPES +/*************************************************************** +* cl_qcom_android_native_buffer_host_ptr +***************************************************************/ +#define cl_qcom_android_native_buffer_host_ptr 1 +#define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR_EXTENSION_NAME \ + "cl_qcom_android_native_buffer_host_ptr" -extern CL_API_ENTRY cl_int CL_API_CALL -clTerminateContextKHR( - cl_context context) CL_API_SUFFIX__VERSION_1_2; +/* type cl_mem_ext_host_ptr */ +typedef struct _cl_mem_android_native_buffer_host_ptr { + cl_mem_ext_host_ptr ext_host_ptr; + void* anb_ptr; +} cl_mem_android_native_buffer_host_ptr; -#endif /* CL_NO_PROTOTYPES */ +/* cl_uint allocation_type */ +#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 /*************************************************************** -* cl_khr_throttle_hints +* cl_img_yuv_image ***************************************************************/ -#define cl_khr_throttle_hints 1 -#define CL_KHR_THROTTLE_HINTS_EXTENSION_NAME \ - "cl_khr_throttle_hints" - -/* To be used by clGetEventInfo */ -typedef cl_uint cl_queue_throttle_khr; - -/* cl_queue_properties */ -#define CL_QUEUE_THROTTLE_KHR 0x1097 +#define cl_img_yuv_image 1 +#define CL_IMG_YUV_IMAGE_EXTENSION_NAME \ + "cl_img_yuv_image" -/* cl_queue_throttle_khr */ -#define CL_QUEUE_THROTTLE_HIGH_KHR (1 << 0) -#define CL_QUEUE_THROTTLE_MED_KHR (1 << 1) -#define CL_QUEUE_THROTTLE_LOW_KHR (1 << 2) +/* cl_channel_order */ +#define CL_NV21_IMG 0x40D0 +#define CL_YV12_IMG 0x40D1 /*************************************************************** -* cl_ext_cxx_for_opencl +* cl_img_cached_allocations ***************************************************************/ -#define cl_ext_cxx_for_opencl 1 -#define CL_EXT_CXX_FOR_OPENCL_EXTENSION_NAME \ - "cl_ext_cxx_for_opencl" +#define cl_img_cached_allocations 1 +#define CL_IMG_CACHED_ALLOCATIONS_EXTENSION_NAME \ + "cl_img_cached_allocations" -/* cl_device_info */ -#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 +/* cl_mem_flags */ +#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) +#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) /*************************************************************** -* cl_ext_device_fission +* cl_img_use_gralloc_ptr ***************************************************************/ -#define cl_ext_device_fission 1 -#define CL_EXT_DEVICE_FISSION_EXTENSION_NAME \ - "cl_ext_device_fission" - -typedef cl_ulong cl_device_partition_property_ext; +#define cl_img_use_gralloc_ptr 1 +#define CL_IMG_USE_GRALLOC_PTR_EXTENSION_NAME \ + "cl_img_use_gralloc_ptr" /* Error codes */ -#define CL_DEVICE_PARTITION_FAILED_EXT -1057 -#define CL_INVALID_PARTITION_COUNT_EXT -1058 -#define CL_INVALID_PARTITION_NAME_EXT -1059 - -/* cl_device_info */ -#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 -#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 -#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 -#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 -#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 - -/* cl_device_partition_property_ext */ -#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 -#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 -#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 -#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 - -/* cl_device_partition_property_ext - affinity domains */ -#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 -#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 -#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 -#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 -#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 -#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 +#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 +#define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 -/* cl_device_partition_property_ext - list terminators */ -#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext)0) -#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext)0) -#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext)0 - 1) +/* cl_mem_flags */ +#define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 +#define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 -typedef cl_int (CL_API_CALL * -clReleaseDeviceEXT_fn)( - cl_device_id device) CL_API_SUFFIX__VERSION_1_1; typedef cl_int (CL_API_CALL * -clRetainDeviceEXT_fn)( - cl_device_id device) CL_API_SUFFIX__VERSION_1_1; +clEnqueueAcquireGrallocObjectsIMG_fn)( + 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_API_SUFFIX__VERSION_1_2; typedef cl_int (CL_API_CALL * -clCreateSubDevicesEXT_fn)( - cl_device_id in_device, - const cl_device_partition_property_ext* properties, - cl_uint num_entries, - cl_device_id* out_devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; +clEnqueueReleaseGrallocObjectsIMG_fn)( + 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_API_SUFFIX__VERSION_1_2; #ifndef CL_NO_PROTOTYPES extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseDeviceEXT( - cl_device_id device) CL_API_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainDeviceEXT( - cl_device_id device) CL_API_SUFFIX__VERSION_1_1; +clEnqueueAcquireGrallocObjectsIMG( + 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_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL -clCreateSubDevicesEXT( - cl_device_id in_device, - const cl_device_partition_property_ext* properties, - cl_uint num_entries, - cl_device_id* out_devices, - cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; +clEnqueueReleaseGrallocObjectsIMG( + 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_API_SUFFIX__VERSION_1_2; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_ext_float_atomics +* cl_img_generate_mipmap ***************************************************************/ -#define cl_ext_float_atomics 1 -#define CL_EXT_FLOAT_ATOMICS_EXTENSION_NAME \ - "cl_ext_float_atomics" +#define cl_img_generate_mipmap 1 +#define CL_IMG_GENERATE_MIPMAP_EXTENSION_NAME \ + "cl_img_generate_mipmap" -typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; +typedef cl_uint cl_mipmap_filter_mode_img; -/* cl_device_fp_atomic_capabilities_ext */ -#define CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 0) -#define CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT (1 << 1) -#define CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT (1 << 2) -#define CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 16) -#define CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT (1 << 17) -#define CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT (1 << 18) +/* cl_mipmap_filter_mode_img */ +#define CL_MIPMAP_FILTER_ANY_IMG 0x0 +#define CL_MIPMAP_FILTER_BOX_IMG 0x1 -/* cl_device_info */ -#define CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT 0x4231 -#define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232 -#define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233 +/* cl_command_type */ +#define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 + + +typedef cl_int (CL_API_CALL * +clEnqueueGenerateMipmapIMG_fn)( + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_image, + cl_mipmap_filter_mode_img mipmap_filter_mode, + const size_t* array_region, + const size_t* mip_region, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueGenerateMipmapIMG( + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_image, + cl_mipmap_filter_mode_img mipmap_filter_mode, + const size_t* array_region, + const size_t* mip_region, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_ext_image_from_buffer +* cl_img_mem_properties ***************************************************************/ -#define cl_ext_image_from_buffer 1 -#define CL_EXT_IMAGE_FROM_BUFFER_EXTENSION_NAME \ - "cl_ext_image_from_buffer" +#define cl_img_mem_properties 1 +#define CL_IMG_MEM_PROPERTIES_EXTENSION_NAME \ + "cl_img_mem_properties" -/* cl_image_requirements_info_ext */ -#define CL_IMAGE_REQUIREMENTS_SLICE_PITCH_ALIGNMENT_EXT 0x1291 +/* cl_mem_properties */ +#define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 + +/* cl_mem_alloc_flags_img */ +#define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) /*************************************************************** -* cl_ext_image_requirements_info +* cl_khr_subgroups ***************************************************************/ -#if defined(CL_VERSION_3_0) +#define cl_khr_subgroups 1 +#define CL_KHR_SUBGROUPS_EXTENSION_NAME \ + "cl_khr_subgroups" -#define cl_ext_image_requirements_info 1 -#define CL_EXT_IMAGE_REQUIREMENTS_INFO_EXTENSION_NAME \ - "cl_ext_image_requirements_info" +#if !defined(CL_VERSION_2_1) +/* defined in CL.h for OpenCL 2.1 and newer */ +typedef cl_uint cl_kernel_sub_group_info; -/* Types */ -typedef cl_uint cl_image_requirements_info_ext; +#endif /* !defined(CL_VERSION_2_1) */ -/* cl_image_requirements_info_ext */ -#define CL_IMAGE_REQUIREMENTS_BASE_ADDRESS_ALIGNMENT_EXT 0x1292 -#define CL_IMAGE_REQUIREMENTS_ROW_PITCH_ALIGNMENT_EXT 0x1290 -#define CL_IMAGE_REQUIREMENTS_SIZE_EXT 0x12B2 -#define CL_IMAGE_REQUIREMENTS_MAX_WIDTH_EXT 0x12B3 -#define CL_IMAGE_REQUIREMENTS_MAX_HEIGHT_EXT 0x12B4 -#define CL_IMAGE_REQUIREMENTS_MAX_DEPTH_EXT 0x12B5 -#define CL_IMAGE_REQUIREMENTS_MAX_ARRAY_SIZE_EXT 0x12B6 +/* cl_kernel_sub_group_info */ +#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 +#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 -/* Enqueued Commands APIs */ typedef cl_int (CL_API_CALL * -clGetImageRequirementsInfoEXT_fn)( - cl_context context, - const cl_mem_properties* properties, - cl_mem_flags flags, - const cl_image_format* image_format, - const cl_image_desc* image_desc, - cl_image_requirements_info_ext param_name, +clGetKernelSubGroupInfoKHR_fn)( + cl_kernel in_kernel, + cl_device_id in_device, + cl_kernel_sub_group_info param_name, + size_t input_value_size, + const void* input_value, size_t param_value_size, void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; #ifndef CL_NO_PROTOTYPES extern CL_API_ENTRY cl_int CL_API_CALL -clGetImageRequirementsInfoEXT( - cl_context context, - const cl_mem_properties* properties, - cl_mem_flags flags, - const cl_image_format* image_format, - const cl_image_desc* image_desc, - cl_image_requirements_info_ext param_name, +clGetKernelSubGroupInfoKHR( + cl_kernel in_kernel, + cl_device_id in_device, + cl_kernel_sub_group_info param_name, + size_t input_value_size, + const void* input_value, size_t param_value_size, void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; #endif /* CL_NO_PROTOTYPES */ -#endif /* defined(CL_VERSION_3_0) */ +/*************************************************************** +* cl_khr_mipmap_image +***************************************************************/ +#define cl_khr_mipmap_image 1 +#define CL_KHR_MIPMAP_IMAGE_EXTENSION_NAME \ + "cl_khr_mipmap_image" + +/* cl_sampler_properties */ +#define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 +#define CL_SAMPLER_LOD_MIN_KHR 0x1156 +#define CL_SAMPLER_LOD_MAX_KHR 0x1157 /*************************************************************** -* cl_ext_migrate_memobject +* cl_khr_priority_hints ***************************************************************/ -#define cl_ext_migrate_memobject 1 -#define CL_EXT_MIGRATE_MEMOBJECT_EXTENSION_NAME \ - "cl_ext_migrate_memobject" +#define cl_khr_priority_hints 1 +#define CL_KHR_PRIORITY_HINTS_EXTENSION_NAME \ + "cl_khr_priority_hints" -typedef cl_bitfield cl_mem_migration_flags_ext; +/* To be used by clGetEventInfo */ +typedef cl_uint cl_queue_priority_khr; -/* cl_mem_migration_flags_ext */ -#define CL_MIGRATE_MEM_OBJECT_HOST_EXT (1 << 0) +/* cl_queue_properties */ +#define CL_QUEUE_PRIORITY_KHR 0x1096 -/* cl_command_type */ -#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 +/* cl_queue_priority_khr */ +#define CL_QUEUE_PRIORITY_HIGH_KHR (1 << 0) +#define CL_QUEUE_PRIORITY_MED_KHR (1 << 1) +#define CL_QUEUE_PRIORITY_LOW_KHR (1 << 2) +/*************************************************************** +* cl_khr_throttle_hints +***************************************************************/ +#define cl_khr_throttle_hints 1 +#define CL_KHR_THROTTLE_HINTS_EXTENSION_NAME \ + "cl_khr_throttle_hints" -typedef cl_int (CL_API_CALL * -clEnqueueMigrateMemObjectEXT_fn)( - cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem* mem_objects, - cl_mem_migration_flags_ext flags, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; +/* To be used by clGetEventInfo */ +typedef cl_uint cl_queue_throttle_khr; -#ifndef CL_NO_PROTOTYPES +/* cl_queue_properties */ +#define CL_QUEUE_THROTTLE_KHR 0x1097 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemObjectEXT( - cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem* mem_objects, - cl_mem_migration_flags_ext flags, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; +/* cl_queue_throttle_khr */ +#define CL_QUEUE_THROTTLE_HIGH_KHR (1 << 0) +#define CL_QUEUE_THROTTLE_MED_KHR (1 << 1) +#define CL_QUEUE_THROTTLE_LOW_KHR (1 << 2) -#endif /* CL_NO_PROTOTYPES */ +/*************************************************************** +* cl_khr_subgroup_named_barrier +***************************************************************/ +#define cl_khr_subgroup_named_barrier 1 +#define CL_KHR_SUBGROUP_NAMED_BARRIER_EXTENSION_NAME \ + "cl_khr_subgroup_named_barrier" + +/* cl_device_info */ +#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 /*************************************************************** -* cl_APPLE_ContextLoggingFunctions +* cl_khr_extended_versioning ***************************************************************/ -#define cl_APPLE_ContextLoggingFunctions 1 -#define CL_APPLE_CONTEXTLOGGINGFUNCTIONS_EXTENSION_NAME \ - "cl_APPLE_ContextLoggingFunctions" +#define cl_khr_extended_versioning 1 +#define CL_KHR_EXTENDED_VERSIONING_EXTENSION_NAME \ + "cl_khr_extended_versioning" +#define CL_VERSION_MAJOR_BITS_KHR 10 +#define CL_VERSION_MINOR_BITS_KHR 10 +#define CL_VERSION_PATCH_BITS_KHR 12 -typedef void (CL_API_CALL * -clLogMessagesToSystemLogAPPLE_fn)( - const char* errstr, - const void* private_info, - size_t cb, - void* user_data) CL_API_SUFFIX__VERSION_1_0; +#define CL_VERSION_MAJOR_MASK_KHR ((1 << CL_VERSION_MAJOR_BITS_KHR) - 1) +#define CL_VERSION_MINOR_MASK_KHR ((1 << CL_VERSION_MINOR_BITS_KHR) - 1) +#define CL_VERSION_PATCH_MASK_KHR ((1 << CL_VERSION_PATCH_BITS_KHR) - 1) -typedef void (CL_API_CALL * -clLogMessagesToStdoutAPPLE_fn)( - const char* errstr, - const void* private_info, - size_t cb, - void* user_data) CL_API_SUFFIX__VERSION_1_0; +#define CL_VERSION_MAJOR_KHR(version) ((version) >> (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) +#define CL_VERSION_MINOR_KHR(version) (((version) >> CL_VERSION_PATCH_BITS_KHR) & CL_VERSION_MINOR_MASK_KHR) +#define CL_VERSION_PATCH_KHR(version) ((version) & CL_VERSION_PATCH_MASK_KHR) -typedef void (CL_API_CALL * -clLogMessagesToStderrAPPLE_fn)( - const char* errstr, - const void* private_info, - size_t cb, - void* user_data) CL_API_SUFFIX__VERSION_1_0; +#define CL_MAKE_VERSION_KHR(major, minor, patch) \ + ((((major) & CL_VERSION_MAJOR_MASK_KHR) << (CL_VERSION_MINOR_BITS_KHR + CL_VERSION_PATCH_BITS_KHR)) | \ + (((minor) & CL_VERSION_MINOR_MASK_KHR) << CL_VERSION_PATCH_BITS_KHR) | \ + ((patch) & CL_VERSION_PATCH_MASK_KHR)) -#ifndef CL_NO_PROTOTYPES +#define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 -extern CL_API_ENTRY void CL_API_CALL -clLogMessagesToSystemLogAPPLE( - const char* errstr, - const void* private_info, - size_t cb, - void* user_data) CL_API_SUFFIX__VERSION_1_0; +typedef cl_uint cl_version_khr; +typedef struct _cl_name_version_khr { + cl_version_khr version; + char name[CL_NAME_VERSION_MAX_NAME_SIZE_KHR]; +} cl_name_version_khr; -extern CL_API_ENTRY void CL_API_CALL -clLogMessagesToStdoutAPPLE( - const char* errstr, - const void* private_info, - size_t cb, - void* user_data) CL_API_SUFFIX__VERSION_1_0; +/* cl_platform_info */ +#define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 +#define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 -extern CL_API_ENTRY void CL_API_CALL -clLogMessagesToStderrAPPLE( - const char* errstr, - const void* private_info, - size_t cb, - void* user_data) CL_API_SUFFIX__VERSION_1_0; +/* cl_device_info */ +#define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E +#define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F +#define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 +#define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 +#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 + +/*************************************************************** +* cl_khr_device_uuid +***************************************************************/ +#define cl_khr_device_uuid 1 +#define CL_KHR_DEVICE_UUID_EXTENSION_NAME \ + "cl_khr_device_uuid" + +/* Size Constants */ +#define CL_UUID_SIZE_KHR 16 +#define CL_LUID_SIZE_KHR 8 + +/* cl_device_info */ +#define CL_DEVICE_UUID_KHR 0x106A +#define CL_DRIVER_UUID_KHR 0x106B +#define CL_DEVICE_LUID_VALID_KHR 0x106C +#define CL_DEVICE_LUID_KHR 0x106D +#define CL_DEVICE_NODE_MASK_KHR 0x106E + +/*************************************************************** +* cl_khr_pci_bus_info +***************************************************************/ +#define cl_khr_pci_bus_info 1 +#define CL_KHR_PCI_BUS_INFO_EXTENSION_NAME \ + "cl_khr_pci_bus_info" + +typedef struct _cl_device_pci_bus_info_khr { + cl_uint pci_domain; + cl_uint pci_bus; + cl_uint pci_device; + cl_uint pci_function; +} cl_device_pci_bus_info_khr; + +/* cl_device_info */ +#define CL_DEVICE_PCI_BUS_INFO_KHR 0x410F + +/*************************************************************** +* cl_khr_suggested_local_work_size +***************************************************************/ +#define cl_khr_suggested_local_work_size 1 +#define CL_KHR_SUGGESTED_LOCAL_WORK_SIZE_EXTENSION_NAME \ + "cl_khr_suggested_local_work_size" + + +typedef cl_int (CL_API_CALL * +clGetKernelSuggestedLocalWorkSizeKHR_fn)( + cl_command_queue command_queue, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSuggestedLocalWorkSizeKHR( + cl_command_queue command_queue, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_APPLE_SetMemObjectDestructor +* cl_khr_integer_dot_product ***************************************************************/ -#define cl_APPLE_SetMemObjectDestructor 1 -#define CL_APPLE_SETMEMOBJECTDESTRUCTOR_EXTENSION_NAME \ - "cl_APPLE_SetMemObjectDestructor" +#define cl_khr_integer_dot_product 1 +#define CL_KHR_INTEGER_DOT_PRODUCT_EXTENSION_NAME \ + "cl_khr_integer_dot_product" + +typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr; +typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { + cl_bool signed_accelerated; + cl_bool unsigned_accelerated; + cl_bool mixed_signedness_accelerated; + cl_bool accumulating_saturating_signed_accelerated; + cl_bool accumulating_saturating_unsigned_accelerated; + cl_bool accumulating_saturating_mixed_signedness_accelerated; +} cl_device_integer_dot_product_acceleration_properties_khr; + +/* cl_device_integer_dot_product_capabilities_khr */ +#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0) +#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) + +/* cl_device_info */ +#define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073 +#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR 0x1074 +#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR 0x1075 + +/*************************************************************** +* cl_khr_external_memory +***************************************************************/ +#define cl_khr_external_memory 1 +#define CL_KHR_EXTERNAL_MEMORY_EXTENSION_NAME \ + "cl_khr_external_memory" + +typedef cl_uint cl_external_memory_handle_type_khr; + +/* cl_platform_info */ +#define CL_PLATFORM_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x2044 + +/* cl_device_info */ +#define CL_DEVICE_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x204F + +/* cl_mem_properties */ +#define CL_DEVICE_HANDLE_LIST_KHR 0x2051 +#define CL_DEVICE_HANDLE_LIST_END_KHR 0 + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_EXTERNAL_MEM_OBJECTS_KHR 0x2047 +#define CL_COMMAND_RELEASE_EXTERNAL_MEM_OBJECTS_KHR 0x2048 typedef cl_int (CL_API_CALL * -clSetMemObjectDestructorAPPLE_fn)( - cl_mem memobj, - void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), - void* user_data) CL_API_SUFFIX__VERSION_1_0; +clEnqueueAcquireExternalMemObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_3_0; + +typedef cl_int (CL_API_CALL * +clEnqueueReleaseExternalMemObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_3_0; #ifndef CL_NO_PROTOTYPES extern CL_API_ENTRY cl_int CL_API_CALL -clSetMemObjectDestructorAPPLE( - cl_mem memobj, - void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), - void* user_data) CL_API_SUFFIX__VERSION_1_0; +clEnqueueAcquireExternalMemObjectsKHR( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_3_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseExternalMemObjectsKHR( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_3_0; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_amd_device_attribute_query +* cl_khr_external_memory_dma_buf ***************************************************************/ -#define cl_amd_device_attribute_query 1 -#define CL_AMD_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ - "cl_amd_device_attribute_query" +#define cl_khr_external_memory_dma_buf 1 +#define CL_KHR_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME \ + "cl_khr_external_memory_dma_buf" + +/* cl_external_memory_handle_type_khr */ +#define CL_EXTERNAL_MEMORY_HANDLE_DMA_BUF_KHR 0x2067 + +/*************************************************************** +* cl_khr_external_memory_dx +***************************************************************/ +#define cl_khr_external_memory_dx 1 +#define CL_KHR_EXTERNAL_MEMORY_DX_EXTENSION_NAME \ + "cl_khr_external_memory_dx" + +/* cl_external_memory_handle_type_khr */ +#define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR 0x2063 +#define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KMT_KHR 0x2064 +#define CL_EXTERNAL_MEMORY_HANDLE_D3D12_HEAP_KHR 0x2065 +#define CL_EXTERNAL_MEMORY_HANDLE_D3D12_RESOURCE_KHR 0x2066 + +/*************************************************************** +* cl_khr_external_memory_opaque_fd +***************************************************************/ +#define cl_khr_external_memory_opaque_fd 1 +#define CL_KHR_EXTERNAL_MEMORY_OPAQUE_FD_EXTENSION_NAME \ + "cl_khr_external_memory_opaque_fd" + +/* cl_external_memory_handle_type_khr */ +#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_FD_KHR 0x2060 + +/*************************************************************** +* cl_khr_external_memory_win32 +***************************************************************/ +#define cl_khr_external_memory_win32 1 +#define CL_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME \ + "cl_khr_external_memory_win32" + +/* cl_external_memory_handle_type_khr */ +#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR 0x2061 +#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2062 + +/*************************************************************** +* cl_khr_external_semaphore +***************************************************************/ +#define cl_khr_external_semaphore 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME \ + "cl_khr_external_semaphore" + +typedef struct _cl_semaphore_khr * cl_semaphore_khr; +typedef cl_uint cl_external_semaphore_handle_type_khr; + +/* cl_platform_info */ +#define CL_PLATFORM_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x2037 +#define CL_PLATFORM_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x2038 /* cl_device_info */ -#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 -#define CL_DEVICE_TOPOLOGY_AMD 0x4037 -#define CL_DEVICE_BOARD_NAME_AMD 0x4038 -#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 -#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 -#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 -#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 -#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 -#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 -#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 -#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 -#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 -#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 -#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 -#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A -#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B -#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C -#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 -#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 -#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 -#define CL_DEVICE_PCIE_ID_AMD 0x4034 +#define CL_DEVICE_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x204D +#define CL_DEVICE_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x204E + +/* cl_semaphore_properties_khr */ +#define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x203F +#define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_LIST_END_KHR 0 + + +typedef cl_int (CL_API_CALL * +clGetSemaphoreHandleForTypeKHR_fn)( + cl_semaphore_khr sema_object, + cl_device_id device, + cl_external_semaphore_handle_type_khr handle_type, + size_t handle_size, + void* handle_ptr, + size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSemaphoreHandleForTypeKHR( + cl_semaphore_khr sema_object, + cl_device_id device, + cl_external_semaphore_handle_type_khr handle_type, + size_t handle_size, + void* handle_ptr, + size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_arm_controlled_kernel_termination +* cl_khr_external_semaphore_dx_fence ***************************************************************/ -#define cl_arm_controlled_kernel_termination 1 -#define CL_ARM_CONTROLLED_KERNEL_TERMINATION_EXTENSION_NAME \ - "cl_arm_controlled_kernel_termination" +#define cl_khr_external_semaphore_dx_fence 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_DX_FENCE_EXTENSION_NAME \ + "cl_khr_external_semaphore_dx_fence" -/* Types */ -typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; +/* cl_external_semaphore_handle_type_khr */ +#define CL_SEMAPHORE_HANDLE_D3D12_FENCE_KHR 0x2059 + +/*************************************************************** +* cl_khr_external_semaphore_opaque_fd +***************************************************************/ +#define cl_khr_external_semaphore_opaque_fd 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXTENSION_NAME \ + "cl_khr_external_semaphore_opaque_fd" + +/* cl_external_semaphore_handle_type_khr */ +#define CL_SEMAPHORE_HANDLE_OPAQUE_FD_KHR 0x2055 + +/*************************************************************** +* cl_khr_external_semaphore_sync_fd +***************************************************************/ +#define cl_khr_external_semaphore_sync_fd 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_SYNC_FD_EXTENSION_NAME \ + "cl_khr_external_semaphore_sync_fd" + +/* cl_external_semaphore_handle_type_khr */ +#define CL_SEMAPHORE_HANDLE_SYNC_FD_KHR 0x2058 + +/*************************************************************** +* cl_khr_external_semaphore_win32 +***************************************************************/ +#define cl_khr_external_semaphore_win32 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME \ + "cl_khr_external_semaphore_win32" + +/* cl_external_semaphore_handle_type_khr */ +#define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR 0x2056 +#define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2057 + +/*************************************************************** +* cl_khr_semaphore +***************************************************************/ +#define cl_khr_semaphore 1 +#define CL_KHR_SEMAPHORE_EXTENSION_NAME \ + "cl_khr_semaphore" + +/* type cl_semaphore_khr */ +typedef cl_properties cl_semaphore_properties_khr; +typedef cl_uint cl_semaphore_info_khr; +typedef cl_uint cl_semaphore_type_khr; +typedef cl_ulong cl_semaphore_payload_khr; + +/* cl_semaphore_type */ +#define CL_SEMAPHORE_TYPE_BINARY_KHR 1 + +/* cl_platform_info */ +#define CL_PLATFORM_SEMAPHORE_TYPES_KHR 0x2036 + +/* cl_device_info */ +#define CL_DEVICE_SEMAPHORE_TYPES_KHR 0x204C + +/* cl_semaphore_info_khr */ +#define CL_SEMAPHORE_CONTEXT_KHR 0x2039 +#define CL_SEMAPHORE_REFERENCE_COUNT_KHR 0x203A +#define CL_SEMAPHORE_PROPERTIES_KHR 0x203B +#define CL_SEMAPHORE_PAYLOAD_KHR 0x203C + +/* cl_semaphore_info_khr or cl_semaphore_properties_khr */ +#define CL_SEMAPHORE_TYPE_KHR 0x203D +/* enum CL_DEVICE_HANDLE_LIST_KHR */ +/* enum CL_DEVICE_HANDLE_LIST_END_KHR */ + +/* cl_command_type */ +#define CL_COMMAND_SEMAPHORE_WAIT_KHR 0x2042 +#define CL_COMMAND_SEMAPHORE_SIGNAL_KHR 0x2043 /* Error codes */ -#define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108 +#define CL_INVALID_SEMAPHORE_KHR -1142 -/* cl_device_controlled_termination_capabilities_arm */ -#define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0) -#define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1) -#define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2) -/* cl_device_info */ -#define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE +typedef cl_semaphore_khr (CL_API_CALL * +clCreateSemaphoreWithPropertiesKHR_fn)( + cl_context context, + const cl_semaphore_properties_khr* sema_props, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueWaitSemaphoresKHR_fn)( + cl_command_queue command_queue, + cl_uint num_sema_objects, + const cl_semaphore_khr* sema_objects, + const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueSignalSemaphoresKHR_fn)( + cl_command_queue command_queue, + cl_uint num_sema_objects, + const cl_semaphore_khr* sema_objects, + const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clGetSemaphoreInfoKHR_fn)( + cl_semaphore_khr sema_object, + cl_semaphore_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clReleaseSemaphoreKHR_fn)( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clRetainSemaphoreKHR_fn)( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL +clCreateSemaphoreWithPropertiesKHR( + cl_context context, + const cl_semaphore_properties_khr* sema_props, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWaitSemaphoresKHR( + cl_command_queue command_queue, + cl_uint num_sema_objects, + const cl_semaphore_khr* sema_objects, + const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSignalSemaphoresKHR( + cl_command_queue command_queue, + cl_uint num_sema_objects, + const cl_semaphore_khr* sema_objects, + const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; -/* cl_event_info */ -#define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSemaphoreInfoKHR( + cl_semaphore_khr sema_object, + cl_semaphore_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; -/* cl_command_termination_reason_arm */ -#define CL_COMMAND_TERMINATION_COMPLETION_ARM 0 -#define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1 -#define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2 -#define CL_COMMAND_TERMINATION_ERROR_ARM 3 +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseSemaphoreKHR( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -/*************************************************************** -* cl_arm_get_core_id -***************************************************************/ -#define cl_arm_get_core_id 1 -#define CL_ARM_GET_CORE_ID_EXTENSION_NAME \ - "cl_arm_get_core_id" +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainSemaphoreKHR( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -/* cl_device_info */ -#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** * cl_arm_import_memory @@ -1672,76 +1800,6 @@ clImportMemoryARM( #endif /* CL_NO_PROTOTYPES */ -/*************************************************************** -* cl_arm_job_slot_selection -***************************************************************/ -#define cl_arm_job_slot_selection 1 -#define CL_ARM_JOB_SLOT_SELECTION_EXTENSION_NAME \ - "cl_arm_job_slot_selection" - -/* cl_device_info */ -#define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 - -/* cl_queue_properties */ -#define CL_QUEUE_JOB_SLOT_ARM 0x41E1 - -/*************************************************************** -* cl_arm_printf -***************************************************************/ -#define cl_arm_printf 1 -#define CL_ARM_PRINTF_EXTENSION_NAME \ - "cl_arm_printf" - -/* cl_context_properties */ -#define CL_PRINTF_CALLBACK_ARM 0x40B0 -#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 - -/*************************************************************** -* cl_arm_protected_memory_allocation -***************************************************************/ -#define cl_arm_protected_memory_allocation 1 -#define CL_ARM_PROTECTED_MEMORY_ALLOCATION_EXTENSION_NAME \ - "cl_arm_protected_memory_allocation" - -#define CL_MEM_PROTECTED_ALLOC_ARM (1ULL << 36) - -/*************************************************************** -* cl_arm_scheduling_controls -***************************************************************/ -#define cl_arm_scheduling_controls 1 -#define CL_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME \ - "cl_arm_scheduling_controls" - -/* Types */ -typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; - -/* cl_device_scheduling_controls_capabilities_arm */ -#define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) -#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) -#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) -#define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) -#define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) -#define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5) -#define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_BATCH_QUEUE_SIZE_ARM (1 << 6) - -/* cl_device_info */ -#define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 -#define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB -#define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA - -/* cl_kernel_exec_info */ -#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 -#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 -#define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8 -#define CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM 0x41F1 - -/* cl_kernel_info */ -#define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9 - -/* cl_queue_properties */ -#define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 -#define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC - /*************************************************************** * cl_arm_shared_virtual_memory ***************************************************************/ @@ -1897,405 +1955,156 @@ clEnqueueSVMMemcpyARM( extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueSVMMemFillARM( cl_command_queue command_queue, - void* svm_ptr, - const void* pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMapARM( - cl_command_queue command_queue, - cl_bool blocking_map, - cl_map_flags flags, - void* svm_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMUnmapARM( - cl_command_queue command_queue, - void* svm_ptr, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelArgSVMPointerARM( - cl_kernel kernel, - cl_uint arg_index, - const void* arg_value) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelExecInfoARM( - cl_kernel kernel, - cl_kernel_exec_info_arm param_name, - size_t param_value_size, - const void* param_value) CL_API_SUFFIX__VERSION_1_2; - -#endif /* CL_NO_PROTOTYPES */ - -/*************************************************************** -* cl_img_cached_allocations -***************************************************************/ -#define cl_img_cached_allocations 1 -#define CL_IMG_CACHED_ALLOCATIONS_EXTENSION_NAME \ - "cl_img_cached_allocations" - -/* cl_mem_flags */ -#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) -#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) - -/*************************************************************** -* cl_img_generate_mipmap -***************************************************************/ -#define cl_img_generate_mipmap 1 -#define CL_IMG_GENERATE_MIPMAP_EXTENSION_NAME \ - "cl_img_generate_mipmap" - -typedef cl_uint cl_mipmap_filter_mode_img; - -/* cl_mipmap_filter_mode_img */ -#define CL_MIPMAP_FILTER_ANY_IMG 0x0 -#define CL_MIPMAP_FILTER_BOX_IMG 0x1 - -/* cl_command_type */ -#define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 - - -typedef cl_int (CL_API_CALL * -clEnqueueGenerateMipmapIMG_fn)( - cl_command_queue command_queue, - cl_mem src_image, - cl_mem dst_image, - cl_mipmap_filter_mode_img mipmap_filter_mode, - const size_t* array_region, - const size_t* mip_region, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueGenerateMipmapIMG( - cl_command_queue command_queue, - cl_mem src_image, - cl_mem dst_image, - cl_mipmap_filter_mode_img mipmap_filter_mode, - const size_t* array_region, - const size_t* mip_region, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_API_SUFFIX__VERSION_1_2; - -#endif /* CL_NO_PROTOTYPES */ - -/*************************************************************** -* cl_img_mem_properties -***************************************************************/ -#define cl_img_mem_properties 1 -#define CL_IMG_MEM_PROPERTIES_EXTENSION_NAME \ - "cl_img_mem_properties" - -/* cl_mem_properties */ -#define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 - -/* cl_mem_alloc_flags_img */ -#define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) - -/*************************************************************** -* cl_img_use_gralloc_ptr -***************************************************************/ -#define cl_img_use_gralloc_ptr 1 -#define CL_IMG_USE_GRALLOC_PTR_EXTENSION_NAME \ - "cl_img_use_gralloc_ptr" - -/* Error codes */ -#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 -#define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 - -/* cl_mem_flags */ -#define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) - -/* cl_command_type */ -#define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 -#define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 - - -typedef cl_int (CL_API_CALL * -clEnqueueAcquireGrallocObjectsIMG_fn)( - 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_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * -clEnqueueReleaseGrallocObjectsIMG_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, + void* svm_ptr, + const void* pattern, + size_t pattern_size, + size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES - extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireGrallocObjectsIMG( +clEnqueueSVMMapARM( cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, + cl_bool blocking_map, + cl_map_flags flags, + void* svm_ptr, + size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseGrallocObjectsIMG( +clEnqueueSVMUnmapARM( cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, + void* svm_ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ - -/*************************************************************** -* cl_img_yuv_image -***************************************************************/ -#define cl_img_yuv_image 1 -#define CL_IMG_YUV_IMAGE_EXTENSION_NAME \ - "cl_img_yuv_image" - -/* cl_channel_order */ -#define CL_NV21_IMG 0x40D0 -#define CL_YV12_IMG 0x40D1 - -/*************************************************************** -* cl_intel_accelerator -***************************************************************/ -#define cl_intel_accelerator 1 -#define CL_INTEL_ACCELERATOR_EXTENSION_NAME \ - "cl_intel_accelerator" - -typedef struct _cl_accelerator_intel* cl_accelerator_intel; -typedef cl_uint cl_accelerator_type_intel; -typedef cl_uint cl_accelerator_info_intel; - -/* cl_accelerator_info_intel */ -#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 -#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 -#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 -#define CL_ACCELERATOR_TYPE_INTEL 0x4093 - -/* Error codes */ -#define CL_INVALID_ACCELERATOR_INTEL -1094 -#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 -#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 -#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 - - -typedef cl_accelerator_intel (CL_API_CALL * -clCreateAcceleratorINTEL_fn)( - cl_context context, - cl_accelerator_type_intel accelerator_type, - size_t descriptor_size, - const void* descriptor, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * -clGetAcceleratorInfoINTEL_fn)( - cl_accelerator_intel accelerator, - cl_accelerator_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * -clRetainAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; - -typedef cl_int (CL_API_CALL * -clReleaseAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; - -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL -clCreateAcceleratorINTEL( - cl_context context, - cl_accelerator_type_intel accelerator_type, - size_t descriptor_size, - const void* descriptor, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetAcceleratorInfoINTEL( - cl_accelerator_intel accelerator, - cl_accelerator_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; - extern CL_API_ENTRY cl_int CL_API_CALL -clRetainAcceleratorINTEL( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; +clSetKernelArgSVMPointerARM( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseAcceleratorINTEL( - cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; +clSetKernelExecInfoARM( + cl_kernel kernel, + cl_kernel_exec_info_arm param_name, + size_t param_value_size, + const void* param_value) CL_API_SUFFIX__VERSION_1_2; #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_intel_advanced_motion_estimation +* cl_arm_get_core_id ***************************************************************/ -#define cl_intel_advanced_motion_estimation 1 -#define CL_INTEL_ADVANCED_MOTION_ESTIMATION_EXTENSION_NAME \ - "cl_intel_advanced_motion_estimation" +#define cl_arm_get_core_id 1 +#define CL_ARM_GET_CORE_ID_EXTENSION_NAME \ + "cl_arm_get_core_id" /* cl_device_info */ -#define CL_DEVICE_ME_VERSION_INTEL 0x407E - -#define CL_ME_VERSION_LEGACY_INTEL 0x0 -#define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 -#define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 - -#define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 -#define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 - -#define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 -#define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x1 - -#define CL_ME_COST_PENALTY_NONE_INTEL 0x0 -#define CL_ME_COST_PENALTY_LOW_INTEL 0x1 -#define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 -#define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 - -#define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 -#define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 -#define CL_ME_COST_PRECISION_PEL_INTEL 0x2 -#define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 - -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 -#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 -#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 -#define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 +#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF -#define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 -#define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 -#define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 +/*************************************************************** +* cl_arm_job_slot_selection +***************************************************************/ +#define cl_arm_job_slot_selection 1 +#define CL_ARM_JOB_SLOT_SELECTION_EXTENSION_NAME \ + "cl_arm_job_slot_selection" -#define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 -#define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 -#define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 +/* cl_device_info */ +#define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 -#define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 -#define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 -#define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 -#define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 -#define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 +/* cl_queue_properties */ +#define CL_QUEUE_JOB_SLOT_ARM 0x41E1 /*************************************************************** -* cl_intel_command_queue_families +* cl_arm_scheduling_controls ***************************************************************/ -#define cl_intel_command_queue_families 1 -#define CL_INTEL_COMMAND_QUEUE_FAMILIES_EXTENSION_NAME \ - "cl_intel_command_queue_families" - -typedef cl_bitfield cl_command_queue_capabilities_intel; +#define cl_arm_scheduling_controls 1 +#define CL_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME \ + "cl_arm_scheduling_controls" -#define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64 +/* Types */ +typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; -typedef struct _cl_queue_family_properties_intel { - cl_command_queue_properties properties; - cl_command_queue_capabilities_intel capabilities; - cl_uint count; - char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL]; -} cl_queue_family_properties_intel; +/* cl_device_scheduling_controls_capabilities_arm */ +#define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) +#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) +#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) +#define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) +#define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) +#define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5) +#define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_BATCH_QUEUE_SIZE_ARM (1 << 6) /* cl_device_info */ -#define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B +#define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 +#define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB +#define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA -/* cl_queue_properties */ -#define CL_QUEUE_FAMILY_INTEL 0x418C -#define CL_QUEUE_INDEX_INTEL 0x418D +/* cl_kernel_exec_info */ +#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 +#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 +#define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8 +#define CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM 0x41F1 -/* cl_command_queue_capabilities_intel */ -#define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0 -#define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0) -#define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1) -#define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2) -#define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3) -#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8) -#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9) -#define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10) -#define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11) -#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12) -#define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13) -#define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14) -#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15) -#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16) -#define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24) -#define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25) -#define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26) +/* cl_kernel_info */ +#define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9 + +/* cl_queue_properties */ +#define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 +#define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC /*************************************************************** -* cl_intel_create_buffer_with_properties +* cl_arm_controlled_kernel_termination ***************************************************************/ -#define cl_intel_create_buffer_with_properties 1 -#define CL_INTEL_CREATE_BUFFER_WITH_PROPERTIES_EXTENSION_NAME \ - "cl_intel_create_buffer_with_properties" +#define cl_arm_controlled_kernel_termination 1 +#define CL_ARM_CONTROLLED_KERNEL_TERMINATION_EXTENSION_NAME \ + "cl_arm_controlled_kernel_termination" -typedef cl_properties cl_mem_properties_intel; +/* Types */ +typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; + +/* Error codes */ +#define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108 + +/* cl_device_controlled_termination_capabilities_arm */ +#define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0) +#define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1) +#define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2) +/* cl_device_info */ +#define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE -typedef cl_mem (CL_API_CALL * -clCreateBufferWithPropertiesINTEL_fn)( - cl_context context, - const cl_mem_properties_intel* properties, - cl_mem_flags flags, - size_t size, - void* host_ptr, - cl_int* errcode_ret) ; +/* cl_event_info */ +#define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED -#ifndef CL_NO_PROTOTYPES +/* cl_command_termination_reason_arm */ +#define CL_COMMAND_TERMINATION_COMPLETION_ARM 0 +#define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1 +#define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2 +#define CL_COMMAND_TERMINATION_ERROR_ARM 3 -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateBufferWithPropertiesINTEL( - cl_context context, - const cl_mem_properties_intel* properties, - cl_mem_flags flags, - size_t size, - void* host_ptr, - cl_int* errcode_ret) ; +/*************************************************************** +* cl_arm_protected_memory_allocation +***************************************************************/ +#define cl_arm_protected_memory_allocation 1 +#define CL_ARM_PROTECTED_MEMORY_ALLOCATION_EXTENSION_NAME \ + "cl_arm_protected_memory_allocation" -#endif /* CL_NO_PROTOTYPES */ +#define CL_MEM_PROTECTED_ALLOC_ARM (1ULL << 36) /*************************************************************** -* cl_intel_create_mem_object_properties +* cl_intel_exec_by_local_thread ***************************************************************/ -#define cl_intel_create_mem_object_properties 1 -#define CL_INTEL_CREATE_MEM_OBJECT_PROPERTIES_EXTENSION_NAME \ - "cl_intel_create_mem_object_properties" +#define cl_intel_exec_by_local_thread 1 +#define CL_INTEL_EXEC_BY_LOCAL_THREAD_EXTENSION_NAME \ + "cl_intel_exec_by_local_thread" -/* cl_mem_properties */ -#define CL_MEM_LOCALLY_UNCACHED_RESOURCE_INTEL 0x4218 -#define CL_MEM_DEVICE_ID_INTEL 0x4219 +/* cl_command_queue_properties - bitfield */ +#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (1 << 31) /*************************************************************** * cl_intel_device_attribute_query @@ -2330,230 +2139,80 @@ typedef cl_bitfield cl_device_feature_capabilities_intel; #define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 /*************************************************************** -* cl_intel_device_side_avc_motion_estimation +* cl_intel_accelerator ***************************************************************/ -#define cl_intel_device_side_avc_motion_estimation 1 -#define CL_INTEL_DEVICE_SIDE_AVC_MOTION_ESTIMATION_EXTENSION_NAME \ - "cl_intel_device_side_avc_motion_estimation" - -/* cl_device_info */ -#define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B -#define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C -#define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D - -/* returned by CL_DEVICE_AVC_ME_VERSION_INTEL */ -#define CL_AVC_ME_VERSION_0_INTEL 0x0 -#define CL_AVC_ME_VERSION_1_INTEL 0x1 - -/* Inter macro-block major shape values */ -#define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 -#define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 -#define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 -#define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 - -/* Inter macro-block minor shape values */ -#define CL_AVC_ME_MINOR_8x8_INTEL 0x0 -#define CL_AVC_ME_MINOR_8x4_INTEL 0x1 -#define CL_AVC_ME_MINOR_4x8_INTEL 0x2 -#define CL_AVC_ME_MINOR_4x4_INTEL 0x3 - -/* Inter macro-block major direction values */ -#define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 -#define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 -#define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 - -/* Inter (IME) partition mask values */ -#define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 -#define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E -#define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D -#define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B -#define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 -#define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F -#define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F -#define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F - -/* Search window configuration */ -#define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 -#define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 -#define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 -#define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 -#define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 -#define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 -#define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 -#define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 -#define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 -#define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9 -#define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 -#define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa - -/* SAD adjustment mode */ -#define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 -#define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 - -/* Pixel resolution */ -#define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 -#define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 -#define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 - -/* Cost precision values */ -#define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 -#define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 -#define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 -#define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 - -/* Inter bidirectional weights */ -#define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 -#define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 -#define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 -#define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B -#define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 - -/* Inter border reached values */ -#define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 -#define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 -#define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 -#define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 - -/* Inter skip block partition type */ -#define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 -#define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 - -/* Inter skip motion vector mask */ -#define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24) -#define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24) -#define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24) -#define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24) -#define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24) -#define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24) -#define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24) -#define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24) -#define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26) -#define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26) -#define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28) -#define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28) -#define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30) -#define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30) - -/* Block based skip type values */ -#define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 -#define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 - -/* cl_intel_device_side_avc_motion_estimation.?? */ -#define CL_AVC_ME_INTRA_16x16_INTEL 0x0 -#define CL_AVC_ME_INTRA_8x8_INTEL 0x1 -#define CL_AVC_ME_INTRA_4x4_INTEL 0x2 - -/* Luma intra partition mask values */ -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 - -/* Intra neighbor availability mask values */ -#define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 - -/* Luma intra modes */ -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 - -/* Chroma intra modes */ -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 - -/* Reference image select values */ -#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 -#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 -#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 - -/* Slice type values */ -#define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 -#define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 -#define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 - -/* Interlaced image field polarity values */ -#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 -#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 +#define cl_intel_accelerator 1 +#define CL_INTEL_ACCELERATOR_EXTENSION_NAME \ + "cl_intel_accelerator" -/*************************************************************** -* cl_intel_driver_diagnostics -***************************************************************/ -#define cl_intel_driver_diagnostics 1 -#define CL_INTEL_DRIVER_DIAGNOSTICS_EXTENSION_NAME \ - "cl_intel_driver_diagnostics" +typedef struct _cl_accelerator_intel* cl_accelerator_intel; +typedef cl_uint cl_accelerator_type_intel; +typedef cl_uint cl_accelerator_info_intel; -typedef cl_uint cl_diagnostics_verbose_level; +/* cl_accelerator_info_intel */ +#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 +#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 +#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 +#define CL_ACCELERATOR_TYPE_INTEL 0x4093 -/* cl_context_properties */ -#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL 0xff -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL (1 << 0) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL (1 << 1) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL (1 << 2) +/* Error codes */ +#define CL_INVALID_ACCELERATOR_INTEL -1094 +#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 +#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 +#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 -/*************************************************************** -* cl_intel_egl_image_yuv -***************************************************************/ -#define cl_intel_egl_image_yuv 1 -#define CL_INTEL_EGL_IMAGE_YUV_EXTENSION_NAME \ - "cl_intel_egl_image_yuv" -/* cl_egl_image_properties_khr */ -#define CL_EGL_YUV_PLANE_INTEL 0x4107 +typedef cl_accelerator_intel (CL_API_CALL * +clCreateAcceleratorINTEL_fn)( + cl_context context, + cl_accelerator_type_intel accelerator_type, + size_t descriptor_size, + const void* descriptor, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -/*************************************************************** -* cl_intel_exec_by_local_thread -***************************************************************/ -#define cl_intel_exec_by_local_thread 1 -#define CL_INTEL_EXEC_BY_LOCAL_THREAD_EXTENSION_NAME \ - "cl_intel_exec_by_local_thread" +typedef cl_int (CL_API_CALL * +clGetAcceleratorInfoINTEL_fn)( + cl_accelerator_intel accelerator, + cl_accelerator_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; -/* cl_command_queue_properties - bitfield */ -#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (1 << 31) +typedef cl_int (CL_API_CALL * +clRetainAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -/*************************************************************** -* cl_intel_mem_alloc_buffer_location -***************************************************************/ -#define cl_intel_mem_alloc_buffer_location 1 -#define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION_EXTENSION_NAME \ - "cl_intel_mem_alloc_buffer_location" +typedef cl_int (CL_API_CALL * +clReleaseAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -/* cl_mem_properties_intel */ -#define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E +#ifndef CL_NO_PROTOTYPES -/* cl_mem_alloc_info_intel */ -/* enum CL_MEM_ALLOC_BUFFER_LOCATION_INTEL */ +extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL +clCreateAcceleratorINTEL( + cl_context context, + cl_accelerator_type_intel accelerator_type, + size_t descriptor_size, + const void* descriptor, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -/*************************************************************** -* cl_intel_mem_channel_property -***************************************************************/ -#define cl_intel_mem_channel_property 1 -#define CL_INTEL_MEM_CHANNEL_PROPERTY_EXTENSION_NAME \ - "cl_intel_mem_channel_property" +extern CL_API_ENTRY cl_int CL_API_CALL +clGetAcceleratorInfoINTEL( + cl_accelerator_intel accelerator, + cl_accelerator_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; -/* cl_mem_properties_intel */ -#define CL_MEM_CHANNEL_INTEL 0x4213 +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainAcceleratorINTEL( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -/*************************************************************** -* cl_intel_mem_force_host_memory -***************************************************************/ -#define cl_intel_mem_force_host_memory 1 -#define CL_INTEL_MEM_FORCE_HOST_MEMORY_EXTENSION_NAME \ - "cl_intel_mem_force_host_memory" +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseAcceleratorINTEL( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -/* cl_mem_flags */ -#define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) +#endif /* CL_NO_PROTOTYPES */ /*************************************************************** * cl_intel_motion_estimation @@ -2591,6 +2250,83 @@ typedef struct _cl_motion_estimation_desc_intel { #define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 #define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 +/*************************************************************** +* cl_intel_advanced_motion_estimation +***************************************************************/ +#define cl_intel_advanced_motion_estimation 1 +#define CL_INTEL_ADVANCED_MOTION_ESTIMATION_EXTENSION_NAME \ + "cl_intel_advanced_motion_estimation" + +/* cl_device_info */ +#define CL_DEVICE_ME_VERSION_INTEL 0x407E + +#define CL_ME_VERSION_LEGACY_INTEL 0x0 +#define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 +#define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 + +#define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 +#define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 + +#define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 +#define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x1 + +#define CL_ME_COST_PENALTY_NONE_INTEL 0x0 +#define CL_ME_COST_PENALTY_LOW_INTEL 0x1 +#define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 +#define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 + +#define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 +#define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 +#define CL_ME_COST_PRECISION_PEL_INTEL 0x2 +#define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 + +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 +#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 +#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 +#define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 + +#define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 +#define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 +#define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 + +#define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 +#define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 +#define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 + +#define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 +#define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 +#define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 +#define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 +#define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 + +/*************************************************************** +* cl_intel_simultaneous_sharing +***************************************************************/ +#define cl_intel_simultaneous_sharing 1 +#define CL_INTEL_SIMULTANEOUS_SHARING_EXTENSION_NAME \ + "cl_intel_simultaneous_sharing" + +/* cl_device_info */ +#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 +#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 + +/*************************************************************** +* cl_intel_egl_image_yuv +***************************************************************/ +#define cl_intel_egl_image_yuv 1 +#define CL_INTEL_EGL_IMAGE_YUV_EXTENSION_NAME \ + "cl_intel_egl_image_yuv" + +/* cl_egl_image_properties_khr */ +#define CL_EGL_YUV_PLANE_INTEL 0x4107 + /*************************************************************** * cl_intel_packed_yuv ***************************************************************/ @@ -2604,6 +2340,38 @@ typedef struct _cl_motion_estimation_desc_intel { #define CL_YVYU_INTEL 0x4078 #define CL_VYUY_INTEL 0x4079 +/*************************************************************** +* cl_intel_required_subgroup_size +***************************************************************/ +#define cl_intel_required_subgroup_size 1 +#define CL_INTEL_REQUIRED_SUBGROUP_SIZE_EXTENSION_NAME \ + "cl_intel_required_subgroup_size" + +/* cl_device_info */ +#define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 + +/* cl_kernel_work_group_info */ +#define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 + +/* cl_kernel_sub_group_info */ +#define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A + +/*************************************************************** +* cl_intel_driver_diagnostics +***************************************************************/ +#define cl_intel_driver_diagnostics 1 +#define CL_INTEL_DRIVER_DIAGNOSTICS_EXTENSION_NAME \ + "cl_intel_driver_diagnostics" + +typedef cl_uint cl_diagnostics_verbose_level; + +/* cl_context_properties */ +#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL 0xff +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL (1 << 0) +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL (1 << 1) +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL (1 << 2) + /*************************************************************** * cl_intel_planar_yuv ***************************************************************/ @@ -2623,116 +2391,161 @@ typedef struct _cl_motion_estimation_desc_intel { #define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F /*************************************************************** -* cl_intel_program_scope_host_pipe +* cl_intel_device_side_avc_motion_estimation ***************************************************************/ -#define cl_intel_program_scope_host_pipe 1 -#define CL_INTEL_PROGRAM_SCOPE_HOST_PIPE_EXTENSION_NAME \ - "cl_intel_program_scope_host_pipe" +#define cl_intel_device_side_avc_motion_estimation 1 +#define CL_INTEL_DEVICE_SIDE_AVC_MOTION_ESTIMATION_EXTENSION_NAME \ + "cl_intel_device_side_avc_motion_estimation" -/* clGetEventInfo response when param_name is CL_EVENT_COMMAND_TYPE */ -#define CL_COMMAND_READ_HOST_PIPE_INTEL 0x4214 -#define CL_COMMAND_WRITE_HOST_PIPE_INTEL 0x4215 +/* cl_device_info */ +#define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B +#define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C +#define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D -/* clGetProgramInfo param_name */ -#define CL_PROGRAM_NUM_HOST_PIPES_INTEL 0x4216 -#define CL_PROGRAM_HOST_PIPE_NAMES_INTEL 0x4217 +/* returned by CL_DEVICE_AVC_ME_VERSION_INTEL */ +#define CL_AVC_ME_VERSION_0_INTEL 0x0 +#define CL_AVC_ME_VERSION_1_INTEL 0x1 + +/* Inter macro-block major shape values */ +#define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 +#define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 +#define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 +#define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 +/* Inter macro-block minor shape values */ +#define CL_AVC_ME_MINOR_8x8_INTEL 0x0 +#define CL_AVC_ME_MINOR_8x4_INTEL 0x1 +#define CL_AVC_ME_MINOR_4x8_INTEL 0x2 +#define CL_AVC_ME_MINOR_4x4_INTEL 0x3 -typedef cl_int (CL_API_CALL * -clEnqueueReadHostPipeINTEL_fn)( - cl_command_queue command_queue, - cl_program program, - const char* pipe_symbol, - cl_bool blocking_read, - void* ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; +/* Inter macro-block major direction values */ +#define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 +#define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 +#define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 -typedef cl_int (CL_API_CALL * -clEnqueueWriteHostPipeINTEL_fn)( - cl_command_queue command_queue, - cl_program program, - const char* pipe_symbol, - cl_bool blocking_write, - const void* ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; +/* Inter (IME) partition mask values */ +#define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 +#define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E +#define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D +#define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B +#define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 +#define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F +#define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F +#define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F + +/* Search window configuration */ +#define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 +#define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 +#define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 +#define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 +#define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 +#define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 +#define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 +#define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 +#define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 +#define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9 +#define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 +#define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa + +/* SAD adjustment mode */ +#define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 +#define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 + +/* Pixel resolution */ +#define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 +#define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 +#define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 -#ifndef CL_NO_PROTOTYPES +/* Cost precision values */ +#define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 +#define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 +#define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 +#define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReadHostPipeINTEL( - cl_command_queue command_queue, - cl_program program, - const char* pipe_symbol, - cl_bool blocking_read, - void* ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; +/* Inter bidirectional weights */ +#define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 +#define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 +#define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 +#define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B +#define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueWriteHostPipeINTEL( - cl_command_queue command_queue, - cl_program program, - const char* pipe_symbol, - cl_bool blocking_write, - const void* ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) ; +/* Inter border reached values */ +#define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 +#define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 +#define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 +#define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 -#endif /* CL_NO_PROTOTYPES */ +/* Inter skip block partition type */ +#define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 +#define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 -/*************************************************************** -* cl_intel_queue_no_sync_operations -***************************************************************/ -#define cl_intel_queue_no_sync_operations 1 -#define CL_INTEL_QUEUE_NO_SYNC_OPERATIONS_EXTENSION_NAME \ - "cl_intel_queue_no_sync_operations" +/* Inter skip motion vector mask */ +#define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24) +#define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24) +#define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26) +#define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26) +#define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28) +#define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28) +#define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30) +#define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30) -/* cl_command_queue_properties */ -#define CL_QUEUE_NO_SYNC_OPERATIONS_INTEL (1 << 29) +/* Block based skip type values */ +#define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 +#define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 -/*************************************************************** -* cl_intel_required_subgroup_size -***************************************************************/ -#define cl_intel_required_subgroup_size 1 -#define CL_INTEL_REQUIRED_SUBGROUP_SIZE_EXTENSION_NAME \ - "cl_intel_required_subgroup_size" +/* cl_intel_device_side_avc_motion_estimation.?? */ +#define CL_AVC_ME_INTRA_16x16_INTEL 0x0 +#define CL_AVC_ME_INTRA_8x8_INTEL 0x1 +#define CL_AVC_ME_INTRA_4x4_INTEL 0x2 -/* cl_device_info */ -#define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 +/* Luma intra partition mask values */ +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 -/* cl_kernel_work_group_info */ -#define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 +/* Intra neighbor availability mask values */ +#define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 -/* cl_kernel_sub_group_info */ -#define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A +/* Luma intra modes */ +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 -/*************************************************************** -* cl_intel_sharing_format_query -***************************************************************/ -#define cl_intel_sharing_format_query 1 -#define CL_INTEL_SHARING_FORMAT_QUERY_EXTENSION_NAME \ - "cl_intel_sharing_format_query" +/* Chroma intra modes */ +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 -/*************************************************************** -* cl_intel_simultaneous_sharing -***************************************************************/ -#define cl_intel_simultaneous_sharing 1 -#define CL_INTEL_SIMULTANEOUS_SHARING_EXTENSION_NAME \ - "cl_intel_simultaneous_sharing" +/* Reference image select values */ +#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 +#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 +#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 -/* cl_device_info */ -#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 -#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 +/* Slice type values */ +#define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 +#define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 +#define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 + +/* Interlaced image field polarity values */ +#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 +#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 /*************************************************************** * cl_intel_unified_shared_memory @@ -2742,7 +2555,7 @@ clEnqueueWriteHostPipeINTEL( "cl_intel_unified_shared_memory" typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel; -/* type cl_mem_properties_intel */ +typedef cl_properties cl_mem_properties_intel; typedef cl_bitfield cl_mem_alloc_flags_intel; typedef cl_uint cl_mem_info_intel; typedef cl_uint cl_unified_shared_memory_type_intel; @@ -3020,142 +2833,329 @@ clEnqueueMemsetINTEL( #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_nv_device_attribute_query +* cl_intel_mem_alloc_buffer_location +***************************************************************/ +#define cl_intel_mem_alloc_buffer_location 1 +#define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION_EXTENSION_NAME \ + "cl_intel_mem_alloc_buffer_location" + +/* cl_mem_properties_intel */ +#define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E + +/* cl_mem_alloc_info_intel */ +/* enum CL_MEM_ALLOC_BUFFER_LOCATION_INTEL */ + +/*************************************************************** +* cl_intel_create_buffer_with_properties +***************************************************************/ +#define cl_intel_create_buffer_with_properties 1 +#define CL_INTEL_CREATE_BUFFER_WITH_PROPERTIES_EXTENSION_NAME \ + "cl_intel_create_buffer_with_properties" + +/* type cl_mem_properties_intel */ + + +typedef cl_mem (CL_API_CALL * +clCreateBufferWithPropertiesINTEL_fn)( + cl_context context, + const cl_mem_properties_intel* properties, + cl_mem_flags flags, + size_t size, + void* host_ptr, + cl_int* errcode_ret) ; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateBufferWithPropertiesINTEL( + cl_context context, + const cl_mem_properties_intel* properties, + cl_mem_flags flags, + size_t size, + void* host_ptr, + cl_int* errcode_ret) ; + +#endif /* CL_NO_PROTOTYPES */ + +/*************************************************************** +* cl_intel_program_scope_host_pipe +***************************************************************/ +#define cl_intel_program_scope_host_pipe 1 +#define CL_INTEL_PROGRAM_SCOPE_HOST_PIPE_EXTENSION_NAME \ + "cl_intel_program_scope_host_pipe" + +/* clGetEventInfo response when param_name is CL_EVENT_COMMAND_TYPE */ +#define CL_COMMAND_READ_HOST_PIPE_INTEL 0x4214 +#define CL_COMMAND_WRITE_HOST_PIPE_INTEL 0x4215 + +/* clGetProgramInfo param_name */ +#define CL_PROGRAM_NUM_HOST_PIPES_INTEL 0x4216 +#define CL_PROGRAM_HOST_PIPE_NAMES_INTEL 0x4217 + + +typedef cl_int (CL_API_CALL * +clEnqueueReadHostPipeINTEL_fn)( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_read, + void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +typedef cl_int (CL_API_CALL * +clEnqueueWriteHostPipeINTEL_fn)( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_write, + const void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReadHostPipeINTEL( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_read, + void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWriteHostPipeINTEL( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_write, + const void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#endif /* CL_NO_PROTOTYPES */ + +/*************************************************************** +* cl_intel_mem_channel_property ***************************************************************/ -#define cl_nv_device_attribute_query 1 -#define CL_NV_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ - "cl_nv_device_attribute_query" +#define cl_intel_mem_channel_property 1 +#define CL_INTEL_MEM_CHANNEL_PROPERTY_EXTENSION_NAME \ + "cl_intel_mem_channel_property" -/* cl_device_info */ -#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 -#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 -#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 -#define CL_DEVICE_WARP_SIZE_NV 0x4003 -#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 -#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 -#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 +/* cl_mem_properties_intel */ +#define CL_MEM_CHANNEL_INTEL 0x4213 /*************************************************************** -* cl_pocl_content_size +* cl_intel_mem_force_host_memory ***************************************************************/ -#define cl_pocl_content_size 1 -#define CL_POCL_CONTENT_SIZE_EXTENSION_NAME \ - "cl_pocl_content_size" +#define cl_intel_mem_force_host_memory 1 +#define CL_INTEL_MEM_FORCE_HOST_MEMORY_EXTENSION_NAME \ + "cl_intel_mem_force_host_memory" +/* cl_mem_flags */ +#define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) -typedef cl_int (CL_API_CALL * -clSetContentSizeBufferPoCL_fn)( - cl_mem buffer, - cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; +/*************************************************************** +* cl_intel_command_queue_families +***************************************************************/ +#define cl_intel_command_queue_families 1 +#define CL_INTEL_COMMAND_QUEUE_FAMILIES_EXTENSION_NAME \ + "cl_intel_command_queue_families" -#ifndef CL_NO_PROTOTYPES +typedef cl_bitfield cl_command_queue_capabilities_intel; -extern CL_API_ENTRY cl_int CL_API_CALL -clSetContentSizeBufferPoCL( - cl_mem buffer, - cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; +#define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64 -#endif /* CL_NO_PROTOTYPES */ +typedef struct _cl_queue_family_properties_intel { + cl_command_queue_properties properties; + cl_command_queue_capabilities_intel capabilities; + cl_uint count; + char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL]; +} cl_queue_family_properties_intel; -/*************************************************************** -* cl_qcom_android_native_buffer_host_ptr -***************************************************************/ -#define cl_qcom_android_native_buffer_host_ptr 1 -#define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR_EXTENSION_NAME \ - "cl_qcom_android_native_buffer_host_ptr" +/* cl_device_info */ +#define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B -typedef struct _cl_mem_ext_host_ptr { - cl_uint allocation_type; - cl_uint host_cache_policy; -} cl_mem_ext_host_ptr; -typedef struct _cl_mem_android_native_buffer_host_ptr { - cl_mem_ext_host_ptr ext_host_ptr; - void* anb_ptr; -} cl_mem_android_native_buffer_host_ptr; +/* cl_queue_properties */ +#define CL_QUEUE_FAMILY_INTEL 0x418C +#define CL_QUEUE_INDEX_INTEL 0x418D -/* cl_uint allocation_type */ -#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 +/* cl_command_queue_capabilities_intel */ +#define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0 +#define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0) +#define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1) +#define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2) +#define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3) +#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8) +#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9) +#define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10) +#define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11) +#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12) +#define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13) +#define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14) +#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15) +#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16) +#define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24) +#define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25) +#define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26) /*************************************************************** -* cl_qcom_ext_host_ptr +* cl_intel_queue_no_sync_operations ***************************************************************/ -#define cl_qcom_ext_host_ptr 1 -#define CL_QCOM_EXT_HOST_PTR_EXTENSION_NAME \ - "cl_qcom_ext_host_ptr" +#define cl_intel_queue_no_sync_operations 1 +#define CL_INTEL_QUEUE_NO_SYNC_OPERATIONS_EXTENSION_NAME \ + "cl_intel_queue_no_sync_operations" -typedef cl_uint cl_image_pitch_info_qcom; -/* type cl_mem_ext_host_ptr */ +/* cl_command_queue_properties */ +#define CL_QUEUE_NO_SYNC_OPERATIONS_INTEL (1 << 29) -/* cl_mem_flags */ -#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) +/*************************************************************** +* cl_intel_sharing_format_query +***************************************************************/ +#define cl_intel_sharing_format_query 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_EXTENSION_NAME \ + "cl_intel_sharing_format_query" -/* cl_device_info */ -#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 -#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 +/*************************************************************** +* cl_ext_image_requirements_info +***************************************************************/ +#if defined(CL_VERSION_3_0) -/* cl_image_pitch_info_qcom */ -#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 -#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 +#define cl_ext_image_requirements_info 1 +#define CL_EXT_IMAGE_REQUIREMENTS_INFO_EXTENSION_NAME \ + "cl_ext_image_requirements_info" -/* cl_uint host_cache_policy */ -#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 -#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 -#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 -#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 +/* Types */ +typedef cl_uint cl_image_requirements_info_ext; + +/* cl_image_requirements_info_ext */ +#define CL_IMAGE_REQUIREMENTS_BASE_ADDRESS_ALIGNMENT_EXT 0x1292 +#define CL_IMAGE_REQUIREMENTS_ROW_PITCH_ALIGNMENT_EXT 0x1290 +#define CL_IMAGE_REQUIREMENTS_SIZE_EXT 0x12B2 +#define CL_IMAGE_REQUIREMENTS_MAX_WIDTH_EXT 0x12B3 +#define CL_IMAGE_REQUIREMENTS_MAX_HEIGHT_EXT 0x12B4 +#define CL_IMAGE_REQUIREMENTS_MAX_DEPTH_EXT 0x12B5 +#define CL_IMAGE_REQUIREMENTS_MAX_ARRAY_SIZE_EXT 0x12B6 +/* Enqueued Commands APIs */ typedef cl_int (CL_API_CALL * -clGetDeviceImageInfoQCOM_fn)( - cl_device_id device, - size_t image_width, - size_t image_height, +clGetImageRequirementsInfoEXT_fn)( + cl_context context, + const cl_mem_properties* properties, + cl_mem_flags flags, const cl_image_format* image_format, - cl_image_pitch_info_qcom param_name, + const cl_image_desc* image_desc, + cl_image_requirements_info_ext param_name, size_t param_value_size, void* param_value, - size_t* param_value_size_ret) ; + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; #ifndef CL_NO_PROTOTYPES extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceImageInfoQCOM( - cl_device_id device, - size_t image_width, - size_t image_height, +clGetImageRequirementsInfoEXT( + cl_context context, + const cl_mem_properties* properties, + cl_mem_flags flags, const cl_image_format* image_format, - cl_image_pitch_info_qcom param_name, + const cl_image_desc* image_desc, + cl_image_requirements_info_ext param_name, size_t param_value_size, void* param_value, - size_t* param_value_size_ret) ; + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; #endif /* CL_NO_PROTOTYPES */ +#endif /* defined(CL_VERSION_3_0) */ + /*************************************************************** -* cl_qcom_ext_host_ptr_iocoherent +* cl_ext_image_from_buffer ***************************************************************/ -#define cl_qcom_ext_host_ptr_iocoherent 1 -#define CL_QCOM_EXT_HOST_PTR_IOCOHERENT_EXTENSION_NAME \ - "cl_qcom_ext_host_ptr_iocoherent" +#define cl_ext_image_from_buffer 1 +#define CL_EXT_IMAGE_FROM_BUFFER_EXTENSION_NAME \ + "cl_ext_image_from_buffer" -/* cl_uint host_cache_policy */ -#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 +/* cl_image_requirements_info_ext */ +#define CL_IMAGE_REQUIREMENTS_SLICE_PITCH_ALIGNMENT_EXT 0x1291 /*************************************************************** -* cl_qcom_ion_host_ptr +* cl_khr_depth_images ***************************************************************/ -#define cl_qcom_ion_host_ptr 1 -#define CL_QCOM_ION_HOST_PTR_EXTENSION_NAME \ - "cl_qcom_ion_host_ptr" +#define cl_khr_depth_images 1 +#define CL_KHR_DEPTH_IMAGES_EXTENSION_NAME \ + "cl_khr_depth_images" -/* type cl_mem_ext_host_ptr */ -typedef struct _cl_mem_ion_host_ptr { - cl_mem_ext_host_ptr ext_host_ptr; - int ion_filedesc; - void* ion_hostptr; -} cl_mem_ion_host_ptr; +#if !defined(CL_VERSION_1_2) +/* cl_channel_order - defined in CL.h for OpenCL 1.2 (?) and newer */ +#define CL_DEPTH 0x10BD -/* cl_uint allocation_type */ -#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 +#endif /* !defined(CL_VERSION_1_2) */ + +/*************************************************************** +* cl_ext_float_atomics +***************************************************************/ +#define cl_ext_float_atomics 1 +#define CL_EXT_FLOAT_ATOMICS_EXTENSION_NAME \ + "cl_ext_float_atomics" + +typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; + +/* cl_device_fp_atomic_capabilities_ext */ +#define CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 0) +#define CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT (1 << 1) +#define CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT (1 << 2) +#define CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 16) +#define CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT (1 << 17) +#define CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT (1 << 18) + +/* cl_device_info */ +#define CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT 0x4231 +#define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232 +#define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233 + +/*************************************************************** +* cl_intel_create_mem_object_properties +***************************************************************/ +#define cl_intel_create_mem_object_properties 1 +#define CL_INTEL_CREATE_MEM_OBJECT_PROPERTIES_EXTENSION_NAME \ + "cl_intel_create_mem_object_properties" + +/* cl_mem_properties */ +#define CL_MEM_LOCALLY_UNCACHED_RESOURCE_INTEL 0x4218 +#define CL_MEM_DEVICE_ID_INTEL 0x4219 + +/*************************************************************** +* cl_pocl_content_size +***************************************************************/ +#define cl_pocl_content_size 1 +#define CL_POCL_CONTENT_SIZE_EXTENSION_NAME \ + "cl_pocl_content_size" + + +typedef cl_int (CL_API_CALL * +clSetContentSizeBufferPoCL_fn)( + cl_mem buffer, + cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetContentSizeBufferPoCL( + cl_mem buffer, + cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; + +#endif /* CL_NO_PROTOTYPES */ #ifdef __cplusplus } diff --git a/CL/cl_gl.h b/CL/cl_gl.h index 661d6446..ce4516ca 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -27,64 +27,6 @@ extern "C" { #endif -/*************************************************************** -* cl_khr_gl_depth_images -***************************************************************/ -#define cl_khr_gl_depth_images 1 -#define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_NAME \ - "cl_khr_gl_depth_images" - -#if !defined(CL_VERSION_1_2) -/* cl_channel_order - defined in CL.h for OpenCL 1.2 and newer */ -#define CL_DEPTH_STENCIL 0x10BE - -#endif /* !defined(CL_VERSION_1_2) */ - -#if !defined(CL_VERSION_1_2) -/* cl_channel_type - defined in CL.h for OpenCL 1.2 and newer */ -#define CL_UNORM_INT24 0x10DF - -#endif /* !defined(CL_VERSION_1_2) */ - -/*************************************************************** -* cl_khr_gl_event -***************************************************************/ -#define cl_khr_gl_event 1 -#define CL_KHR_GL_EVENT_EXTENSION_NAME \ - "cl_khr_gl_event" - -typedef struct __GLsync * cl_GLsync; - -/* cl_command_type */ -#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D - - -typedef cl_event (CL_API_CALL * -clCreateEventFromGLsyncKHR_fn)( - cl_context context, - cl_GLsync sync, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; - -#ifndef CL_NO_PROTOTYPES - -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromGLsyncKHR( - cl_context context, - cl_GLsync sync, - cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; - -#endif /* CL_NO_PROTOTYPES */ - -/*************************************************************** -* cl_khr_gl_msaa_sharing -***************************************************************/ -#define cl_khr_gl_msaa_sharing 1 -#define CL_KHR_GL_MSAA_SHARING_EXTENSION_NAME \ - "cl_khr_gl_msaa_sharing" - -/* cl_gl_texture_info */ -#define CL_GL_NUM_SAMPLES 0x2012 - /*************************************************************** * cl_khr_gl_sharing ***************************************************************/ @@ -317,6 +259,64 @@ clCreateFromGLTexture3D( #endif /* CL_NO_PROTOTYPES */ +/*************************************************************** +* cl_khr_gl_event +***************************************************************/ +#define cl_khr_gl_event 1 +#define CL_KHR_GL_EVENT_EXTENSION_NAME \ + "cl_khr_gl_event" + +typedef struct __GLsync * cl_GLsync; + +/* cl_command_type */ +#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D + + +typedef cl_event (CL_API_CALL * +clCreateEventFromGLsyncKHR_fn)( + cl_context context, + cl_GLsync sync, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +#ifndef CL_NO_PROTOTYPES + +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateEventFromGLsyncKHR( + cl_context context, + cl_GLsync sync, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +#endif /* CL_NO_PROTOTYPES */ + +/*************************************************************** +* cl_khr_gl_depth_images +***************************************************************/ +#define cl_khr_gl_depth_images 1 +#define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_NAME \ + "cl_khr_gl_depth_images" + +#if !defined(CL_VERSION_1_2) +/* cl_channel_order - defined in CL.h for OpenCL 1.2 and newer */ +#define CL_DEPTH_STENCIL 0x10BE + +#endif /* !defined(CL_VERSION_1_2) */ + +#if !defined(CL_VERSION_1_2) +/* cl_channel_type - defined in CL.h for OpenCL 1.2 and newer */ +#define CL_UNORM_INT24 0x10DF + +#endif /* !defined(CL_VERSION_1_2) */ + +/*************************************************************** +* cl_khr_gl_msaa_sharing +***************************************************************/ +#define cl_khr_gl_msaa_sharing 1 +#define CL_KHR_GL_MSAA_SHARING_EXTENSION_NAME \ + "cl_khr_gl_msaa_sharing" + +/* cl_gl_texture_info */ +#define CL_GL_NUM_SAMPLES 0x2012 + /*************************************************************** * cl_intel_sharing_format_query_gl ***************************************************************/ diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 2f20ad13..926a4445 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -44,9 +44,128 @@ def shouldEmit(block): return True return False +# Initially, keep the same extension order: +orderedExtensions = [ + # cl_ext.h: + 'cl_khr_command_buffer', + 'cl_khr_command_buffer_mutable_dispatch', + 'cl_khr_fp64', + 'cl_khr_fp16', + 'cl_APPLE_SetMemObjectDestructor', + 'cl_APPLE_ContextLoggingFunctions', + 'cl_khr_icd', + 'cl_khr_il_program', + 'cl_khr_image2D_from_buffer', # incorrect name + 'cl_khr_image2d_from_buffer', + 'cl_khr_initialize_memory', + 'cl_khr_terminate_context', + 'cl_khr_spir', + 'cl_khr_create_command_queue', + 'cl_nv_device_attribute_query', + 'cl_amd_device_attribute_query', + 'cl_arm_printf', + 'cl_ext_device_fission', + 'cl_ext_migrate_memobject', + 'cl_ext_cxx_for_opencl', + 'cl_qcom_ext_host_ptr', + 'cl_qcom_ext_host_ptr_iocoherent', + 'cl_qcom_ion_host_ptr', + 'cl_qcom_android_native_buffer_host_ptr', + 'cl_img_yuv_image', + 'cl_img_cached_allocations', + 'cl_img_use_gralloc_ptr', + 'cl_img_generate_mipmap', + 'cl_img_mem_properties', + 'cl_khr_subgroups', + 'cl_khr_mipmap_image', + 'cl_khr_priority_hints', + 'cl_khr_throttle_hints', + 'cl_khr_subgroup_named_barrier', + 'cl_khr_extended_versioning', + 'cl_khr_device_uuid', + 'cl_khr_pci_bus_info', + 'cl_khr_suggested_local_work_size', + 'cl_khr_integer_dot_product', + 'cl_khr_external_memory', + 'cl_khr_external_memory_dma_buf', + 'cl_khr_external_memory_dx', + 'cl_khr_external_memory_opaque_fd', + 'cl_khr_external_memory_win32', + 'cl_khr_external_semaphore', + 'cl_khr_external_semaphore_dx_fence', + 'cl_khr_external_semaphore_opaque_fd', + 'cl_khr_external_semaphore_sync_fd', + 'cl_khr_external_semaphore_win32', + 'cl_khr_semaphore', + 'cl_arm_import_memory', + 'cl_arm_shared_virtual_memory', + 'cl_arm_get_core_id', + 'cl_arm_job_slot_selection', + 'cl_arm_scheduling_controls', + 'cl_arm_controlled_kernel_termination', + 'cl_arm_protected_memory_allocation', + 'cl_intel_exec_by_local_thread', + 'cl_intel_device_attribute_query', + 'cl_intel_device_partition_by_names', + 'cl_intel_accelerator', + 'cl_intel_motion_estimation', + 'cl_intel_advanced_motion_estimation', + 'cl_intel_simultaneous_sharing', + 'cl_intel_egl_image_yuv', + 'cl_intel_packed_yuv', + 'cl_intel_required_subgroup_size', + 'cl_intel_driver_diagnostics', + 'cl_intel_planar_yuv', + 'cl_intel_device_side_avc_motion_estimation', + 'cl_intel_unified_shared_memory', + 'cl_intel_mem_alloc_buffer_location', + 'cl_intel_create_buffer_with_properties', + 'cl_intel_program_scope_host_pipe', + 'cl_intel_mem_channel_property', + 'cl_intel_mem_force_host_memory', + 'cl_intel_command_queue_families', + 'cl_intel_queue_no_sync_operations', + 'cl_intel_sharing_format_query', + 'cl_ext_image_requirements_info', + 'cl_ext_image_from_buffer', + 'cl_loader_info', + 'cl_khr_depth_images', + 'cl_ext_float_atomics', + 'cl_intel_create_mem_object_properties', + 'cl_pocl_content_size', + # cl_d3d10.h + 'cl_khr_d3d10_sharing', + 'cl_intel_sharing_format_query_d3d10', + # cl_d3d11.h + 'cl_khr_d3d11_sharing', + 'cl_intel_sharing_format_query_d3d11', + # cl_dx9_media_sharing.h + 'cl_khr_dx9_media_sharing', + 'cl_intel_dx9_media_sharing', + 'cl_intel_sharing_format_query_dx9', + # cl_egl.h + 'cl_khr_egl_image', + 'cl_khr_egl_event', + # cl_gl.h + 'cl_khr_gl_sharing', + 'cl_khr_gl_event', + 'cl_khr_gl_depth_images', + 'cl_khr_gl_msaa_sharing', + 'cl_intel_sharing_format_query_gl', + # cl_layer.h + 'cl_loader_layers', + # cl_va_api_media_sharing_intel.h + 'cl_intel_sharing_format_query_va_api', + 'cl_intel_va_api_media_sharing', + ] + +def getExtensionSortKey(item): + name = item.get('name') + return orderedExtensions.index(name) + # Order the extensions should be emitted in the headers. # KHR -> EXT -> Vendor Extensions -def getExtensionSortKey(item): +def getExtensionSortKey_ideal(item): name = item.get('name') if name.startswith('cl_khr'): return 0, name From 8a4db190a1b6d12d944ff87e33d711b75521bfec Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Mon, 20 Mar 2023 22:23:21 -0700 Subject: [PATCH 24/40] update copyright dates to 2023 --- CL/cl_d3d10.h | 2 +- CL/cl_d3d11.h | 2 +- CL/cl_dx9_media_sharing.h | 2 +- CL/cl_egl.h | 2 +- CL/cl_ext.h | 2 +- CL/cl_gl.h | 2 +- CL/cl_layer.h | 2 +- CL/cl_va_api_media_sharing_intel.h | 2 +- scripts/cl_ext.h.mako | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CL/cl_d3d10.h b/CL/cl_d3d10.h index 0020fb5f..8a50f6e6 100644 --- a/CL/cl_d3d10.h +++ b/CL/cl_d3d10.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2022 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_d3d11.h b/CL/cl_d3d11.h index 7b8a527f..a78500bc 100644 --- a/CL/cl_d3d11.h +++ b/CL/cl_d3d11.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2022 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_dx9_media_sharing.h b/CL/cl_dx9_media_sharing.h index ec3feac2..52c7d51d 100644 --- a/CL/cl_dx9_media_sharing.h +++ b/CL/cl_dx9_media_sharing.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2022 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_egl.h b/CL/cl_egl.h index 0d1bdb9b..950ca81a 100644 --- a/CL/cl_egl.h +++ b/CL/cl_egl.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2022 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_ext.h b/CL/cl_ext.h index de2c3105..242cdcfa 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2022 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_gl.h b/CL/cl_gl.h index ce4516ca..e8c37bf5 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2022 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_layer.h b/CL/cl_layer.h index e0245854..3d7f9920 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2022 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/CL/cl_va_api_media_sharing_intel.h b/CL/cl_va_api_media_sharing_intel.h index 3c003aae..75ca33f3 100644 --- a/CL/cl_va_api_media_sharing_intel.h +++ b/CL/cl_va_api_media_sharing_intel.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2022 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 926a4445..9ae1b4e5 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -215,7 +215,7 @@ def isDuplicateName(name): return False %>/******************************************************************************* - * Copyright (c) 2008-2022 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From d659388c9533e7044182d26caca48dad59ced98b Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Mon, 20 Mar 2023 22:29:54 -0700 Subject: [PATCH 25/40] fix the name of the cl_khr_image2d_from_buffer extension --- CL/cl_ext.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 242cdcfa..1f5f9885 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -680,11 +680,11 @@ clCreateProgramWithILKHR( #endif /* CL_NO_PROTOTYPES */ /*************************************************************** -* cl_khr_image2D_from_buffer +* cl_khr_image2d_from_buffer ***************************************************************/ -#define cl_khr_image2D_from_buffer 1 +#define cl_khr_image2d_from_buffer 1 #define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \ - "cl_khr_image2D_from_buffer" + "cl_khr_image2d_from_buffer" /* cl_device_info */ #define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A From 4c9b8a3a37d68cae8f2164756dfa4fbf53d3fbd8 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 24 Mar 2023 21:33:03 -0700 Subject: [PATCH 26/40] fix layers layer_dispatch_ret --- CL/cl_layer.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CL/cl_layer.h b/CL/cl_layer.h index 3d7f9920..27e036c2 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -59,7 +59,7 @@ clInitLayer_fn)( cl_uint num_entries, const cl_icd_dispatch* target_dispatch, cl_uint* num_entries_ret, - const cl_icd_dispatch** layer_dispatch) ; + const cl_icd_dispatch** layer_dispatch_ret) ; /* ** The function pointer typedefs prefixed with "pfn_" are provided for @@ -80,7 +80,7 @@ pfn_clInitLayer)( cl_uint num_entries, const cl_icd_dispatch* target_dispatch, cl_uint* num_entries_ret, - const cl_icd_dispatch** layer_dispatch) ; + const cl_icd_dispatch** layer_dispatch_ret) ; #ifndef CL_NO_PROTOTYPES @@ -96,7 +96,7 @@ clInitLayer( cl_uint num_entries, const cl_icd_dispatch* target_dispatch, cl_uint* num_entries_ret, - const cl_icd_dispatch** layer_dispatch) ; + const cl_icd_dispatch** layer_dispatch_ret) ; #endif /* CL_NO_PROTOTYPES */ From 39c98a1b44be1aa7c9efd7366a28829bc7b50114 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 24 Mar 2023 21:35:56 -0700 Subject: [PATCH 27/40] fix errcode_ret for clCreateFromGLBuffer --- CL/cl_gl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CL/cl_gl.h b/CL/cl_gl.h index e8c37bf5..30898b7d 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -87,7 +87,7 @@ clCreateFromGLBuffer_fn)( cl_context context, cl_mem_flags flags, cl_GLuint bufobj, - int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; #ifndef CL_NO_PROTOTYPES @@ -104,7 +104,7 @@ clCreateFromGLBuffer( cl_context context, cl_mem_flags flags, cl_GLuint bufobj, - int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; #endif /* CL_NO_PROTOTYPES */ From e70f7c7317c5bbfccb21c7c9510d33b630831fde Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 24 Mar 2023 21:40:37 -0700 Subject: [PATCH 28/40] add CL_VERSION_3_0 guard to cl_ext_image_from_buffer --- CL/cl_ext.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 1f5f9885..658ad356 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -3082,6 +3082,8 @@ clGetImageRequirementsInfoEXT( /*************************************************************** * cl_ext_image_from_buffer ***************************************************************/ +#if defined(CL_VERSION_3_0) + #define cl_ext_image_from_buffer 1 #define CL_EXT_IMAGE_FROM_BUFFER_EXTENSION_NAME \ "cl_ext_image_from_buffer" @@ -3089,6 +3091,8 @@ clGetImageRequirementsInfoEXT( /* cl_image_requirements_info_ext */ #define CL_IMAGE_REQUIREMENTS_SLICE_PITCH_ALIGNMENT_EXT 0x1291 +#endif /* defined(CL_VERSION_3_0) */ + /*************************************************************** * cl_khr_depth_images ***************************************************************/ From 676a5b7f2fe439e32c0515917f0d714d291666b3 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 24 Mar 2023 21:45:09 -0700 Subject: [PATCH 29/40] add CL_API_SUFFIX__VERSION_1_2 to clCreateProgramWithILKHR --- CL/cl_ext.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 658ad356..7e4f381b 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -666,7 +666,7 @@ clCreateProgramWithILKHR_fn)( cl_context context, const void* il, size_t length, - cl_int* errcode_ret) ; + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; #ifndef CL_NO_PROTOTYPES @@ -675,7 +675,7 @@ clCreateProgramWithILKHR( cl_context context, const void* il, size_t length, - cl_int* errcode_ret) ; + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; #endif /* CL_NO_PROTOTYPES */ From 5ebe78f5b5a796d13b20c52e315a1393eb73359f Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 24 Mar 2023 21:48:16 -0700 Subject: [PATCH 30/40] add CL_VERSION_1_2 condition to cl_arm_get_core_id --- CL/cl_ext.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 7e4f381b..fb2b6e41 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -2000,6 +2000,8 @@ clSetKernelExecInfoARM( /*************************************************************** * cl_arm_get_core_id ***************************************************************/ +#if defined(CL_VERSION_1_2) + #define cl_arm_get_core_id 1 #define CL_ARM_GET_CORE_ID_EXTENSION_NAME \ "cl_arm_get_core_id" @@ -2007,6 +2009,8 @@ clSetKernelExecInfoARM( /* cl_device_info */ #define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF +#endif /* defined(CL_VERSION_1_2) */ + /*************************************************************** * cl_arm_job_slot_selection ***************************************************************/ From 1fcee9e67dfce914ef9f3c6066fc2f8d3b1ba5ba Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 24 Mar 2023 21:50:31 -0700 Subject: [PATCH 31/40] add CL_API_SUFFIX__VERSION_1_0 to clCreateBufferWithPropertiesINTEL --- CL/cl_ext.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index fb2b6e41..eacd9bcc 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -2866,7 +2866,7 @@ clCreateBufferWithPropertiesINTEL_fn)( cl_mem_flags flags, size_t size, void* host_ptr, - cl_int* errcode_ret) ; + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; #ifndef CL_NO_PROTOTYPES @@ -2877,7 +2877,7 @@ clCreateBufferWithPropertiesINTEL( cl_mem_flags flags, size_t size, void* host_ptr, - cl_int* errcode_ret) ; + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; #endif /* CL_NO_PROTOTYPES */ From e333d1c97b8bc3414c76e8016b5b30800a2ddf18 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 24 Mar 2023 21:52:34 -0700 Subject: [PATCH 32/40] add CL_API_SUFFIX__VERSION_1_0 to clEnqueueReadHostPipeINTEL and clEnqueueWriteHostPipeINTEL --- CL/cl_ext.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index eacd9bcc..5a3562c6 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -2907,7 +2907,7 @@ clEnqueueReadHostPipeINTEL_fn)( size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, - cl_event* event) ; + cl_event* event) CL_API_SUFFIX__VERSION_1_0; typedef cl_int (CL_API_CALL * clEnqueueWriteHostPipeINTEL_fn)( @@ -2919,7 +2919,7 @@ clEnqueueWriteHostPipeINTEL_fn)( size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, - cl_event* event) ; + cl_event* event) CL_API_SUFFIX__VERSION_1_0; #ifndef CL_NO_PROTOTYPES @@ -2933,7 +2933,7 @@ clEnqueueReadHostPipeINTEL( size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, - cl_event* event) ; + cl_event* event) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueWriteHostPipeINTEL( @@ -2945,7 +2945,7 @@ clEnqueueWriteHostPipeINTEL( size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, - cl_event* event) ; + cl_event* event) CL_API_SUFFIX__VERSION_1_0; #endif /* CL_NO_PROTOTYPES */ From 9fd22c1ac484abfca657e2770d7c633a1f312a27 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 24 Mar 2023 22:21:17 -0700 Subject: [PATCH 33/40] fix off-by-one error for large bitfield bits --- CL/cl_ext.h | 2 +- scripts/cl_ext.h.mako | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 5a3562c6..080b0ec8 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -2108,7 +2108,7 @@ typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; "cl_intel_exec_by_local_thread" /* cl_command_queue_properties - bitfield */ -#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (1 << 31) +#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (1ULL << 31) /*************************************************************** * cl_intel_device_attribute_query diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 9ae1b4e5..d3802f08 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -198,7 +198,7 @@ def getCParameterStrings(params): # Gets a bit string for the specified bit position: def getBitPosString(bitpos): ret = '(1' - ret += 'ULL' if int(bitpos) > 31 else '' + ret += 'ULL' if int(bitpos) >= 31 else '' ret += ' << ' ret += bitpos ret += ')' From 6a29cd2631419b16d0bc5ca53ee8289c906183fd Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 24 Mar 2023 23:02:34 -0700 Subject: [PATCH 34/40] switch the syntax for large bitfield bits --- CL/cl_ext.h | 4 ++-- scripts/cl_ext.h.mako | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 080b0ec8..742849dc 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -2098,7 +2098,7 @@ typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; #define CL_ARM_PROTECTED_MEMORY_ALLOCATION_EXTENSION_NAME \ "cl_arm_protected_memory_allocation" -#define CL_MEM_PROTECTED_ALLOC_ARM (1ULL << 36) +#define CL_MEM_PROTECTED_ALLOC_ARM ((cl_bitfield)1 << 36) /*************************************************************** * cl_intel_exec_by_local_thread @@ -2108,7 +2108,7 @@ typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; "cl_intel_exec_by_local_thread" /* cl_command_queue_properties - bitfield */ -#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (1ULL << 31) +#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL ((cl_bitfield)1 << 31) /*************************************************************** * cl_intel_device_attribute_query diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index d3802f08..95ab8fa5 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -197,9 +197,9 @@ def getCParameterStrings(params): # Gets a bit string for the specified bit position: def getBitPosString(bitpos): - ret = '(1' - ret += 'ULL' if int(bitpos) >= 31 else '' - ret += ' << ' + ret = '(' + ret += '(cl_bitfield)' if int(bitpos) >= 31 else '' + ret += '1 << ' ret += bitpos ret += ')' return ret From 20518aec68a820543ef3be60b0920047fba0aabc Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 28 Mar 2023 16:25:55 -0700 Subject: [PATCH 35/40] refactor prototype guards for extension APIs Add CL_NO_EXTENSION_PROTOTYPES which affects all extension prototypes. Add CL_NO_EXPORTED_EXTENSION_PROTOTYPES which affects extension prototypes that are exported by some ICD loaders. Add CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES which affects extension prototypes that are exported by no known ICD loaders. Also cleans up generation on Windows, which otherwise would generate \r\n line separators. --- CL/cl_d3d10.h | 19 +- CL/cl_d3d11.h | 19 +- CL/cl_dx9_media_sharing.h | 23 ++- CL/cl_egl.h | 19 +- CL/cl_ext.h | 163 ++++++++++------ CL/cl_gl.h | 35 ++-- CL/cl_layer.h | 15 +- CL/cl_va_api_media_sharing_intel.h | 19 +- scripts/cl_ext.h.mako | 33 +++- scripts/gen_headers.py | 291 +++++++++++++++-------------- 10 files changed, 394 insertions(+), 242 deletions(-) diff --git a/CL/cl_d3d10.h b/CL/cl_d3d10.h index 8a50f6e6..502190e2 100644 --- a/CL/cl_d3d10.h +++ b/CL/cl_d3d10.h @@ -37,6 +37,17 @@ #include +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ + +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + #ifdef __cplusplus extern "C" { #endif @@ -131,7 +142,7 @@ clEnqueueReleaseD3D10ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromD3D10KHR( @@ -184,7 +195,7 @@ clEnqueueReleaseD3D10ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_sharing_format_query_d3d10 @@ -204,7 +215,7 @@ clGetSupportedD3D10TextureFormatsINTEL_fn)( DXGI_FORMAT* d3d10_formats, cl_uint* num_texture_formats) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedD3D10TextureFormatsINTEL( @@ -215,7 +226,7 @@ clGetSupportedD3D10TextureFormatsINTEL( DXGI_FORMAT* d3d10_formats, cl_uint* num_texture_formats) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_d3d11.h b/CL/cl_d3d11.h index a78500bc..1517a7d1 100644 --- a/CL/cl_d3d11.h +++ b/CL/cl_d3d11.h @@ -37,6 +37,17 @@ #include +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ + +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + #ifdef __cplusplus extern "C" { #endif @@ -131,7 +142,7 @@ clEnqueueReleaseD3D11ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromD3D11KHR( @@ -184,7 +195,7 @@ clEnqueueReleaseD3D11ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_sharing_format_query_d3d11 @@ -205,7 +216,7 @@ clGetSupportedD3D11TextureFormatsINTEL_fn)( DXGI_FORMAT* d3d11_formats, cl_uint* num_texture_formats) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedD3D11TextureFormatsINTEL( @@ -217,7 +228,7 @@ clGetSupportedD3D11TextureFormatsINTEL( DXGI_FORMAT* d3d11_formats, cl_uint* num_texture_formats) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_dx9_media_sharing.h b/CL/cl_dx9_media_sharing.h index 52c7d51d..e9c9598c 100644 --- a/CL/cl_dx9_media_sharing.h +++ b/CL/cl_dx9_media_sharing.h @@ -39,6 +39,17 @@ #include +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ + +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + #ifdef __cplusplus extern "C" { #endif @@ -131,7 +142,7 @@ clEnqueueReleaseDX9MediaSurfacesKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromDX9MediaAdapterKHR( @@ -171,7 +182,7 @@ clEnqueueReleaseDX9MediaSurfacesKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_dx9_media_sharing @@ -252,7 +263,7 @@ clEnqueueReleaseDX9ObjectsINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromDX9INTEL( @@ -291,7 +302,7 @@ clEnqueueReleaseDX9ObjectsINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_sharing_format_query_dx9 @@ -312,7 +323,7 @@ clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( D3DFORMAT* dx9_formats, cl_uint* num_surface_formats) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedDX9MediaSurfaceFormatsINTEL( @@ -324,7 +335,7 @@ clGetSupportedDX9MediaSurfaceFormatsINTEL( D3DFORMAT* dx9_formats, cl_uint* num_surface_formats) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_egl.h b/CL/cl_egl.h index 950ca81a..c063e68a 100644 --- a/CL/cl_egl.h +++ b/CL/cl_egl.h @@ -23,6 +23,17 @@ #include +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ + +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + #ifdef __cplusplus extern "C" { #endif @@ -80,7 +91,7 @@ clEnqueueReleaseEGLObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromEGLImageKHR( @@ -109,7 +120,7 @@ clEnqueueReleaseEGLObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_egl_event @@ -132,7 +143,7 @@ clCreateEventFromEGLSyncKHR_fn)( CLeglDisplayKHR display, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_event CL_API_CALL clCreateEventFromEGLSyncKHR( @@ -141,7 +152,7 @@ clCreateEventFromEGLSyncKHR( CLeglDisplayKHR display, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 742849dc..8ce2579d 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -23,6 +23,17 @@ #include +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ + +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + #ifdef __cplusplus extern "C" { #endif @@ -244,7 +255,7 @@ clGetCommandBufferInfoKHR_fn)( void* param_value, size_t* param_value_size_ret) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL clCreateCommandBufferKHR( @@ -407,7 +418,7 @@ clGetCommandBufferInfoKHR( void* param_value, size_t* param_value_size_ret) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_command_buffer_mutable_dispatch @@ -499,7 +510,7 @@ clGetMutableCommandInfoKHR_fn)( void* param_value, size_t* param_value_size_ret) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clUpdateMutableCommandsKHR( @@ -514,7 +525,7 @@ clGetMutableCommandInfoKHR( void* param_value, size_t* param_value_size_ret) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_fp64 @@ -553,7 +564,7 @@ clSetMemObjectDestructorAPPLE_fn)( void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clSetMemObjectDestructorAPPLE( @@ -561,7 +572,7 @@ clSetMemObjectDestructorAPPLE( void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_APPLE_ContextLoggingFunctions @@ -592,7 +603,7 @@ clLogMessagesToStderrAPPLE_fn)( size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY void CL_API_CALL clLogMessagesToSystemLogAPPLE( @@ -615,7 +626,7 @@ clLogMessagesToStderrAPPLE( size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_icd @@ -637,7 +648,7 @@ clIcdGetPlatformIDsKHR_fn)( cl_platform_id* platforms, cl_uint* num_platforms) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clIcdGetPlatformIDsKHR( @@ -645,7 +656,7 @@ clIcdGetPlatformIDsKHR( cl_platform_id* platforms, cl_uint* num_platforms) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_il_program @@ -668,7 +679,7 @@ clCreateProgramWithILKHR_fn)( size_t length, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_program CL_API_CALL clCreateProgramWithILKHR( @@ -677,14 +688,14 @@ clCreateProgramWithILKHR( size_t length, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** -* cl_khr_image2d_from_buffer +* cl_khr_image2D_from_buffer ***************************************************************/ -#define cl_khr_image2d_from_buffer 1 +#define cl_khr_image2D_from_buffer 1 #define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \ - "cl_khr_image2d_from_buffer" + "cl_khr_image2D_from_buffer" /* cl_device_info */ #define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A @@ -726,13 +737,13 @@ typedef cl_int (CL_API_CALL * clTerminateContextKHR_fn)( cl_context context) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR( cl_context context) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_spir @@ -764,7 +775,7 @@ clCreateCommandQueueWithPropertiesKHR_fn)( const cl_queue_properties_khr* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_command_queue CL_API_CALL clCreateCommandQueueWithPropertiesKHR( @@ -773,7 +784,7 @@ clCreateCommandQueueWithPropertiesKHR( const cl_queue_properties_khr* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_nv_device_attribute_query @@ -889,7 +900,7 @@ clCreateSubDevicesEXT_fn)( cl_device_id* out_devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clReleaseDeviceEXT( @@ -907,7 +918,7 @@ clCreateSubDevicesEXT( cl_device_id* out_devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_ext_migrate_memobject @@ -935,7 +946,7 @@ clEnqueueMigrateMemObjectEXT_fn)( const cl_event* event_wait_list, cl_event* event) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMigrateMemObjectEXT( @@ -947,7 +958,7 @@ clEnqueueMigrateMemObjectEXT( const cl_event* event_wait_list, cl_event* event) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_ext_cxx_for_opencl @@ -1001,7 +1012,7 @@ clGetDeviceImageInfoQCOM_fn)( void* param_value, size_t* param_value_size_ret) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceImageInfoQCOM( @@ -1014,7 +1025,7 @@ clGetDeviceImageInfoQCOM( void* param_value, size_t* param_value_size_ret) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_qcom_ext_host_ptr_iocoherent @@ -1118,7 +1129,7 @@ clEnqueueReleaseGrallocObjectsIMG_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireGrallocObjectsIMG( @@ -1138,7 +1149,7 @@ clEnqueueReleaseGrallocObjectsIMG( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_img_generate_mipmap @@ -1169,7 +1180,7 @@ clEnqueueGenerateMipmapIMG_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueGenerateMipmapIMG( @@ -1183,7 +1194,7 @@ clEnqueueGenerateMipmapIMG( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_img_mem_properties @@ -1227,7 +1238,7 @@ clGetKernelSubGroupInfoKHR_fn)( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetKernelSubGroupInfoKHR( @@ -1240,7 +1251,7 @@ clGetKernelSubGroupInfoKHR( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_mipmap_image @@ -1395,7 +1406,7 @@ clGetKernelSuggestedLocalWorkSizeKHR_fn)( const size_t* global_work_size, size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetKernelSuggestedLocalWorkSizeKHR( @@ -1406,7 +1417,7 @@ clGetKernelSuggestedLocalWorkSizeKHR( const size_t* global_work_size, size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_integer_dot_product @@ -1476,7 +1487,7 @@ clEnqueueReleaseExternalMemObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireExternalMemObjectsKHR( @@ -1496,7 +1507,7 @@ clEnqueueReleaseExternalMemObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_external_memory_dma_buf @@ -1574,7 +1585,7 @@ clGetSemaphoreHandleForTypeKHR_fn)( void* handle_ptr, size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSemaphoreHandleForTypeKHR( @@ -1585,7 +1596,7 @@ clGetSemaphoreHandleForTypeKHR( void* handle_ptr, size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_external_semaphore_dx_fence @@ -1711,7 +1722,7 @@ typedef cl_int (CL_API_CALL * clRetainSemaphoreKHR_fn)( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL clCreateSemaphoreWithPropertiesKHR( @@ -1755,7 +1766,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clRetainSemaphoreKHR( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_arm_import_memory @@ -1787,7 +1798,7 @@ clImportMemoryARM_fn)( size_t size, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clImportMemoryARM( @@ -1798,7 +1809,7 @@ clImportMemoryARM( size_t size, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_arm_shared_virtual_memory @@ -1916,7 +1927,7 @@ clSetKernelExecInfoARM_fn)( size_t param_value_size, const void* param_value) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY void* CL_API_CALL clSVMAllocARM( @@ -1995,7 +2006,7 @@ clSetKernelExecInfoARM( size_t param_value_size, const void* param_value) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_arm_get_core_id @@ -2190,7 +2201,7 @@ typedef cl_int (CL_API_CALL * clReleaseAcceleratorINTEL_fn)( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL clCreateAcceleratorINTEL( @@ -2216,7 +2227,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clReleaseAcceleratorINTEL( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_motion_estimation @@ -2694,7 +2705,7 @@ clEnqueueMemAdviseINTEL_fn)( const cl_event* event_wait_list, cl_event* event) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY void* CL_API_CALL clHostMemAllocINTEL( @@ -2779,7 +2790,7 @@ clEnqueueMemAdviseINTEL( const cl_event* event_wait_list, cl_event* event) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #if defined(CL_VERSION_1_2) /* Requires OpenCL 1.2 for cl_mem_migration_flags: */ @@ -2794,7 +2805,7 @@ clEnqueueMigrateMemINTEL_fn)( const cl_event* event_wait_list, cl_event* event) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMigrateMemINTEL( @@ -2806,7 +2817,7 @@ clEnqueueMigrateMemINTEL( const cl_event* event_wait_list, cl_event* event) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #endif /* defined(CL_VERSION_1_2) */ @@ -2822,7 +2833,7 @@ clEnqueueMemsetINTEL_fn)( const cl_event* event_wait_list, cl_event* event) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMemsetINTEL( @@ -2834,7 +2845,7 @@ clEnqueueMemsetINTEL( const cl_event* event_wait_list, cl_event* event) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_mem_alloc_buffer_location @@ -2868,7 +2879,7 @@ clCreateBufferWithPropertiesINTEL_fn)( void* host_ptr, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateBufferWithPropertiesINTEL( @@ -2879,7 +2890,7 @@ clCreateBufferWithPropertiesINTEL( void* host_ptr, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_program_scope_host_pipe @@ -2921,7 +2932,7 @@ clEnqueueWriteHostPipeINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReadHostPipeINTEL( @@ -2947,7 +2958,7 @@ clEnqueueWriteHostPipeINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_mem_channel_property @@ -3065,7 +3076,7 @@ clGetImageRequirementsInfoEXT_fn)( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetImageRequirementsInfoEXT( @@ -3079,7 +3090,7 @@ clGetImageRequirementsInfoEXT( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #endif /* defined(CL_VERSION_3_0) */ @@ -3097,6 +3108,40 @@ clGetImageRequirementsInfoEXT( #endif /* defined(CL_VERSION_3_0) */ +/*************************************************************** +* cl_loader_info +***************************************************************/ +#define cl_loader_info 1 +#define CL_LOADER_INFO_EXTENSION_NAME \ + "cl_loader_info" + +typedef cl_uint cl_icdl_info; + +/* cl_icdl_info */ +#define CL_ICDL_OCL_VERSION 1 +#define CL_ICDL_VERSION 2 +#define CL_ICDL_NAME 3 +#define CL_ICDL_VENDOR 4 + + +typedef cl_int (CL_API_CALL * +clGetICDLoaderInfoOCLICD_fn)( + cl_icdl_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetICDLoaderInfoOCLICD( + cl_icdl_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + /*************************************************************** * cl_khr_depth_images ***************************************************************/ @@ -3156,14 +3201,14 @@ clSetContentSizeBufferPoCL_fn)( cl_mem buffer, cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clSetContentSizeBufferPoCL( cl_mem buffer, cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_gl.h b/CL/cl_gl.h index 30898b7d..578ee758 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -23,6 +23,17 @@ #include +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ + +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + #ifdef __cplusplus extern "C" { #endif @@ -89,7 +100,7 @@ clCreateFromGLBuffer_fn)( cl_GLuint bufobj, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetGLContextInfoKHR( @@ -106,7 +117,7 @@ clCreateFromGLBuffer( cl_GLuint bufobj, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ #if defined(CL_VERSION_1_2) @@ -119,7 +130,7 @@ clCreateFromGLTexture_fn)( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromGLTexture( @@ -130,7 +141,7 @@ clCreateFromGLTexture( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ #endif /* defined(CL_VERSION_1_2) */ @@ -174,7 +185,7 @@ clEnqueueReleaseGLObjects_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromGLRenderbuffer( @@ -215,7 +226,7 @@ clEnqueueReleaseGLObjects( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ /* OpenCL 1.0 APIs that were deprecated in OpenCL 1.2 */ @@ -237,7 +248,7 @@ clCreateFromGLTexture3D_fn)( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromGLTexture2D( @@ -257,7 +268,7 @@ clCreateFromGLTexture3D( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_gl_event @@ -278,7 +289,7 @@ clCreateEventFromGLsyncKHR_fn)( cl_GLsync sync, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_event CL_API_CALL clCreateEventFromGLsyncKHR( @@ -286,7 +297,7 @@ clCreateEventFromGLsyncKHR( cl_GLsync sync, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_gl_depth_images @@ -335,7 +346,7 @@ clGetSupportedGLTextureFormatsINTEL_fn)( cl_GLenum* gl_formats, cl_uint* num_texture_formats) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedGLTextureFormatsINTEL( @@ -346,7 +357,7 @@ clGetSupportedGLTextureFormatsINTEL( cl_GLenum* gl_formats, cl_uint* num_texture_formats) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_layer.h b/CL/cl_layer.h index 27e036c2..0eaa1d81 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -25,6 +25,17 @@ #include +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ + +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + #ifdef __cplusplus extern "C" { #endif @@ -82,7 +93,7 @@ pfn_clInitLayer)( cl_uint* num_entries_ret, const cl_icd_dispatch** layer_dispatch_ret) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetLayerInfo( @@ -98,7 +109,7 @@ clInitLayer( cl_uint* num_entries_ret, const cl_icd_dispatch** layer_dispatch_ret) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_va_api_media_sharing_intel.h b/CL/cl_va_api_media_sharing_intel.h index 75ca33f3..a3332688 100644 --- a/CL/cl_va_api_media_sharing_intel.h +++ b/CL/cl_va_api_media_sharing_intel.h @@ -25,6 +25,17 @@ #include +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ + +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + #ifdef __cplusplus extern "C" { #endif @@ -48,7 +59,7 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( VAImageFormat* va_api_formats, cl_uint* num_surface_formats) ; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedVA_APIMediaSurfaceFormatsINTEL( @@ -60,7 +71,7 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL( VAImageFormat* va_api_formats, cl_uint* num_surface_formats) ; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_va_api_media_sharing @@ -135,7 +146,7 @@ clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#ifndef CL_NO_PROTOTYPES +#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromVA_APIMediaAdapterINTEL( @@ -173,7 +184,7 @@ clEnqueueReleaseVA_APIMediaSurfacesINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* CL_NO_PROTOTYPES */ +#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 95ab8fa5..938e97ad 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -204,6 +204,24 @@ def getBitPosString(bitpos): ret += ')' return ret +# Extensions that are exported from some OpenCL ICD loaders: +exportedExtensions = { + 'cl_ext_device_fission', + 'cl_khr_egl_event', + 'cl_khr_egl_image', + 'cl_khr_gl_event', + 'cl_khr_gl_sharing', + 'cl_khr_subgroups' + } + +# Gets the preprocessor guard for the given extension: +def getPrototypeIfGuard(name): + if name in exportedExtensions: + guard = '!defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES)' + else: + guard = '!defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES)' + return guard + # Names that have been generated already, since some may be shared by multiple # extensions: generatedNames = set() @@ -243,6 +261,17 @@ ${includes} %endif #include +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ + +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES +#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ + #ifdef __cplusplus extern "C" { #endif @@ -347,7 +376,7 @@ pfn_${api.Name})( % endfor % endif -#ifndef CL_NO_PROTOTYPES +#if ${getPrototypeIfGuard(name)} % for func in block.findall('command'): <% api = apisigs[func.get('name')] @@ -363,7 +392,7 @@ ${api.Name}( % endfor % endfor -#endif /* CL_NO_PROTOTYPES */ +#endif /* ${getPrototypeIfGuard(name)} */ % endif % if block.get('condition'): diff --git a/scripts/gen_headers.py b/scripts/gen_headers.py index a1622f22..96904838 100644 --- a/scripts/gen_headers.py +++ b/scripts/gen_headers.py @@ -15,6 +15,7 @@ # limitations under the License. import gen +import re from mako.template import Template from mako.exceptions import RichTraceback @@ -58,167 +59,167 @@ def getWin32OnlyIncludeString(include): extapis = gen.get_extapis(spec, apisigs) try: - cl_ext_h_template = Template(filename='cl_ext.h.mako') + cl_ext_h_template = Template(filename='cl_ext.h.mako', input_encoding='utf-8') print('Generating cl_dx9_media_sharing.h...') - gen = open(args.directory + '/cl_dx9_media_sharing.h', 'wb') - gen.write( - cl_ext_h_template.render_unicode( - genExtensions={ - 'cl_khr_dx9_media_sharing', - 'cl_intel_dx9_media_sharing', - 'cl_intel_sharing_format_query_dx9', - }, - guard="OPENCL_CL_DX9_MEDIA_SHARING_H_", - includes=getWin32OnlyIncludeString(getDisableWarningIncludeString("#include ")), - generate_pfn_typedefs=False, - spec=spec, - typedefs=typedefs, - macros=macros, - structs=structs, - enums=enums, - apisigs=apisigs, - coreapis=coreapis, - extapis=extapis). - encode('utf-8', 'replace')) + text = cl_ext_h_template.render( + genExtensions={ + 'cl_khr_dx9_media_sharing', + 'cl_intel_dx9_media_sharing', + 'cl_intel_sharing_format_query_dx9', + }, + guard="OPENCL_CL_DX9_MEDIA_SHARING_H_", + includes=getWin32OnlyIncludeString(getDisableWarningIncludeString("#include ")), + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_dx9_media_sharing.h', 'w') as gen: + gen.write(text) print('Generating cl_d3d10.h...') - gen = open(args.directory + '/cl_d3d10.h', 'wb') - gen.write( - cl_ext_h_template.render_unicode( - genExtensions={ - 'cl_khr_d3d10_sharing', - 'cl_intel_sharing_format_query_d3d10', - }, - guard="OPENCL_CL_D3D10_H_", - includes=getDisableWarningIncludeString("#include "), - generate_pfn_typedefs=False, - spec=spec, - typedefs=typedefs, - macros=macros, - structs=structs, - enums=enums, - apisigs=apisigs, - coreapis=coreapis, - extapis=extapis). - encode('utf-8', 'replace')) + text = cl_ext_h_template.render( + genExtensions={ + 'cl_khr_d3d10_sharing', + 'cl_intel_sharing_format_query_d3d10', + }, + guard="OPENCL_CL_D3D10_H_", + includes=getDisableWarningIncludeString("#include "), + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_d3d10.h', 'w') as gen: + gen.write(text) print('Generating cl_d3d11.h...') - gen = open(args.directory + '/cl_d3d11.h', 'wb') - gen.write( - cl_ext_h_template.render_unicode( - genExtensions={ - 'cl_khr_d3d11_sharing', - 'cl_intel_sharing_format_query_d3d11' - }, - guard="OPENCL_CL_D3D11_H_", - includes=getDisableWarningIncludeString("#include "), - generate_pfn_typedefs=False, - spec=spec, - typedefs=typedefs, - macros=macros, - structs=structs, - enums=enums, - apisigs=apisigs, - coreapis=coreapis, - extapis=extapis). - encode('utf-8', 'replace')) + text = cl_ext_h_template.render( + genExtensions={ + 'cl_khr_d3d11_sharing', + 'cl_intel_sharing_format_query_d3d11' + }, + guard="OPENCL_CL_D3D11_H_", + includes=getDisableWarningIncludeString("#include "), + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_d3d11.h', 'w') as gen: + gen.write(text) print('Generating cl_egl.h...') - gen = open(args.directory + '/cl_egl.h', 'wb') - gen.write( - cl_ext_h_template.render_unicode( - genExtensions={'cl_khr_egl_event', 'cl_khr_egl_image'}, - guard="OPENCL_CL_EGL_H_", - generate_pfn_typedefs=False, - spec=spec, - typedefs=typedefs, - macros=macros, - structs=structs, - enums=enums, - apisigs=apisigs, - coreapis=coreapis, - extapis=extapis). - encode('utf-8', 'replace')) + text = cl_ext_h_template.render( + genExtensions={'cl_khr_egl_event', 'cl_khr_egl_image'}, + guard="OPENCL_CL_EGL_H_", + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_egl.h', 'w') as gen: + gen.write(text) print('Generating cl_gl.h...') - gen = open(args.directory + '/cl_gl.h', 'wb') - gen.write( - cl_ext_h_template.render_unicode( - genExtensions={ - 'cl_khr_gl_depth_images', - 'cl_khr_gl_event', - 'cl_khr_gl_msaa_sharing', - 'cl_khr_gl_sharing', - 'cl_intel_sharing_format_query_gl', - }, - guard="OPENCL_CL_GL_H_", - generate_pfn_typedefs=False, - spec=spec, - typedefs=typedefs, - macros=macros, - structs=structs, - enums=enums, - apisigs=apisigs, - coreapis=coreapis, - extapis=extapis). - encode('utf-8', 'replace')) + text = cl_ext_h_template.render( + genExtensions={ + 'cl_khr_gl_depth_images', + 'cl_khr_gl_event', + 'cl_khr_gl_msaa_sharing', + 'cl_khr_gl_sharing', + 'cl_intel_sharing_format_query_gl', + }, + guard="OPENCL_CL_GL_H_", + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_gl.h', 'w') as gen: + gen.write(text) print('Generating cl_layer.h...') - gen = open(args.directory + '/cl_layer.h', 'wb') - gen.write( - cl_ext_h_template.render_unicode( - genExtensions={'cl_loader_layers'}, - guard="OPENCL_CL_LAYER_H_", - includes='#include ', - generate_pfn_typedefs=True, - spec=spec, - typedefs=typedefs, - macros=macros, - structs=structs, - enums=enums, - apisigs=apisigs, - coreapis=coreapis, - extapis=extapis). - encode('utf-8', 'replace')) + text = cl_ext_h_template.render( + genExtensions={'cl_loader_layers'}, + guard="OPENCL_CL_LAYER_H_", + includes='#include ', + generate_pfn_typedefs=True, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_layer.h', 'w') as gen: + gen.write(text) print('Generating cl_va_api_media_sharing_intel.h...') - gen = open(args.directory + '/cl_va_api_media_sharing_intel.h', 'wb') - gen.write( - cl_ext_h_template.render_unicode( - genExtensions={ - 'cl_intel_va_api_media_sharing', - 'cl_intel_sharing_format_query_va_api', - }, - guard="OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_", - includes='#include ', - generate_pfn_typedefs=False, - spec=spec, - typedefs=typedefs, - macros=macros, - structs=structs, - enums=enums, - apisigs=apisigs, - coreapis=coreapis, - extapis=extapis). - encode('utf-8', 'replace')) + text = cl_ext_h_template.render( + genExtensions={ + 'cl_intel_va_api_media_sharing', + 'cl_intel_sharing_format_query_va_api', + }, + guard="OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_", + includes='#include ', + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_va_api_media_sharing_intel.h', 'w') as gen: + gen.write(text) print('Generating cl_ext.h...') - gen = open(args.directory + '/cl_ext.h', 'wb') - gen.write( - cl_ext_h_template.render_unicode( - genExtensions={}, - guard="OPENCL_CL_EXT_H_", - generate_pfn_typedefs=False, - spec=spec, - typedefs=typedefs, - macros=macros, - structs=structs, - enums=enums, - apisigs=apisigs, - coreapis=coreapis, - extapis=extapis). - encode('utf-8', 'replace')) + text = cl_ext_h_template.render( + genExtensions={}, + guard="OPENCL_CL_EXT_H_", + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_ext.h', 'w') as gen: + gen.write(text) except: traceback = RichTraceback() for (filename, lineno, function, line) in traceback.traceback: From 95f7ea2276729cfc55ae7d31e49679b874def73c Mon Sep 17 00:00:00 2001 From: Brice Videau Date: Tue, 28 Mar 2023 10:18:49 -0500 Subject: [PATCH 36/40] Added CL_NO_CORE_API_PROTOTYPES. --- CL/cl.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CL/cl.h b/CL/cl.h index 6c700ab1..4038d156 100644 --- a/CL/cl.h +++ b/CL/cl.h @@ -949,6 +949,8 @@ typedef struct _cl_name_version { /********************************************************************************************************/ +#ifndef CL_NO_CORE_API_PROTOTYPES + /* Platform API */ extern CL_API_ENTRY cl_int CL_API_CALL clGetPlatformIDs(cl_uint num_entries, @@ -1929,6 +1931,8 @@ clEnqueueTask(cl_command_queue command_queue, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; +#endif /* CL_NO_CORE_API_PROTOTYPES */ + #ifdef __cplusplus } #endif From b51e5f89ad480a5d3990c750db740fc63e9013a6 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 28 Mar 2023 16:37:05 -0700 Subject: [PATCH 37/40] slight renaming, add CL_NO_PROTOTYPES to cl.h --- CL/cl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CL/cl.h b/CL/cl.h index 4038d156..a7ebe281 100644 --- a/CL/cl.h +++ b/CL/cl.h @@ -949,7 +949,7 @@ typedef struct _cl_name_version { /********************************************************************************************************/ -#ifndef CL_NO_CORE_API_PROTOTYPES +#if !defined(CL_NO_PROTOTYPES) && !defined(CL_NO_CORE_PROTOTYPES) /* Platform API */ extern CL_API_ENTRY cl_int CL_API_CALL @@ -1931,7 +1931,7 @@ clEnqueueTask(cl_command_queue command_queue, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; -#endif /* CL_NO_CORE_API_PROTOTYPES */ +#endif /* !defined(CL_NO_PROTOTYPES) && !defined(CL_NO_CORE_PROTOTYPES) */ #ifdef __cplusplus } From 4020a32680077ccd4ad599c0f0ebece7116b363b Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Tue, 28 Mar 2023 16:43:51 -0700 Subject: [PATCH 38/40] regenerate with all XML fixes --- CL/cl_ext.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 8ce2579d..70fb66eb 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -691,11 +691,11 @@ clCreateProgramWithILKHR( #endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ /*************************************************************** -* cl_khr_image2D_from_buffer +* cl_khr_image2d_from_buffer ***************************************************************/ -#define cl_khr_image2D_from_buffer 1 +#define cl_khr_image2d_from_buffer 1 #define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \ - "cl_khr_image2D_from_buffer" + "cl_khr_image2d_from_buffer" /* cl_device_info */ #define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A From b643b18e46d3fca31bb416f0b7626631bd7ea531 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 31 Mar 2023 12:06:24 -0700 Subject: [PATCH 39/40] a few more naming adjustments --- CL/cl.h | 9 +- CL/cl_d3d10.h | 28 +++--- CL/cl_d3d11.h | 28 +++--- CL/cl_dx9_media_sharing.h | 32 ++++--- CL/cl_egl.h | 28 +++--- CL/cl_ext.h | 136 +++++++++++++++-------------- CL/cl_gl.h | 44 ++++++---- CL/cl_layer.h | 24 +++-- CL/cl_va_api_media_sharing_intel.h | 28 +++--- scripts/cl_ext.h.mako | 40 +++++---- 10 files changed, 230 insertions(+), 167 deletions(-) diff --git a/CL/cl.h b/CL/cl.h index a7ebe281..c2cdb400 100644 --- a/CL/cl.h +++ b/CL/cl.h @@ -949,7 +949,12 @@ typedef struct _cl_name_version { /********************************************************************************************************/ -#if !defined(CL_NO_PROTOTYPES) && !defined(CL_NO_CORE_PROTOTYPES) +/* CL_NO_PROTOTYPES implies CL_NO_CORE_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_CORE_PROTOTYPES) +#define CL_NO_CORE_PROTOTYPES +#endif + +#if !defined(CL_NO_CORE_PROTOTYPES) /* Platform API */ extern CL_API_ENTRY cl_int CL_API_CALL @@ -1931,7 +1936,7 @@ clEnqueueTask(cl_command_queue command_queue, const cl_event * event_wait_list, cl_event * event) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; -#endif /* !defined(CL_NO_PROTOTYPES) && !defined(CL_NO_CORE_PROTOTYPES) */ +#endif /* !defined(CL_NO_CORE_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_d3d10.h b/CL/cl_d3d10.h index 502190e2..3d8fe131 100644 --- a/CL/cl_d3d10.h +++ b/CL/cl_d3d10.h @@ -37,16 +37,22 @@ #include +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) #define CL_NO_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ +#endif -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { @@ -142,7 +148,7 @@ clEnqueueReleaseD3D10ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromD3D10KHR( @@ -195,7 +201,7 @@ clEnqueueReleaseD3D10ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_sharing_format_query_d3d10 @@ -215,7 +221,7 @@ clGetSupportedD3D10TextureFormatsINTEL_fn)( DXGI_FORMAT* d3d10_formats, cl_uint* num_texture_formats) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedD3D10TextureFormatsINTEL( @@ -226,7 +232,7 @@ clGetSupportedD3D10TextureFormatsINTEL( DXGI_FORMAT* d3d10_formats, cl_uint* num_texture_formats) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_d3d11.h b/CL/cl_d3d11.h index 1517a7d1..6a6af21d 100644 --- a/CL/cl_d3d11.h +++ b/CL/cl_d3d11.h @@ -37,16 +37,22 @@ #include +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) #define CL_NO_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ +#endif -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { @@ -142,7 +148,7 @@ clEnqueueReleaseD3D11ObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromD3D11KHR( @@ -195,7 +201,7 @@ clEnqueueReleaseD3D11ObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_sharing_format_query_d3d11 @@ -216,7 +222,7 @@ clGetSupportedD3D11TextureFormatsINTEL_fn)( DXGI_FORMAT* d3d11_formats, cl_uint* num_texture_formats) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedD3D11TextureFormatsINTEL( @@ -228,7 +234,7 @@ clGetSupportedD3D11TextureFormatsINTEL( DXGI_FORMAT* d3d11_formats, cl_uint* num_texture_formats) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_dx9_media_sharing.h b/CL/cl_dx9_media_sharing.h index e9c9598c..e7f8c452 100644 --- a/CL/cl_dx9_media_sharing.h +++ b/CL/cl_dx9_media_sharing.h @@ -39,16 +39,22 @@ #include +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) #define CL_NO_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ +#endif -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { @@ -142,7 +148,7 @@ clEnqueueReleaseDX9MediaSurfacesKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromDX9MediaAdapterKHR( @@ -182,7 +188,7 @@ clEnqueueReleaseDX9MediaSurfacesKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_dx9_media_sharing @@ -263,7 +269,7 @@ clEnqueueReleaseDX9ObjectsINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromDX9INTEL( @@ -302,7 +308,7 @@ clEnqueueReleaseDX9ObjectsINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_sharing_format_query_dx9 @@ -323,7 +329,7 @@ clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( D3DFORMAT* dx9_formats, cl_uint* num_surface_formats) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedDX9MediaSurfaceFormatsINTEL( @@ -335,7 +341,7 @@ clGetSupportedDX9MediaSurfaceFormatsINTEL( D3DFORMAT* dx9_formats, cl_uint* num_surface_formats) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_egl.h b/CL/cl_egl.h index c063e68a..e2db9025 100644 --- a/CL/cl_egl.h +++ b/CL/cl_egl.h @@ -23,16 +23,22 @@ #include +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) #define CL_NO_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ +#endif -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { @@ -91,7 +97,7 @@ clEnqueueReleaseEGLObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromEGLImageKHR( @@ -120,7 +126,7 @@ clEnqueueReleaseEGLObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_egl_event @@ -143,7 +149,7 @@ clCreateEventFromEGLSyncKHR_fn)( CLeglDisplayKHR display, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_event CL_API_CALL clCreateEventFromEGLSyncKHR( @@ -152,7 +158,7 @@ clCreateEventFromEGLSyncKHR( CLeglDisplayKHR display, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_ext.h b/CL/cl_ext.h index 70fb66eb..d4a164c8 100644 --- a/CL/cl_ext.h +++ b/CL/cl_ext.h @@ -23,16 +23,22 @@ #include +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) #define CL_NO_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ +#endif -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { @@ -255,7 +261,7 @@ clGetCommandBufferInfoKHR_fn)( void* param_value, size_t* param_value_size_ret) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL clCreateCommandBufferKHR( @@ -418,7 +424,7 @@ clGetCommandBufferInfoKHR( void* param_value, size_t* param_value_size_ret) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_command_buffer_mutable_dispatch @@ -510,7 +516,7 @@ clGetMutableCommandInfoKHR_fn)( void* param_value, size_t* param_value_size_ret) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clUpdateMutableCommandsKHR( @@ -525,7 +531,7 @@ clGetMutableCommandInfoKHR( void* param_value, size_t* param_value_size_ret) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_fp64 @@ -564,7 +570,7 @@ clSetMemObjectDestructorAPPLE_fn)( void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clSetMemObjectDestructorAPPLE( @@ -572,7 +578,7 @@ clSetMemObjectDestructorAPPLE( void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_APPLE_ContextLoggingFunctions @@ -603,7 +609,7 @@ clLogMessagesToStderrAPPLE_fn)( size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY void CL_API_CALL clLogMessagesToSystemLogAPPLE( @@ -626,7 +632,7 @@ clLogMessagesToStderrAPPLE( size_t cb, void* user_data) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_icd @@ -648,7 +654,7 @@ clIcdGetPlatformIDsKHR_fn)( cl_platform_id* platforms, cl_uint* num_platforms) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clIcdGetPlatformIDsKHR( @@ -656,7 +662,7 @@ clIcdGetPlatformIDsKHR( cl_platform_id* platforms, cl_uint* num_platforms) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_il_program @@ -679,7 +685,7 @@ clCreateProgramWithILKHR_fn)( size_t length, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_program CL_API_CALL clCreateProgramWithILKHR( @@ -688,7 +694,7 @@ clCreateProgramWithILKHR( size_t length, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_image2d_from_buffer @@ -737,13 +743,13 @@ typedef cl_int (CL_API_CALL * clTerminateContextKHR_fn)( cl_context context) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR( cl_context context) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_spir @@ -775,7 +781,7 @@ clCreateCommandQueueWithPropertiesKHR_fn)( const cl_queue_properties_khr* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_command_queue CL_API_CALL clCreateCommandQueueWithPropertiesKHR( @@ -784,7 +790,7 @@ clCreateCommandQueueWithPropertiesKHR( const cl_queue_properties_khr* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_nv_device_attribute_query @@ -900,7 +906,7 @@ clCreateSubDevicesEXT_fn)( cl_device_id* out_devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clReleaseDeviceEXT( @@ -918,7 +924,7 @@ clCreateSubDevicesEXT( cl_device_id* out_devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; -#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_ext_migrate_memobject @@ -946,7 +952,7 @@ clEnqueueMigrateMemObjectEXT_fn)( const cl_event* event_wait_list, cl_event* event) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMigrateMemObjectEXT( @@ -958,7 +964,7 @@ clEnqueueMigrateMemObjectEXT( const cl_event* event_wait_list, cl_event* event) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_ext_cxx_for_opencl @@ -1012,7 +1018,7 @@ clGetDeviceImageInfoQCOM_fn)( void* param_value, size_t* param_value_size_ret) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceImageInfoQCOM( @@ -1025,7 +1031,7 @@ clGetDeviceImageInfoQCOM( void* param_value, size_t* param_value_size_ret) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_qcom_ext_host_ptr_iocoherent @@ -1129,7 +1135,7 @@ clEnqueueReleaseGrallocObjectsIMG_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireGrallocObjectsIMG( @@ -1149,7 +1155,7 @@ clEnqueueReleaseGrallocObjectsIMG( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_img_generate_mipmap @@ -1180,7 +1186,7 @@ clEnqueueGenerateMipmapIMG_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueGenerateMipmapIMG( @@ -1194,7 +1200,7 @@ clEnqueueGenerateMipmapIMG( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_img_mem_properties @@ -1238,7 +1244,7 @@ clGetKernelSubGroupInfoKHR_fn)( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; -#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetKernelSubGroupInfoKHR( @@ -1251,7 +1257,7 @@ clGetKernelSubGroupInfoKHR( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; -#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_mipmap_image @@ -1406,7 +1412,7 @@ clGetKernelSuggestedLocalWorkSizeKHR_fn)( const size_t* global_work_size, size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetKernelSuggestedLocalWorkSizeKHR( @@ -1417,7 +1423,7 @@ clGetKernelSuggestedLocalWorkSizeKHR( const size_t* global_work_size, size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_integer_dot_product @@ -1487,7 +1493,7 @@ clEnqueueReleaseExternalMemObjectsKHR_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireExternalMemObjectsKHR( @@ -1507,7 +1513,7 @@ clEnqueueReleaseExternalMemObjectsKHR( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_3_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_external_memory_dma_buf @@ -1585,7 +1591,7 @@ clGetSemaphoreHandleForTypeKHR_fn)( void* handle_ptr, size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSemaphoreHandleForTypeKHR( @@ -1596,7 +1602,7 @@ clGetSemaphoreHandleForTypeKHR( void* handle_ptr, size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_external_semaphore_dx_fence @@ -1722,7 +1728,7 @@ typedef cl_int (CL_API_CALL * clRetainSemaphoreKHR_fn)( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL clCreateSemaphoreWithPropertiesKHR( @@ -1766,7 +1772,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clRetainSemaphoreKHR( cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_arm_import_memory @@ -1798,7 +1804,7 @@ clImportMemoryARM_fn)( size_t size, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clImportMemoryARM( @@ -1809,7 +1815,7 @@ clImportMemoryARM( size_t size, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_arm_shared_virtual_memory @@ -1927,7 +1933,7 @@ clSetKernelExecInfoARM_fn)( size_t param_value_size, const void* param_value) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY void* CL_API_CALL clSVMAllocARM( @@ -2006,7 +2012,7 @@ clSetKernelExecInfoARM( size_t param_value_size, const void* param_value) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_arm_get_core_id @@ -2201,7 +2207,7 @@ typedef cl_int (CL_API_CALL * clReleaseAcceleratorINTEL_fn)( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL clCreateAcceleratorINTEL( @@ -2227,7 +2233,7 @@ extern CL_API_ENTRY cl_int CL_API_CALL clReleaseAcceleratorINTEL( cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_motion_estimation @@ -2705,7 +2711,7 @@ clEnqueueMemAdviseINTEL_fn)( const cl_event* event_wait_list, cl_event* event) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY void* CL_API_CALL clHostMemAllocINTEL( @@ -2790,7 +2796,7 @@ clEnqueueMemAdviseINTEL( const cl_event* event_wait_list, cl_event* event) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #if defined(CL_VERSION_1_2) /* Requires OpenCL 1.2 for cl_mem_migration_flags: */ @@ -2805,7 +2811,7 @@ clEnqueueMigrateMemINTEL_fn)( const cl_event* event_wait_list, cl_event* event) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMigrateMemINTEL( @@ -2817,7 +2823,7 @@ clEnqueueMigrateMemINTEL( const cl_event* event_wait_list, cl_event* event) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #endif /* defined(CL_VERSION_1_2) */ @@ -2833,7 +2839,7 @@ clEnqueueMemsetINTEL_fn)( const cl_event* event_wait_list, cl_event* event) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueMemsetINTEL( @@ -2845,7 +2851,7 @@ clEnqueueMemsetINTEL( const cl_event* event_wait_list, cl_event* event) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_mem_alloc_buffer_location @@ -2879,7 +2885,7 @@ clCreateBufferWithPropertiesINTEL_fn)( void* host_ptr, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateBufferWithPropertiesINTEL( @@ -2890,7 +2896,7 @@ clCreateBufferWithPropertiesINTEL( void* host_ptr, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_program_scope_host_pipe @@ -2932,7 +2938,7 @@ clEnqueueWriteHostPipeINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReadHostPipeINTEL( @@ -2958,7 +2964,7 @@ clEnqueueWriteHostPipeINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_mem_channel_property @@ -3076,7 +3082,7 @@ clGetImageRequirementsInfoEXT_fn)( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetImageRequirementsInfoEXT( @@ -3090,7 +3096,7 @@ clGetImageRequirementsInfoEXT( void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #endif /* defined(CL_VERSION_3_0) */ @@ -3131,7 +3137,7 @@ clGetICDLoaderInfoOCLICD_fn)( void* param_value, size_t* param_value_size_ret) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetICDLoaderInfoOCLICD( @@ -3140,7 +3146,7 @@ clGetICDLoaderInfoOCLICD( void* param_value, size_t* param_value_size_ret) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_depth_images @@ -3201,14 +3207,14 @@ clSetContentSizeBufferPoCL_fn)( cl_mem buffer, cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clSetContentSizeBufferPoCL( cl_mem buffer, cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_gl.h b/CL/cl_gl.h index 578ee758..f88348e2 100644 --- a/CL/cl_gl.h +++ b/CL/cl_gl.h @@ -23,16 +23,22 @@ #include +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) #define CL_NO_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ +#endif -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { @@ -100,7 +106,7 @@ clCreateFromGLBuffer_fn)( cl_GLuint bufobj, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetGLContextInfoKHR( @@ -117,7 +123,7 @@ clCreateFromGLBuffer( cl_GLuint bufobj, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #if defined(CL_VERSION_1_2) @@ -130,7 +136,7 @@ clCreateFromGLTexture_fn)( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromGLTexture( @@ -141,7 +147,7 @@ clCreateFromGLTexture( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #endif /* defined(CL_VERSION_1_2) */ @@ -185,7 +191,7 @@ clEnqueueReleaseGLObjects_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromGLRenderbuffer( @@ -226,7 +232,7 @@ clEnqueueReleaseGLObjects( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /* OpenCL 1.0 APIs that were deprecated in OpenCL 1.2 */ @@ -248,7 +254,7 @@ clCreateFromGLTexture3D_fn)( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromGLTexture2D( @@ -268,7 +274,7 @@ clCreateFromGLTexture3D( cl_GLuint texture, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_gl_event @@ -289,7 +295,7 @@ clCreateEventFromGLsyncKHR_fn)( cl_GLsync sync, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; -#if !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_event CL_API_CALL clCreateEventFromGLsyncKHR( @@ -297,7 +303,7 @@ clCreateEventFromGLsyncKHR( cl_GLsync sync, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; -#endif /* !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_khr_gl_depth_images @@ -346,7 +352,7 @@ clGetSupportedGLTextureFormatsINTEL_fn)( cl_GLenum* gl_formats, cl_uint* num_texture_formats) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedGLTextureFormatsINTEL( @@ -357,7 +363,7 @@ clGetSupportedGLTextureFormatsINTEL( cl_GLenum* gl_formats, cl_uint* num_texture_formats) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_layer.h b/CL/cl_layer.h index 0eaa1d81..acaa6c2a 100644 --- a/CL/cl_layer.h +++ b/CL/cl_layer.h @@ -25,16 +25,22 @@ #include +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) #define CL_NO_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ +#endif -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { @@ -93,7 +99,7 @@ pfn_clInitLayer)( cl_uint* num_entries_ret, const cl_icd_dispatch** layer_dispatch_ret) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetLayerInfo( @@ -109,7 +115,7 @@ clInitLayer( cl_uint* num_entries_ret, const cl_icd_dispatch** layer_dispatch_ret) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/CL/cl_va_api_media_sharing_intel.h b/CL/cl_va_api_media_sharing_intel.h index a3332688..767da05f 100644 --- a/CL/cl_va_api_media_sharing_intel.h +++ b/CL/cl_va_api_media_sharing_intel.h @@ -25,16 +25,22 @@ #include +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) #define CL_NO_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ +#endif -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { @@ -59,7 +65,7 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( VAImageFormat* va_api_formats, cl_uint* num_surface_formats) ; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetSupportedVA_APIMediaSurfaceFormatsINTEL( @@ -71,7 +77,7 @@ clGetSupportedVA_APIMediaSurfaceFormatsINTEL( VAImageFormat* va_api_formats, cl_uint* num_surface_formats) ; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ /*************************************************************** * cl_intel_va_api_media_sharing @@ -146,7 +152,7 @@ clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#if !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL clGetDeviceIDsFromVA_APIMediaAdapterINTEL( @@ -184,7 +190,7 @@ clEnqueueReleaseVA_APIMediaSurfacesINTEL( const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#endif /* !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } diff --git a/scripts/cl_ext.h.mako b/scripts/cl_ext.h.mako index 938e97ad..b723cb81 100644 --- a/scripts/cl_ext.h.mako +++ b/scripts/cl_ext.h.mako @@ -1,5 +1,5 @@ <% -# Extensions to skip - they are in dedicated headers. +# Extensions to skip by default because they are in dedicated headers: skipExtensions = { 'cl_khr_d3d10_sharing', 'cl_khr_d3d11_sharing', @@ -44,7 +44,7 @@ def shouldEmit(block): return True return False -# Initially, keep the same extension order: +# Initially, keep the same extension order as the original headers: orderedExtensions = [ # cl_ext.h: 'cl_khr_command_buffer', @@ -173,7 +173,7 @@ def getExtensionSortKey_ideal(item): return 1, name return 99, name -# Order enums should be emitted in the haders. +# Order enums should be emitted in the headers. # Enums Without Bits -> Ordered Bit Enums def getEnumSortKey(item): name = item.get('name') @@ -204,9 +204,13 @@ def getBitPosString(bitpos): ret += ')' return ret -# Extensions that are exported from some OpenCL ICD loaders: -exportedExtensions = { +# Extensions that are included in the ICD dispatch table for historical reasons. +# This should not be required for new extensions! +loaderExtensions = { 'cl_ext_device_fission', + 'cl_khr_d3d10_sharing', + 'cl_khr_d3d11_sharing', + 'cl_khr_dx9_media_sharing', 'cl_khr_egl_event', 'cl_khr_egl_image', 'cl_khr_gl_event', @@ -216,10 +220,10 @@ exportedExtensions = { # Gets the preprocessor guard for the given extension: def getPrototypeIfGuard(name): - if name in exportedExtensions: - guard = '!defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES)' + if name in loaderExtensions: + guard = '!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)' else: - guard = '!defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES)' + guard = '!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)' return guard # Names that have been generated already, since some may be shared by multiple @@ -261,16 +265,22 @@ ${includes} %endif #include +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ #if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) #define CL_NO_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) */ +#endif -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_EXPORTED_EXTENSION_PROTOTYPES) */ -#if defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) -#define CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES -#endif /* defined(CL_NO_EXTENSION_PROTOTYPES) && !defined(CL_NO_NON_EXPORTED_EXTENSION_PROTOTYPES) */ +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && ${"\\"} + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && ${"\\"} + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { From 95e6f784d4f5af325e878f5101c2904ef3b2adb7 Mon Sep 17 00:00:00 2001 From: Ben Ashbaugh Date: Fri, 31 Mar 2023 12:16:42 -0700 Subject: [PATCH 40/40] update README --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/README.md b/README.md index 6b104cdd..89a3ea99 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,34 @@ include the OpenCL API headers as follows: #include ``` +## Controlling Function Prototypes + +By default, the OpenCL API headers in this repository declare function +prototypes for every known core OpenCL API and OpenCL extension API. If this is +not desired, the declared function prototypes can be controlled by the following +preprocessor defines: + +* `CL_NO_PROTOTYPES`: No function prototypes will be declared. This control + applies to core OpenCL APIs and OpenCL extension APIs. +* `CL_NO_CORE_PROTOTYPES`: No function prototypes will be declared for core + OpenCL APIs. +* `CL_NO_EXTENSION_PROTOTYPES`: No function prototypes will be declared for + OpenCL extension APIs. This control applies to all OpenCL extension APIs. +* `CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES`: No function prototypes will be + declared for OpenCL extension APIs that are in the ICD dispatch table for + historical reasons. +* `CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES`: No function prototypes will be + declared for OpenCL extension APIs that are not in the ICD dispatch table. + +For example, to declare function prototypes for core OpenCL 3.0 APIs only, you +may include the OpenCL API headers as follows: + +```c +#define CL_TARGET_OPENCL_VERSION 300 +#define CL_NO_EXTENSION_PROTOTYPES +#include +``` + ## Directory Structure ```