Acked-by: Francisco Jerez <currojerez@riseup.net> Reviewed-by: Karol Herbst <kherbst@redhat.com>tags/19.1-branchpoint
@@ -1,5 +1,5 @@ | |||
/********************************************************************************** | |||
* Copyright (c) 2008-2012 The Khronos Group Inc. | |||
* Copyright (c) 2008-2015 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
@@ -12,6 +12,11 @@ | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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. |
@@ -1,5 +1,5 @@ | |||
/********************************************************************************** | |||
* Copyright (c) 2008-2012 The Khronos Group Inc. | |||
* Copyright (c) 2008-2015 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
@@ -12,6 +12,11 @@ | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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. |
@@ -1,5 +1,5 @@ | |||
/********************************************************************************** | |||
* Copyright (c) 2008-2012 The Khronos Group Inc. | |||
* Copyright (c) 2008-2015 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
@@ -12,6 +12,11 @@ | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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. | |||
@@ -33,7 +38,7 @@ | |||
extern "C" { | |||
#endif | |||
/****************************************************************************** | |||
/******************************************************************************/ | |||
/* cl_khr_dx9_media_sharing */ | |||
#define cl_khr_dx9_media_sharing 1 | |||
@@ -0,0 +1,182 @@ | |||
/********************************************************************************** | |||
* Copyright (c) 2008-2019 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
* "Materials"), to deal in the Materials without restriction, including | |||
* without limitation the rights to use, copy, modify, merge, publish, | |||
* distribute, sublicense, and/or sell copies of the Materials, and to | |||
* permit persons to whom the Materials are furnished to do so, subject to | |||
* the following conditions: | |||
* | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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 | |||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. | |||
**********************************************************************************/ | |||
/*****************************************************************************\ | |||
Copyright (c) 2013-2019 Intel Corporation All Rights Reserved. | |||
THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS | |||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | |||
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING | |||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE | |||
MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
File Name: cl_dx9_media_sharing_intel.h | |||
Abstract: | |||
Notes: | |||
\*****************************************************************************/ | |||
#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_INTEL_H | |||
#define __OPENCL_CL_DX9_MEDIA_SHARING_INTEL_H | |||
#include <CL/cl.h> | |||
#include <CL/cl_platform.h> | |||
#include <d3d9.h> | |||
#include <dxvahd.h> | |||
#include <wtypes.h> | |||
#include <d3d9types.h> | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif | |||
/*************************************** | |||
* cl_intel_dx9_media_sharing extension * | |||
****************************************/ | |||
#define cl_intel_dx9_media_sharing 1 | |||
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 | |||
/* cl_dx9_device_source_intel */ | |||
#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 | |||
/* cl_context_info */ | |||
#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 | |||
/* cl_image_info */ | |||
#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 | |||
/******************************************************************************/ | |||
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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_SUFFIX__VERSION_1_1; | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_INTEL_H */ | |||
@@ -1,5 +1,5 @@ | |||
/******************************************************************************* | |||
* Copyright (c) 2008-2010 The Khronos Group Inc. | |||
* Copyright (c) 2008-2019 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
@@ -12,6 +12,11 @@ | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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. | |||
@@ -24,13 +29,7 @@ | |||
#ifndef __OPENCL_CL_EGL_H | |||
#define __OPENCL_CL_EGL_H | |||
#ifdef __APPLE__ | |||
#else | |||
#include <CL/cl.h> | |||
#include <EGL/egl.h> | |||
#include <EGL/eglext.h> | |||
#endif | |||
#ifdef __cplusplus | |||
extern "C" { | |||
@@ -62,69 +61,69 @@ 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; | |||
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_context context, | |||
CLeglDisplayKHR egldisplay, | |||
CLeglImageKHR eglimage, | |||
cl_mem_flags flags, | |||
const cl_egl_image_properties_khr * properties, | |||
cl_int * errcode_ret); | |||
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; | |||
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_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_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); | |||
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; | |||
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_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_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; | |||
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_context context, | |||
CLeglSyncKHR sync, | |||
CLeglDisplayKHR display, | |||
cl_int * errcode_ret); | |||
#ifdef __cplusplus | |||
} |
@@ -1,5 +1,5 @@ | |||
/******************************************************************************* | |||
* Copyright (c) 2008-2013 The Khronos Group Inc. | |||
* Copyright (c) 2008-2019 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
@@ -12,6 +12,11 @@ | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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. | |||
@@ -21,8 +26,6 @@ | |||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. | |||
******************************************************************************/ | |||
/* $Revision: 11928 $ on $Date: 2010-07-13 09:04:56 -0700 (Tue, 13 Jul 2010) $ */ | |||
/* cl_ext.h contains OpenCL extensions which don't have external */ | |||
/* (OpenGL, D3D) dependencies. */ | |||
@@ -33,11 +36,13 @@ | |||
extern "C" { | |||
#endif | |||
#ifdef __APPLE__ | |||
#include <OpenCL/cl.h> | |||
#include <AvailabilityMacros.h> | |||
#else | |||
#include <CL/cl.h> | |||
#include <CL/cl.h> | |||
/* 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 */ | |||
@@ -47,12 +52,12 @@ extern "C" { | |||
* | |||
* 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 | |||
* 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. | |||
@@ -61,9 +66,9 @@ extern "C" { | |||
* before using. | |||
*/ | |||
#define cl_APPLE_SetMemObjectDestructor 1 | |||
cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem /* memobj */, | |||
void (* /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/), | |||
void * /*user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; | |||
cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem memobj, | |||
void (* pfn_notify)(cl_mem memobj, void * user_data), | |||
void * user_data) CL_EXT_SUFFIX__VERSION_1_0; | |||
/* Context Logging Functions | |||
@@ -72,29 +77,29 @@ cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem /* memobj */, | |||
* Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) | |||
* before using. | |||
* | |||
* clLogMessagesToSystemLog fowards on all log messages to the Apple System Logger | |||
* clLogMessagesToSystemLog forwards on all log messages to the Apple System Logger | |||
*/ | |||
#define cl_APPLE_ContextLoggingFunctions 1 | |||
extern void CL_API_ENTRY clLogMessagesToSystemLogAPPLE( const char * /* errstr */, | |||
const void * /* private_info */, | |||
size_t /* cb */, | |||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; | |||
extern void CL_API_ENTRY clLogMessagesToSystemLogAPPLE( const char * errstr, | |||
const void * private_info, | |||
size_t cb, | |||
void * user_data) CL_EXT_SUFFIX__VERSION_1_0; | |||
/* clLogMessagesToStdout sends all log messages to the file descriptor stdout */ | |||
extern void CL_API_ENTRY clLogMessagesToStdoutAPPLE( const char * /* errstr */, | |||
const void * /* private_info */, | |||
size_t /* cb */, | |||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; | |||
extern void CL_API_ENTRY clLogMessagesToStdoutAPPLE( const char * errstr, | |||
const void * private_info, | |||
size_t cb, | |||
void * user_data) CL_EXT_SUFFIX__VERSION_1_0; | |||
/* clLogMessagesToStderr sends all log messages to the file descriptor stderr */ | |||
extern void CL_API_ENTRY clLogMessagesToStderrAPPLE( const char * /* errstr */, | |||
const void * /* private_info */, | |||
size_t /* cb */, | |||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; | |||
extern void CL_API_ENTRY clLogMessagesToStderrAPPLE( const char * errstr, | |||
const void * private_info, | |||
size_t cb, | |||
void * user_data) CL_EXT_SUFFIX__VERSION_1_0; | |||
/************************ | |||
* cl_khr_icd extension * | |||
/************************ | |||
* cl_khr_icd extension * | |||
************************/ | |||
#define cl_khr_icd 1 | |||
@@ -105,15 +110,42 @@ extern void CL_API_ENTRY clLogMessagesToStderrAPPLE( const char * /* errstr */ | |||
#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 */); | |||
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 extension * | |||
*******************************/ | |||
#define cl_khr_il_program 1 | |||
/* New property to clGetDeviceInfo for retrieving supported intermediate | |||
* languages | |||
*/ | |||
#define CL_DEVICE_IL_VERSION_KHR 0x105B | |||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)( | |||
cl_uint /* num_entries */, | |||
cl_platform_id * /* platforms */, | |||
cl_uint * /* num_platforms */); | |||
/* 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_API_ENTRY cl_program | |||
(CL_API_CALL *clCreateProgramWithILKHR_fn)(cl_context context, | |||
const void * il, | |||
size_t length, | |||
cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; | |||
/* Extension: cl_khr_image2D_buffer | |||
* | |||
@@ -129,31 +161,33 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)( | |||
* The pitch specified must be a multiple of CL_DEVICE_IMAGE_PITCH_ALIGNMENT pixels. | |||
* The base address of the buffer must be aligned to CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT pixels. | |||
*/ | |||
/************************************* | |||
* cl_khr_initalize_memory extension * | |||
*************************************/ | |||
#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x200E | |||
/************************************** | |||
* cl_khr_initialize_memory extension * | |||
**************************************/ | |||
#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 | |||
/************************************** | |||
* cl_khr_terminate_context extension * | |||
**************************************/ | |||
#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x200F | |||
#define CL_CONTEXT_TERMINATE_KHR 0x2010 | |||
#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_EXT_SUFFIX__VERSION_1_2; | |||
extern CL_API_ENTRY cl_int CL_API_CALL | |||
clTerminateContextKHR(cl_context context) CL_EXT_SUFFIX__VERSION_1_2; | |||
typedef CL_API_ENTRY cl_int | |||
(CL_API_CALL *clTerminateContextKHR_fn)(cl_context context) CL_EXT_SUFFIX__VERSION_1_2; | |||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2; | |||
/* | |||
* Extension: cl_khr_spir | |||
* | |||
* This extension adds support to create an OpenCL program object from a | |||
* This extension adds support to create an OpenCL program object from a | |||
* Standard Portable Intermediate Representation (SPIR) instance | |||
*/ | |||
@@ -161,9 +195,30 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context / | |||
#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 | |||
/***************************************** | |||
* cl_khr_create_command_queue extension * | |||
*****************************************/ | |||
#define cl_khr_create_command_queue 1 | |||
typedef cl_bitfield 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_EXT_SUFFIX__VERSION_1_2; | |||
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_EXT_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 | |||
@@ -173,88 +228,124 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context / | |||
#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 | |||
/********************************* | |||
* cl_arm_printf extension | |||
*********************************/ | |||
#define CL_PRINTF_CALLBACK_ARM 0x40B0 | |||
#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 | |||
#ifdef CL_VERSION_1_1 | |||
/*********************************** | |||
* 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_EXT_SUFFIX__VERSION_1_1; | |||
typedef CL_API_ENTRY cl_int | |||
(CL_API_CALL *clReleaseDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; | |||
extern CL_API_ENTRY cl_int CL_API_CALL | |||
clRetainDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; | |||
typedef CL_API_ENTRY cl_int | |||
(CL_API_CALL *clRetainDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_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_EXT_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_EXT_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_device_fission extension | |||
***********************************/ | |||
#define cl_ext_device_fission 1 | |||
extern CL_API_ENTRY cl_int CL_API_CALL | |||
clReleaseDeviceEXT(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; | |||
typedef CL_API_ENTRY cl_int | |||
(CL_API_CALL *clReleaseDeviceEXT_fn)(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; | |||
extern CL_API_ENTRY cl_int CL_API_CALL | |||
clRetainDeviceEXT(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; | |||
typedef CL_API_ENTRY cl_int | |||
(CL_API_CALL *clRetainDeviceEXT_fn)(cl_device_id device) CL_EXT_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_EXT_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_EXT_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_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); | |||
/********************************* | |||
* 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_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 | |||
@@ -280,12 +371,21 @@ 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. */ | |||
/* 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 | |||
*********************************/ | |||
@@ -300,13 +400,339 @@ typedef struct _cl_mem_ion_host_ptr | |||
/* ION file descriptor */ | |||
int ion_filedesc; | |||
/* Host pointer to the ION allocated memory */ | |||
void* ion_hostptr; | |||
} cl_mem_ion_host_ptr; | |||
#endif /* CL_VERSION_1_1 */ | |||
/********************************* | |||
* 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 code from clEnqueueReleaseGrallocObjectsIMG */ | |||
#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 | |||
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_EXT_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_EXT_SUFFIX__VERSION_1_2; | |||
/********************************* | |||
* cl_khr_subgroups extension | |||
*********************************/ | |||
#define cl_khr_subgroups 1 | |||
#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; | |||
#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_EXT_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_EXT_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_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 | |||
/* cl_device_info */ | |||
#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 | |||
/********************************** | |||
* 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 DMA BUF memory type value for CL_IMPORT_TYPE_ARM property */ | |||
#define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 | |||
/* 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_EXT_SUFFIX__VERSION_1_0; | |||
/****************************************** | |||
* cl_arm_shared_virtual_memory extension * | |||
******************************************/ | |||
#define cl_arm_shared_virtual_memory 1 | |||
/* Used by clGetDeviceInfo */ | |||
#define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 | |||
/* 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 | |||
/* 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 | |||
/* 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) | |||
typedef cl_bitfield cl_svm_mem_flags_arm; | |||
typedef cl_uint cl_kernel_exec_info_arm; | |||
typedef cl_bitfield cl_device_svm_capabilities_arm; | |||
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_EXT_SUFFIX__VERSION_1_2; | |||
extern CL_API_ENTRY void CL_API_CALL | |||
clSVMFreeARM(cl_context context, | |||
void * svm_pointer) CL_EXT_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_SUFFIX__VERSION_1_2; | |||
/******************************** | |||
* cl_arm_get_core_id extension * | |||
********************************/ | |||
#ifdef CL_VERSION_1_2 | |||
#define cl_arm_get_core_id 1 | |||
/* Device info property for bitfield of cores present */ | |||
#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF | |||
#endif /* CL_VERSION_1_2 */ | |||
#ifdef __cplusplus | |||
} |
@@ -0,0 +1,423 @@ | |||
/******************************************************************************* | |||
* Copyright (c) 2008-2019 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
* "Materials"), to deal in the Materials without restriction, including | |||
* without limitation the rights to use, copy, modify, merge, publish, | |||
* distribute, sublicense, and/or sell copies of the Materials, and to | |||
* permit persons to whom the Materials are furnished to do so, subject to | |||
* the following conditions: | |||
* | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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 | |||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. | |||
******************************************************************************/ | |||
/*****************************************************************************\ | |||
Copyright (c) 2013-2019 Intel Corporation All Rights Reserved. | |||
THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS | |||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | |||
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING | |||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE | |||
MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
File Name: cl_ext_intel.h | |||
Abstract: | |||
Notes: | |||
\*****************************************************************************/ | |||
#ifndef __CL_EXT_INTEL_H | |||
#define __CL_EXT_INTEL_H | |||
#include <CL/cl.h> | |||
#include <CL/cl_platform.h> | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif | |||
/*************************************** | |||
* cl_intel_thread_local_exec extension * | |||
****************************************/ | |||
#define cl_intel_thread_local_exec 1 | |||
#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (((cl_bitfield)1) << 31) | |||
/*********************************************** | |||
* cl_intel_device_partition_by_names extension * | |||
************************************************/ | |||
#define cl_intel_device_partition_by_names 1 | |||
#define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 | |||
#define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 | |||
/************************************************ | |||
* cl_intel_accelerator extension * | |||
* cl_intel_motion_estimation extension * | |||
* cl_intel_advanced_motion_estimation extension * | |||
*************************************************/ | |||
#define cl_intel_accelerator 1 | |||
#define cl_intel_motion_estimation 1 | |||
#define cl_intel_advanced_motion_estimation 1 | |||
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 | |||
/* 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 | |||
/* 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 | |||
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_EXT_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_EXT_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_EXT_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_EXT_SUFFIX__VERSION_1_2; | |||
extern CL_API_ENTRY cl_int CL_API_CALL | |||
clRetainAcceleratorINTEL( | |||
cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; | |||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clRetainAcceleratorINTEL_fn)( | |||
cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; | |||
extern CL_API_ENTRY cl_int CL_API_CALL | |||
clReleaseAcceleratorINTEL( | |||
cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; | |||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clReleaseAcceleratorINTEL_fn)( | |||
cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; | |||
/****************************************** | |||
* cl_intel_simultaneous_sharing extension * | |||
*******************************************/ | |||
#define cl_intel_simultaneous_sharing 1 | |||
#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 | |||
#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 | |||
/*********************************** | |||
* cl_intel_egl_image_yuv extension * | |||
************************************/ | |||
#define cl_intel_egl_image_yuv 1 | |||
#define CL_EGL_YUV_PLANE_INTEL 0x4107 | |||
/******************************** | |||
* cl_intel_packed_yuv extension * | |||
*********************************/ | |||
#define cl_intel_packed_yuv 1 | |||
#define CL_YUYV_INTEL 0x4076 | |||
#define CL_UYVY_INTEL 0x4077 | |||
#define CL_YVYU_INTEL 0x4078 | |||
#define CL_VYUY_INTEL 0x4079 | |||
/******************************************** | |||
* cl_intel_required_subgroup_size extension * | |||
*********************************************/ | |||
#define cl_intel_required_subgroup_size 1 | |||
#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 | |||
/**************************************** | |||
* cl_intel_driver_diagnostics extension * | |||
*****************************************/ | |||
#define cl_intel_driver_diagnostics 1 | |||
typedef cl_uint cl_diagnostics_verbose_level; | |||
#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 | |||
#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 ) | |||
/******************************** | |||
* cl_intel_planar_yuv extension * | |||
*********************************/ | |||
#define CL_NV12_INTEL 0x410E | |||
#define CL_MEM_NO_ACCESS_INTEL ( 1 << 24 ) | |||
#define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL ( 1 << 25 ) | |||
#define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E | |||
#define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F | |||
/******************************************************* | |||
* cl_intel_device_side_avc_motion_estimation extension * | |||
********************************************************/ | |||
#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. | |||
#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 | |||
#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 | |||
#define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 | |||
#define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 | |||
#define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 | |||
#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 | |||
#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 | |||
#define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 | |||
#define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 | |||
#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 | |||
#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 | |||
#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 | |||
#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 | |||
#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 ) | |||
#define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 | |||
#define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 | |||
#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 | |||
#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 | |||
#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 | |||
#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 | |||
#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 | |||
#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 | |||
#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 | |||
#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 | |||
#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif /* __CL_EXT_INTEL_H */ |
@@ -1,5 +1,5 @@ | |||
/********************************************************************************** | |||
* Copyright (c) 2008 - 2012 The Khronos Group Inc. | |||
* Copyright (c) 2008-2019 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
@@ -12,6 +12,11 @@ | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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. | |||
@@ -24,11 +29,7 @@ | |||
#ifndef __OPENCL_CL_GL_H | |||
#define __OPENCL_CL_GL_H | |||
#ifdef __APPLE__ | |||
#include <OpenCL/cl.h> | |||
#else | |||
#include <CL/cl.h> | |||
#endif | |||
#ifdef __cplusplus | |||
extern "C" { | |||
@@ -44,110 +45,118 @@ typedef struct __GLsync *cl_GLsync; | |||
#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 | |||
#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 | |||
#endif | |||
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; | |||
clCreateFromGLBuffer(cl_context context, | |||
cl_mem_flags flags, | |||
cl_GLuint bufobj, | |||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; | |||
#ifdef CL_VERSION_1_2 | |||
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; | |||
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 | |||
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; | |||
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 | |||
clGetGLObjectInfo(cl_mem /* memobj */, | |||
cl_gl_object_type * /* gl_object_type */, | |||
cl_GLuint * /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0; | |||
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; | |||
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 */, | |||
cl_uint /* num_events_in_wait_list */, | |||
const cl_event * /* event_wait_list */, | |||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; | |||
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_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; | |||
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_EXT_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_EXT_SUFFIX__VERSION_1_1_DEPRECATED; | |||
clCreateFromGLTexture2D(cl_context context, | |||
cl_mem_flags flags, | |||
cl_GLenum target, | |||
cl_GLint miplevel, | |||
cl_GLuint texture, | |||
cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; | |||
extern CL_API_ENTRY CL_EXT_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_EXT_SUFFIX__VERSION_1_1_DEPRECATED; | |||
clCreateFromGLTexture3D(cl_context context, | |||
cl_mem_flags flags, | |||
cl_GLenum target, | |||
cl_GLint miplevel, | |||
cl_GLuint texture, | |||
cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; | |||
/* cl_khr_gl_sharing extension */ | |||
#define cl_khr_gl_sharing 1 | |||
typedef cl_uint cl_gl_context_info; | |||
/* 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 | |||
/* 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 | |||
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; | |||
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, |
@@ -1,5 +1,5 @@ | |||
/********************************************************************************** | |||
* Copyright (c) 2008-2012 The Khronos Group Inc. | |||
* Copyright (c) 2008-2019 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
@@ -12,6 +12,11 @@ | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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. | |||
@@ -21,11 +26,6 @@ | |||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. | |||
**********************************************************************************/ | |||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ | |||
/* cl_gl_ext.h contains vendor (non-KHR) OpenCL extensions which have */ | |||
/* OpenGL dependencies. */ | |||
#ifndef __OPENCL_CL_GL_EXT_H | |||
#define __OPENCL_CL_GL_EXT_H | |||
@@ -33,34 +33,17 @@ | |||
extern "C" { | |||
#endif | |||
#ifdef __APPLE__ | |||
#include <OpenCL/cl_gl.h> | |||
#else | |||
#include <CL/cl_gl.h> | |||
#endif | |||
/* | |||
* For each extension, follow this template | |||
* cl_VEN_extname extension */ | |||
/* #define cl_VEN_extname 1 | |||
* ... define new types, if any | |||
* ... define new tokens, if any | |||
* ... define new APIs, if any | |||
* | |||
* If you need GLtypes here, mirror them with a cl_GLtype, rather than including a GL header | |||
* This allows us to avoid having to decide whether to include GL headers or GLES here. | |||
*/ | |||
#include <CL/cl_gl.h> | |||
/* | |||
* cl_khr_gl_event extension | |||
* See section 9.9 in the OpenCL 1.1 spec for more information | |||
* cl_khr_gl_event extension | |||
*/ | |||
#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D | |||
extern CL_API_ENTRY cl_event CL_API_CALL | |||
clCreateEventFromGLsyncKHR(cl_context /* context */, | |||
cl_GLsync /* cl_GLsync */, | |||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1; | |||
clCreateEventFromGLsyncKHR(cl_context context, | |||
cl_GLsync cl_GLsync, | |||
cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1; | |||
#ifdef __cplusplus | |||
} |
@@ -0,0 +1,172 @@ | |||
/********************************************************************************** | |||
* Copyright (c) 2008-2019 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
* "Materials"), to deal in the Materials without restriction, including | |||
* without limitation the rights to use, copy, modify, merge, publish, | |||
* distribute, sublicense, and/or sell copies of the Materials, and to | |||
* permit persons to whom the Materials are furnished to do so, subject to | |||
* the following conditions: | |||
* | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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 | |||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. | |||
**********************************************************************************/ | |||
/*****************************************************************************\ | |||
Copyright (c) 2013-2019 Intel Corporation All Rights Reserved. | |||
THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS | |||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | |||
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING | |||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE | |||
MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
File Name: cl_va_api_media_sharing_intel.h | |||
Abstract: | |||
Notes: | |||
\*****************************************************************************/ | |||
#ifndef __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H | |||
#define __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H | |||
#include <CL/cl.h> | |||
#include <CL/cl_platform.h> | |||
#include <va/va.h> | |||
#ifdef __cplusplus | |||
extern "C" { | |||
#endif | |||
/****************************************** | |||
* cl_intel_va_api_media_sharing extension * | |||
*******************************************/ | |||
#define cl_intel_va_api_media_sharing 1 | |||
/* 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 | |||
#define CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL -1101 | |||
/* cl_va_api_device_source_intel */ | |||
#define CL_VA_API_DISPLAY_INTEL 0x4094 | |||
/* cl_va_api_device_set_intel */ | |||
#define CL_PREFERRED_DEVICES_FOR_VA_API_INTEL 0x4095 | |||
#define CL_ALL_DEVICES_FOR_VA_API_INTEL 0x4096 | |||
/* cl_context_info */ | |||
#define CL_CONTEXT_VA_API_DISPLAY_INTEL 0x4097 | |||
/* cl_mem_info */ | |||
#define CL_MEM_VA_API_MEDIA_SURFACE_INTEL 0x4098 | |||
/* cl_image_info */ | |||
#define CL_IMAGE_VA_API_PLANE_INTEL 0x4099 | |||
/* cl_command_type */ | |||
#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_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_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_EXT_SUFFIX__VERSION_1_2; | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif /* __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H */ | |||
@@ -0,0 +1,86 @@ | |||
/******************************************************************************* | |||
* Copyright (c) 2018 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
* "Materials"), to deal in the Materials without restriction, including | |||
* without limitation the rights to use, copy, modify, merge, publish, | |||
* distribute, sublicense, and/or sell copies of the Materials, and to | |||
* permit persons to whom the Materials are furnished to do so, subject to | |||
* the following conditions: | |||
* | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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 | |||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. | |||
******************************************************************************/ | |||
#ifndef __CL_VERSION_H | |||
#define __CL_VERSION_H | |||
/* Detect which version to target */ | |||
#if !defined(CL_TARGET_OPENCL_VERSION) | |||
#pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)") | |||
#define CL_TARGET_OPENCL_VERSION 220 | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION != 100 && \ | |||
CL_TARGET_OPENCL_VERSION != 110 && \ | |||
CL_TARGET_OPENCL_VERSION != 120 && \ | |||
CL_TARGET_OPENCL_VERSION != 200 && \ | |||
CL_TARGET_OPENCL_VERSION != 210 && \ | |||
CL_TARGET_OPENCL_VERSION != 220 | |||
#pragma message("cl_version: CL_TARGET_OPENCL_VERSION is not a valid value (100, 110, 120, 200, 210, 220). Defaulting to 220 (OpenCL 2.2)") | |||
#undef CL_TARGET_OPENCL_VERSION | |||
#define CL_TARGET_OPENCL_VERSION 220 | |||
#endif | |||
/* OpenCL Version */ | |||
#if CL_TARGET_OPENCL_VERSION >= 220 && !defined(CL_VERSION_2_2) | |||
#define CL_VERSION_2_2 1 | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION >= 210 && !defined(CL_VERSION_2_1) | |||
#define CL_VERSION_2_1 1 | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION >= 200 && !defined(CL_VERSION_2_0) | |||
#define CL_VERSION_2_0 1 | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION >= 120 && !defined(CL_VERSION_1_2) | |||
#define CL_VERSION_1_2 1 | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION >= 110 && !defined(CL_VERSION_1_1) | |||
#define CL_VERSION_1_1 1 | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION >= 100 && !defined(CL_VERSION_1_0) | |||
#define CL_VERSION_1_0 1 | |||
#endif | |||
/* Allow deprecated APIs for older OpenCL versions. */ | |||
#if CL_TARGET_OPENCL_VERSION <= 210 && !defined(CL_USE_DEPRECATED_OPENCL_2_1_APIS) | |||
#define CL_USE_DEPRECATED_OPENCL_2_1_APIS | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION <= 200 && !defined(CL_USE_DEPRECATED_OPENCL_2_0_APIS) | |||
#define CL_USE_DEPRECATED_OPENCL_2_0_APIS | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION <= 120 && !defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS) | |||
#define CL_USE_DEPRECATED_OPENCL_1_2_APIS | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION <= 110 && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS) | |||
#define CL_USE_DEPRECATED_OPENCL_1_1_APIS | |||
#endif | |||
#if CL_TARGET_OPENCL_VERSION <= 100 && !defined(CL_USE_DEPRECATED_OPENCL_1_0_APIS) | |||
#define CL_USE_DEPRECATED_OPENCL_1_0_APIS | |||
#endif | |||
#endif /* __CL_VERSION_H */ |
@@ -1,5 +1,5 @@ | |||
/******************************************************************************* | |||
* Copyright (c) 2008-2012 The Khronos Group Inc. | |||
* Copyright (c) 2008-2015 The Khronos Group Inc. | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
* copy of this software and/or associated documentation files (the | |||
@@ -12,6 +12,11 @@ | |||
* The above copyright notice and this permission notice shall be included | |||
* in all copies or substantial portions of the Materials. | |||
* | |||
* MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS | |||
* KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS | |||
* SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT | |||
* https://www.khronos.org/registry/ | |||
* | |||
* THE MATERIALS ARE 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. | |||
@@ -30,25 +35,13 @@ | |||
extern "C" { | |||
#endif | |||
#ifdef __APPLE__ | |||
#include <OpenCL/cl.h> | |||
#include <OpenCL/cl_gl.h> | |||
#include <OpenCL/cl_gl_ext.h> | |||
#include <OpenCL/cl_ext.h> | |||
#else | |||
#include <CL/cl.h> | |||
#include <CL/cl_gl.h> | |||
#include <CL/cl_gl_ext.h> | |||
#include <CL/cl_ext.h> | |||
#endif | |||
#ifdef __cplusplus | |||
} | |||
#endif | |||
#endif /* __OPENCL_H */ | |||
@@ -93,14 +93,19 @@ if with_gallium_opencl and not with_opencl_icd | |||
install_headers( | |||
'CL/cl.h', | |||
'CL/cl.hpp', | |||
'CL/cl2.hpp', | |||
'CL/cl_d3d10.h', | |||
'CL/cl_d3d11.h', | |||
'CL/cl_dx9_media_sharing.h', | |||
'CL/cl_dx9_media_sharing_intel.h', | |||
'CL/cl_egl.h', | |||
'CL/cl_ext.h', | |||
'CL/cl_ext_intel.h', | |||
'CL/cl_gl.h', | |||
'CL/cl_gl_ext.h', | |||
'CL/cl_platform.h', | |||
'CL/cl_va_api_media_sharing_intel.h', | |||
'CL/cl_version.h', | |||
'CL/opencl.h', | |||
subdir: 'CL' | |||
) |
@@ -17,14 +17,19 @@ cldir = $(includedir)/CL | |||
cl_HEADERS = \ | |||
$(top_srcdir)/include/CL/cl.h \ | |||
$(top_srcdir)/include/CL/cl.hpp \ | |||
$(top_srcdir)/include/CL/cl2.hpp \ | |||
$(top_srcdir)/include/CL/cl_d3d10.h \ | |||
$(top_srcdir)/include/CL/cl_d3d11.h \ | |||
$(top_srcdir)/include/CL/cl_dx9_media_sharing.h \ | |||
$(top_srcdir)/include/CL/cl_dx9_media_sharing_intel.h \ | |||
$(top_srcdir)/include/CL/cl_egl.h \ | |||
$(top_srcdir)/include/CL/cl_ext.h \ | |||
$(top_srcdir)/include/CL/cl_ext_intel.h \ | |||
$(top_srcdir)/include/CL/cl_gl.h \ | |||
$(top_srcdir)/include/CL/cl_gl_ext.h \ | |||
$(top_srcdir)/include/CL/cl_platform.h \ | |||
$(top_srcdir)/include/CL/cl_va_api_media_sharing_intel.h \ | |||
$(top_srcdir)/include/CL/cl_version.h \ | |||
$(top_srcdir)/include/CL/opencl.h | |||
endif | |||