compute-runtime/runtime/api/dispatch.h

1301 lines
46 KiB
C

/*
* Copyright (C) 2017-2019 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "CL/cl.h"
#include "CL/cl_ext.h"
#include "CL/cl_ext_intel.h"
#include "CL/cl_gl.h"
#include "CL/cl_gl_ext.h"
#if defined(_WIN32)
#include <d3d10_1.h>
#include "CL/cl_d3d10.h"
#include "CL/cl_d3d11.h"
#include "CL/cl_dx9_media_sharing.h"
#define CL_DX9_MEDIA_SHARING_INTEL_EXT
#include "runtime/os_interface/windows/windows_wrapper.h"
#include "CL/cl_dx9_media_sharing_intel.h"
#else
#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014
#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C
#define CL_MEM_D3D10_RESOURCE_KHR 0x4015
typedef cl_uint cl_dx9_device_source_intel;
typedef cl_uint cl_dx9_device_set_intel;
typedef cl_uint cl_dx9_media_adapter_type_khr;
typedef cl_uint cl_dx9_media_adapter_set_khr;
typedef cl_uint cl_d3d10_device_source_khr;
typedef cl_uint cl_d3d10_device_set_khr;
typedef void *IDirect3DSurface9;
typedef void *ID3D10Buffer;
typedef void *ID3D10Texture2D;
typedef void *ID3D10Texture3D;
typedef unsigned int UINT;
typedef cl_uint cl_d3d11_device_source_khr;
typedef cl_uint cl_d3d11_device_set_khr;
typedef void *ID3D11Buffer;
typedef void *ID3D11Texture2D;
typedef void *ID3D11Texture3D;
typedef void *HANDLE;
#endif
typedef cl_bitfield cl_queue_properties_khr;
typedef void(CL_CALLBACK *ctxt_logging_fn)(const char *, const void *, size_t, void *);
typedef void(CL_CALLBACK *prog_logging_fn)(cl_program, void *);
typedef void(CL_CALLBACK *evnt_logging_fn)(cl_event, cl_int, void *);
typedef void(CL_CALLBACK *memobj_logging_fn)(cl_mem, void *);
typedef void(CL_CALLBACK *svmfree_logging_fn)(cl_command_queue, cl_uint, void *[], void *);
/*
*
* function pointer typedefs
*
*/
// Platform APIs
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetPlatformIDs)(
cl_uint numEntries,
cl_platform_id *platforms,
cl_uint *numPlatforms) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetPlatformInfo)(
cl_platform_id platform,
cl_platform_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
// Device APIs
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetDeviceIDs)(
cl_platform_id platform,
cl_device_type deviceType,
cl_uint numEntries,
cl_device_id *devices,
cl_uint *numDevices) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetDeviceInfo)(
cl_device_id device,
cl_device_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
// Context APIs
typedef CL_API_ENTRY cl_context(CL_API_CALL *KHRpfn_clCreateContext)(
const cl_context_properties *properties,
cl_uint numDevices,
const cl_device_id *devices,
ctxt_logging_fn funcNotify,
void *userData,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_context(CL_API_CALL *KHRpfn_clCreateContextFromType)(
const cl_context_properties *properties,
cl_device_type deviceType,
ctxt_logging_fn funcNotify,
void *userData,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clRetainContext)(
cl_context context) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clReleaseContext)(
cl_context context) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetContextInfo)(
cl_context context,
cl_context_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
// Command Queue APIs
typedef CL_API_ENTRY cl_command_queue(CL_API_CALL *KHRpfn_clCreateCommandQueue)(
cl_context context,
cl_device_id device,
cl_command_queue_properties properties,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clRetainCommandQueue)(
cl_command_queue commandQueue) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clReleaseCommandQueue)(
cl_command_queue commandQueue) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetCommandQueueInfo)(
cl_command_queue commandQueue,
cl_command_queue_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clSetCommandQueueProperty)(
cl_command_queue commandQueue,
cl_command_queue_properties properties,
cl_bool enable,
cl_command_queue_properties *oldProperties) CL_API_SUFFIX__VERSION_1_0;
// Memory Object APIs
typedef CL_API_ENTRY cl_mem(CL_API_CALL *KHRpfn_clCreateBuffer)(
cl_context context,
cl_mem_flags flags,
size_t size,
void *hostPtr,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
cl_mem(CL_API_CALL *KHRpfn_clCreateImage2D)(
cl_context context,
cl_mem_flags flags,
const cl_image_format *imageFormat,
size_t imageWidth,
size_t imageHeight,
size_t imageRowPitch,
void *hostPtr,
cl_int *errcodeRet) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
typedef CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
cl_mem(CL_API_CALL *KHRpfn_clCreateImage3D)(
cl_context context,
cl_mem_flags flags,
const cl_image_format *imageFormat,
size_t imageWidth,
size_t imageHeight,
size_t imageDepth,
size_t imageRowPitch,
size_t imageSlicePitch,
void *hostPtr,
cl_int *errcodeRet) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clRetainMemObject)(
cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clReleaseMemObject)(
cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetSupportedImageFormats)(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type imageType,
cl_uint numEntries,
cl_image_format *imageFormats,
cl_uint *numImageFormats) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetMemObjectInfo)(
cl_mem memobj,
cl_mem_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetImageInfo)(
cl_mem image,
cl_image_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
// Sampler APIs
typedef CL_API_ENTRY cl_sampler(CL_API_CALL *KHRpfn_clCreateSampler)(
cl_context context,
cl_bool normalizedCoords,
cl_addressing_mode addressingMode,
cl_filter_mode filterMode,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_sampler(CL_API_CALL *KHRpfn_clCreateSamplerWithProperties)(
cl_context context,
const cl_sampler_properties *samplerProperties,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_mem(CL_API_CALL *KHRpfn_clCreatePipe)(
cl_context context,
cl_mem_flags flags,
cl_uint pipePacketSize,
cl_uint pipeMaxPackets,
const cl_pipe_properties *properties,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetPipeInfo)(
cl_mem image,
cl_pipe_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clRetainSampler)(
cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clReleaseSampler)(
cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetSamplerInfo)(
cl_sampler sampler,
cl_sampler_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
// Program Object APIs
typedef CL_API_ENTRY cl_program(CL_API_CALL *KHRpfn_clCreateProgramWithSource)(
cl_context context,
cl_uint count,
const char **strings,
const size_t *lengths,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_program(CL_API_CALL *KHRpfn_clCreateProgramWithBinary)(
cl_context context,
cl_uint numDevices,
const cl_device_id *deviceList,
const size_t *lengths,
const unsigned char **binaries,
cl_int *binaryStatus,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clRetainProgram)(
cl_program program) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clReleaseProgram)(
cl_program program) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clBuildProgram)(
cl_program program,
cl_uint numDevices,
const cl_device_id *deviceList,
const char *options,
prog_logging_fn funcNotify,
void *userData) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
cl_int(CL_API_CALL *KHRpfn_clUnloadCompiler)() CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetProgramInfo)(
cl_program program,
cl_program_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetProgramBuildInfo)(
cl_program program,
cl_device_id device,
cl_program_build_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
// Kernel Object APIs
typedef CL_API_ENTRY cl_kernel(CL_API_CALL *KHRpfn_clCreateKernel)(
cl_program program,
const char *kernelName,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clCreateKernelsInProgram)(
cl_program program,
cl_uint numKernels,
cl_kernel *kernels,
cl_uint *numKernelsRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clRetainKernel)(
cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clReleaseKernel)(
cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clSetKernelArg)(
cl_kernel kernel,
cl_uint argIndex,
size_t argSize,
const void *argValue) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetKernelInfo)(
cl_kernel kernel,
cl_kernel_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetKernelWorkGroupInfo)(
cl_kernel kernel,
cl_device_id device,
cl_kernel_work_group_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
// Event Object APIs
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clWaitForEvents)(
cl_uint numEvents,
const cl_event *eventList) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetEventInfo)(
cl_event event,
cl_event_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clRetainEvent)(
cl_event event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clReleaseEvent)(
cl_event event) CL_API_SUFFIX__VERSION_1_0;
// Profiling APIs
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetEventProfilingInfo)(
cl_event event,
cl_profiling_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
// Flush and Finish APIs
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clFlush)(
cl_command_queue commandQueue) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clFinish)(
cl_command_queue commandQueue) CL_API_SUFFIX__VERSION_1_0;
// Enqueued Commands APIs
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueReadBuffer)(
cl_command_queue commandQueue,
cl_mem buffer,
cl_bool blockingRead,
size_t offset,
size_t cb,
void *ptr,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueWriteBuffer)(
cl_command_queue commandQueue,
cl_mem buffer,
cl_bool blockingWrite,
size_t offset,
size_t cb,
const void *ptr,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueCopyBuffer)(
cl_command_queue commandQueue,
cl_mem srcBuffer,
cl_mem dstBuffer,
size_t srcOffset,
size_t dstOffset,
size_t cb,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueReadImage)(
cl_command_queue commandQueue,
cl_mem image,
cl_bool blockingRead,
const size_t *origin,
const size_t *region,
size_t rowPitch,
size_t slicePitch,
void *ptr,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueWriteImage)(
cl_command_queue commandQueue,
cl_mem image,
cl_bool blockingWrite,
const size_t *origin,
const size_t *region,
size_t inputRowPitch,
size_t inputSlicePitch,
const void *ptr,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueCopyImage)(
cl_command_queue commandQueue,
cl_mem srcImage,
cl_mem dstImage,
const size_t *srcOrigin,
const size_t *dstOrigin,
const size_t *region,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueCopyImageToBuffer)(
cl_command_queue commandQueue,
cl_mem srcImage,
cl_mem dstBuffer,
const size_t *srcOrigin,
const size_t *region,
size_t dstOffset,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueCopyBufferToImage)(
cl_command_queue commandQueue,
cl_mem srcBuffer,
cl_mem dstImage,
size_t srcOffset,
const size_t *dstOrigin,
const size_t *region,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY void *(CL_API_CALL *KHRpfn_clEnqueueMapBuffer)(
cl_command_queue commandQueue,
cl_mem buffer,
cl_bool blockingMap,
cl_map_flags mapFlags,
size_t offset,
size_t cb,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event,
cl_int *errcodeRet)CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY void *(CL_API_CALL *KHRpfn_clEnqueueMapImage)(
cl_command_queue commandQueue,
cl_mem image,
cl_bool blockingMap,
cl_map_flags mapFlags,
const size_t *origin,
const size_t *region,
size_t *imageRowPitch,
size_t *imageSlicePitch,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event,
cl_int *errcodeRet)CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueUnmapMemObject)(
cl_command_queue commandQueue,
cl_mem memobj,
void *mappedPtr,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueNDRangeKernel)(
cl_command_queue commandQueue,
cl_kernel kernel,
cl_uint workDim,
const size_t *globalWorkOffset,
const size_t *globalWorkSize,
const size_t *localWorkSize,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueTask)(
cl_command_queue commandQueue,
cl_kernel kernel,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueNativeKernel)(
cl_command_queue commandQueue,
void(CL_CALLBACK *userFunc)(void *),
void *args,
size_t cbArgs,
cl_uint numMemObjects,
const cl_mem *memList,
const void **argsMemLoc,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
cl_int(CL_API_CALL *KHRpfn_clEnqueueMarker)(
cl_command_queue commandQueue,
cl_event *event) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
typedef CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
cl_int(CL_API_CALL *KHRpfn_clEnqueueWaitForEvents)(
cl_command_queue commandQueue,
cl_uint numEvents,
const cl_event *eventList) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
typedef CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED
cl_int(CL_API_CALL *KHRpfn_clEnqueueBarrier)(
cl_command_queue commandQueue) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
typedef CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void *(CL_API_CALL *KHRpfn_clGetExtensionFunctionAddress)(
const char *functionName)CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
typedef CL_API_ENTRY cl_mem(CL_API_CALL *KHRpfn_clCreateFromGLBuffer)(
cl_context context,
cl_mem_flags flags,
cl_GLuint bufobj,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_mem(CL_API_CALL *KHRpfn_clCreateFromGLTexture)(
cl_context context,
cl_mem_flags flags,
cl_GLenum textureTarget,
cl_GLint miplevel,
cl_GLuint texture,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem(CL_API_CALL *KHRpfn_clCreateFromGLTexture2D)(
cl_context context,
cl_mem_flags flags,
cl_GLenum textureTarget,
cl_GLint miplevel,
cl_GLuint texture,
cl_int *errcodeRet) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
typedef CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem(CL_API_CALL *KHRpfn_clCreateFromGLTexture3D)(
cl_context context,
cl_mem_flags flags,
cl_GLenum textureTarget,
cl_GLint miplevel,
cl_GLuint texture,
cl_int *errcodeRet) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
typedef CL_API_ENTRY cl_mem(CL_API_CALL *KHRpfn_clCreateFromGLRenderbuffer)(
cl_context context,
cl_mem_flags flags,
cl_GLuint renderbuffer,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetGLObjectInfo)(
cl_mem memobj,
cl_gl_object_type *glObjectType,
cl_GLuint *glObjectName) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetGLTextureInfo)(
cl_mem memobj,
cl_gl_texture_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueAcquireGLObjects)(
cl_command_queue commandQueue,
cl_uint numObjects,
const cl_mem *memObjects,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueReleaseGLObjects)(
cl_command_queue commandQueue,
cl_uint numObjects,
const cl_mem *memObjects,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
/* cl_khr_gl_sharing */
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetGLContextInfoKHR)(
const cl_context_properties *properties,
cl_gl_context_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_0;
#ifndef _WIN32
typedef void *clGetDeviceIDsFromDX9INTEL_fn;
typedef void *clCreateFromDX9MediaSurfaceINTEL_fn;
typedef void *clEnqueueAcquireDX9ObjectsINTEL_fn;
typedef void *clEnqueueReleaseDX9ObjectsINTEL_fn;
typedef void *clGetDeviceIDsFromDX9MediaAdapterKHR_fn;
typedef void *clCreateFromDX9MediaSurfaceKHR_fn;
typedef void *clEnqueueAcquireDX9MediaSurfacesKHR_fn;
typedef void *clEnqueueReleaseDX9MediaSurfacesKHR_fn;
typedef void *clGetDeviceIDsFromD3D10KHR_fn;
typedef void *clCreateFromD3D10BufferKHR_fn;
typedef void *clCreateFromD3D10Texture2DKHR_fn;
typedef void *clCreateFromD3D10Texture3DKHR_fn;
typedef void *clEnqueueAcquireD3D10ObjectsKHR_fn;
typedef void *clEnqueueReleaseD3D10ObjectsKHR_fn;
typedef void *clGetDeviceIDsFromD3D11KHR_fn;
typedef void *clCreateFromD3D11BufferKHR_fn;
typedef void *clCreateFromD3D11Texture2DKHR_fn;
typedef void *clCreateFromD3D11Texture3DKHR_fn;
typedef void *clEnqueueAcquireD3D11ObjectsKHR_fn;
typedef void *clEnqueueReleaseD3D11ObjectsKHR_fn;
#endif
/* OpenCL 1.1 */
/* cl_kgr_gl_event */
typedef CL_API_ENTRY cl_event(CL_API_CALL *KHRpfn_clCreateEventFromGLsyncKHR)(
cl_context context,
cl_GLsync sync,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clSetEventCallback)(
cl_event event,
cl_int commandExecCallbackType,
evnt_logging_fn pfnNotify,
void *userData) CL_API_SUFFIX__VERSION_1_1;
typedef CL_API_ENTRY cl_mem(CL_API_CALL *KHRpfn_clCreateSubBuffer)(
cl_mem buffer,
cl_mem_flags flags,
cl_buffer_create_type bufferCreateType,
const void *bufferCreateInfo,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clSetMemObjectDestructorCallback)(
cl_mem memobj,
memobj_logging_fn pfnNotify,
void *userData) CL_API_SUFFIX__VERSION_1_1;
typedef CL_API_ENTRY cl_event(CL_API_CALL *KHRpfn_clCreateUserEvent)(
cl_context context,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clSetUserEventStatus)(
cl_event event,
cl_int executionStatus) CL_API_SUFFIX__VERSION_1_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueReadBufferRect)(
cl_command_queue commandQueue,
cl_mem buffer,
cl_bool blockingRead,
const size_t *bufferOffset,
const size_t *hostOffset,
const size_t *region,
size_t bufferRowPitch,
size_t bufferSlicePitch,
size_t hostRowPitch,
size_t hostSlicePitch,
void *ptr,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueWriteBufferRect)(
cl_command_queue commandQueue,
cl_mem buffer,
cl_bool blockingRead,
const size_t *bufferOffset,
const size_t *hostOffset,
const size_t *region,
size_t bufferRowPitch,
size_t bufferSlicePitch,
size_t hostRowPitch,
size_t hostSlicePitch,
const void *ptr,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueCopyBufferRect)(
cl_command_queue commandQueue,
cl_mem srcBuffer,
cl_mem dstBuffer,
const size_t *srcOrigin,
const size_t *dstOrigin,
const size_t *region,
size_t srcRowPitch,
size_t srcSlicePitch,
size_t dstRowPitch,
size_t dstSlicePitch,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_1;
/*OpenCL 1.2*/
typedef CL_API_ENTRY cl_mem(CL_API_CALL *KHRpfn_clCreateImage)(
cl_context context,
cl_mem_flags flags,
const cl_image_format *imageFormat,
const cl_image_desc *imageDesc,
void *hostPtr,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetKernelArgInfo)(
cl_kernel kernel,
cl_uint argIndx,
cl_kernel_arg_info paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueFillBuffer)(
cl_command_queue commandQueue,
cl_mem buffer,
const void *pattern,
size_t patternSize,
size_t offset,
size_t cb,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueFillImage)(
cl_command_queue commandQueue,
cl_mem image,
const void *fillColor,
const size_t *origin,
const size_t *region,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueMigrateMemObjects)(
cl_command_queue commandQueue,
cl_uint numMemObjects,
const cl_mem *memObjects,
cl_mem_migration_flags flags,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueMarkerWithWaitList)(
cl_command_queue commandQueue,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueBarrierWithWaitList)(
cl_command_queue commandQueue,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clCreateSubDevices)(
cl_device_id inDevice,
const cl_device_partition_property *properties,
cl_uint numEntries,
cl_device_id *outDevices,
cl_uint *numDevices) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clRetainDevice)(
cl_device_id device) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clReleaseDevice)(
cl_device_id device) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_program(CL_API_CALL *KHRpfn_clCreateProgramWithBuiltInKernels)(
cl_context context,
cl_uint numDevices,
const cl_device_id *deviceList,
const char *kernelNames,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clCompileProgram)(
cl_program program,
cl_uint numDevices,
const cl_device_id *deviceList,
const char *options,
cl_uint numInputHeaders,
const cl_program *inputHeaders,
const char **headerIncludeNames,
void(CL_CALLBACK *pfnNotify)(cl_program program, void *userData),
void *userData) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_program(CL_API_CALL *KHRpfn_clLinkProgram)(
cl_context context,
cl_uint numDevices,
const cl_device_id *deviceList,
const char *options,
cl_uint numInputPrograms,
const cl_program *inputPrograms,
void(CL_CALLBACK *pfnNotify)(cl_program program, void *userData),
void *userData,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clUnloadPlatformCompiler)(
cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY void *(CL_API_CALL *KHRpfn_clGetExtensionFunctionAddressForPlatform)(
cl_platform_id platform,
const char *funcName)CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clCreateSubDevicesEXT)(
cl_device_id inDevice,
const cl_device_partition_property_ext *partitionProperties,
cl_uint numEntries,
cl_device_id *outDevices,
cl_uint *numDevices);
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clRetainDeviceEXT)(
cl_device_id device) CL_API_SUFFIX__VERSION_1_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clReleaseDeviceEXT)(
cl_device_id device) CL_API_SUFFIX__VERSION_1_0;
/*cl_khr_egl_image*/
typedef void *KHRpfn_clCreateFromEGLImageKHR;
typedef void *KHRpfn_clEnqueueAcquireEGLObjectsKHR;
typedef void *KHRpfn_clEnqueueReleaseEGLObjectsKHR;
/*cl_khr_egl_event*/
typedef void *KHRpfn_clCreateEventFromEGLSyncKHR;
/*OpenCL2.0*/
typedef CL_API_ENTRY cl_command_queue(CL_API_CALL *KHRpfn_clCreateCommandQueueWithProperties)(
cl_context context,
cl_device_id device,
const cl_queue_properties *properties,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY void *(CL_API_CALL *KHRpfn_clSVMAlloc)(
cl_context context,
cl_svm_mem_flags flags,
size_t size,
cl_uint alignment)CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY void(CL_API_CALL *KHRpfn_clSVMFree)(
cl_context context,
void *svmPointer) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueSVMFree)(
cl_command_queue commandQueue,
cl_uint numSvmPointers,
void *svmPointers[],
void(CL_CALLBACK *pfnFreeFunc)(cl_command_queue queue,
cl_uint numSvmPointers,
void *svmPointers[],
void *userData),
void *userData,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueSVMMemcpy)(
cl_command_queue commandQueue,
cl_bool blockingCopy,
void *dstPtr,
const void *srcPtr,
size_t size,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueSVMMemFill)(
cl_command_queue commandQueue,
void *svmPtr,
const void *pattern,
size_t patternSize,
size_t size,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueSVMMap)(
cl_command_queue commandQueue,
cl_bool blockingMap,
cl_map_flags mapFlags,
void *svmPtr,
size_t size,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueSVMUnmap)(
cl_command_queue commandQueue,
void *svmPtr,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clSetKernelArgSVMPointer)(
cl_kernel kernel,
cl_uint argIndex,
const void *argValue) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clSetKernelExecInfo)(
cl_kernel kernel,
cl_kernel_exec_info paramName,
size_t paramValueSize,
const void *paramValue) CL_API_SUFFIX__VERSION_2_0;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetKernelSubGroupInfoKHR)(
cl_kernel kernel,
cl_device_id device,
cl_kernel_sub_group_info paramName,
size_t inputValueSize,
const void *inputValue,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_2_0;
/*OpenCL2.1*/
typedef CL_API_ENTRY cl_kernel(CL_API_CALL *KHRpfn_clCloneKernel)(
cl_kernel sourceKernel,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_2_1;
typedef CL_API_ENTRY cl_program(CL_API_CALL *KHRpfn_clCreateProgramWithIL)(
cl_context context,
const void *il,
size_t length,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_2_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clEnqueueSVMMigrateMem)(
cl_command_queue commandQueue,
cl_uint numSvmPointers,
const void **svmPointers,
const size_t *sizes,
const cl_mem_migration_flags flags,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_2_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetDeviceAndHostTimer)(
cl_device_id device,
cl_ulong *deviceTimestamp,
cl_ulong *hostTimestamp) CL_API_SUFFIX__VERSION_2_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetHostTimer)(
cl_device_id device,
cl_ulong *hostTimestamp) CL_API_SUFFIX__VERSION_2_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clGetKernelSubGroupInfo)(
cl_kernel kernel,
cl_device_id device,
cl_kernel_sub_group_info paramName,
size_t inputValueSize,
const void *inputValue,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_2_1;
typedef CL_API_ENTRY cl_int(CL_API_CALL *KHRpfn_clSetDefaultDeviceCommandQueue)(
cl_context context,
cl_device_id device,
cl_command_queue commandQueue) CL_API_SUFFIX__VERSION_2_1;
/* clCreateImage */
typedef CL_API_ENTRY cl_int(CL_API_CALL *INTELpfn_clGetImageParamsINTEL)(
cl_context context,
const cl_image_format *imageFormat,
const cl_image_desc *imageDesc,
size_t *imageRowPitch,
size_t *imageSlicePitch) CL_API_SUFFIX__VERSION_1_1;
/* Performance Counter APIs */
typedef CL_API_ENTRY cl_command_queue(CL_API_CALL *INTELpfn_clCreatePerfCountersCommandQueueINTEL)(
cl_context context,
cl_device_id device,
cl_command_queue_properties properties,
cl_uint configuration,
cl_int *errcodeRet);
typedef CL_API_ENTRY cl_int(CL_API_CALL *INTELpfn_clSetPerformanceConfigurationINTEL)(
cl_device_id device,
cl_uint count,
cl_uint *offsets,
cl_uint *values);
/* cl_intel_accelerator */
typedef CL_API_ENTRY cl_accelerator_intel(CL_API_CALL *INTELpfn_clCreateAcceleratorINTEL)(
cl_context context,
cl_accelerator_type_intel acceleratorType,
size_t descriptorSize,
const void *descriptor,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *INTELpfn_clGetAcceleratorInfoINTEL)(
cl_accelerator_intel accelerator,
cl_accelerator_info_intel paramName,
size_t paramValueSize,
void *paramValue,
size_t *paramValueSizeRet) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *INTELpfn_clRetainAcceleratorINTEL)(
cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *INTELpfn_clReleaseAcceleratorINTEL)(
cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2;
/* cl_intel_va_api_media_sharing */
#ifdef LIBVA
#include "CL/cl_va_api_media_sharing_intel.h"
typedef CL_API_ENTRY cl_mem(CL_API_CALL *INTELpfn_clCreateFromVA_APIMediaSurfaceINTEL)(
cl_context context,
cl_mem_flags flags,
VASurfaceID *surface,
cl_uint plane,
cl_int *errcodeRet) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *INTELpfn_clGetDeviceIDsFromVA_APIMediaAdapterINTEL)(
cl_platform_id platform,
cl_va_api_device_source_intel mediaAdapterType,
void *mediaAdapter,
cl_va_api_device_set_intel mediaAdapterSet,
cl_uint numEntries,
cl_device_id *devices,
cl_uint *numDevices) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *INTELpfn_clEnqueueAcquireVA_APIMediaSurfacesINTEL)(
cl_command_queue commandQueue,
cl_uint numObjects,
const cl_mem *memObjects,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_2;
typedef CL_API_ENTRY cl_int(CL_API_CALL *INTELpfn_clEnqueueReleaseVA_APIMediaSurfacesINTEL)(
cl_command_queue commandQueue,
cl_uint numObjects,
const cl_mem *memObjects,
cl_uint numEventsInWaitList,
const cl_event *eventWaitList,
cl_event *event) CL_API_SUFFIX__VERSION_1_2;
#else
typedef void (*INTELpfn_clCreateFromVA_APIMediaSurfaceINTEL)();
typedef void (*INTELpfn_clGetDeviceIDsFromVA_APIMediaAdapterINTEL)();
typedef void (*INTELpfn_clEnqueueAcquireVA_APIMediaSurfacesINTEL)();
typedef void (*INTELpfn_clEnqueueReleaseVA_APIMediaSurfacesINTEL)();
#endif
/*
*
* vendor dispatch table structure
*
* note that the types in the structure KHRicdVendorDispatch mirror the function
* names listed in the string table khrIcdVendorDispatchFunctionNames
*
*/
struct SDispatchTable {
KHRpfn_clGetPlatformIDs clGetPlatformIDs;
KHRpfn_clGetPlatformInfo clGetPlatformInfo;
KHRpfn_clGetDeviceIDs clGetDeviceIDs;
KHRpfn_clGetDeviceInfo clGetDeviceInfo;
KHRpfn_clCreateContext clCreateContext;
KHRpfn_clCreateContextFromType clCreateContextFromType;
KHRpfn_clRetainContext clRetainContext;
KHRpfn_clReleaseContext clReleaseContext;
KHRpfn_clGetContextInfo clGetContextInfo;
KHRpfn_clCreateCommandQueue clCreateCommandQueue;
KHRpfn_clRetainCommandQueue clRetainCommandQueue;
KHRpfn_clReleaseCommandQueue clReleaseCommandQueue;
KHRpfn_clGetCommandQueueInfo clGetCommandQueueInfo;
KHRpfn_clSetCommandQueueProperty clSetCommandQueueProperty;
KHRpfn_clCreateBuffer clCreateBuffer;
KHRpfn_clCreateImage2D clCreateImage2D;
KHRpfn_clCreateImage3D clCreateImage3D;
KHRpfn_clRetainMemObject clRetainMemObject;
KHRpfn_clReleaseMemObject clReleaseMemObject;
KHRpfn_clGetSupportedImageFormats clGetSupportedImageFormats;
KHRpfn_clGetMemObjectInfo clGetMemObjectInfo;
KHRpfn_clGetImageInfo clGetImageInfo;
KHRpfn_clCreateSampler clCreateSampler;
KHRpfn_clRetainSampler clRetainSampler;
KHRpfn_clReleaseSampler clReleaseSampler;
KHRpfn_clGetSamplerInfo clGetSamplerInfo;
KHRpfn_clCreateProgramWithSource clCreateProgramWithSource;
KHRpfn_clCreateProgramWithBinary clCreateProgramWithBinary;
KHRpfn_clRetainProgram clRetainProgram;
KHRpfn_clReleaseProgram clReleaseProgram;
KHRpfn_clBuildProgram clBuildProgram;
KHRpfn_clUnloadCompiler clUnloadCompiler;
KHRpfn_clGetProgramInfo clGetProgramInfo;
KHRpfn_clGetProgramBuildInfo clGetProgramBuildInfo;
KHRpfn_clCreateKernel clCreateKernel;
KHRpfn_clCreateKernelsInProgram clCreateKernelsInProgram;
KHRpfn_clRetainKernel clRetainKernel;
KHRpfn_clReleaseKernel clReleaseKernel;
KHRpfn_clSetKernelArg clSetKernelArg;
KHRpfn_clGetKernelInfo clGetKernelInfo;
KHRpfn_clGetKernelWorkGroupInfo clGetKernelWorkGroupInfo;
KHRpfn_clWaitForEvents clWaitForEvents;
KHRpfn_clGetEventInfo clGetEventInfo;
KHRpfn_clRetainEvent clRetainEvent;
KHRpfn_clReleaseEvent clReleaseEvent;
KHRpfn_clGetEventProfilingInfo clGetEventProfilingInfo;
KHRpfn_clFlush clFlush;
KHRpfn_clFinish clFinish;
KHRpfn_clEnqueueReadBuffer clEnqueueReadBuffer;
KHRpfn_clEnqueueWriteBuffer clEnqueueWriteBuffer;
KHRpfn_clEnqueueCopyBuffer clEnqueueCopyBuffer;
KHRpfn_clEnqueueReadImage clEnqueueReadImage;
KHRpfn_clEnqueueWriteImage clEnqueueWriteImage;
KHRpfn_clEnqueueCopyImage clEnqueueCopyImage;
KHRpfn_clEnqueueCopyImageToBuffer clEnqueueCopyImageToBuffer;
KHRpfn_clEnqueueCopyBufferToImage clEnqueueCopyBufferToImage;
KHRpfn_clEnqueueMapBuffer clEnqueueMapBuffer;
KHRpfn_clEnqueueMapImage clEnqueueMapImage;
KHRpfn_clEnqueueUnmapMemObject clEnqueueUnmapMemObject;
KHRpfn_clEnqueueNDRangeKernel clEnqueueNDRangeKernel;
KHRpfn_clEnqueueTask clEnqueueTask;
KHRpfn_clEnqueueNativeKernel clEnqueueNativeKernel;
KHRpfn_clEnqueueMarker clEnqueueMarker;
KHRpfn_clEnqueueWaitForEvents clEnqueueWaitForEvents;
KHRpfn_clEnqueueBarrier clEnqueueBarrier;
KHRpfn_clGetExtensionFunctionAddress clGetExtensionFunctionAddress;
KHRpfn_clCreateFromGLBuffer clCreateFromGLBuffer;
KHRpfn_clCreateFromGLTexture2D clCreateFromGLTexture2D;
KHRpfn_clCreateFromGLTexture3D clCreateFromGLTexture3D;
KHRpfn_clCreateFromGLRenderbuffer clCreateFromGLRenderbuffer;
KHRpfn_clGetGLObjectInfo clGetGLObjectInfo;
KHRpfn_clGetGLTextureInfo clGetGLTextureInfo;
KHRpfn_clEnqueueAcquireGLObjects clEnqueueAcquireGLObjects;
KHRpfn_clEnqueueReleaseGLObjects clEnqueueReleaseGLObjects;
KHRpfn_clGetGLContextInfoKHR clGetGLContextInfoKHR;
/* cl_khr_d3d10_sharing */
clGetDeviceIDsFromD3D10KHR_fn clGetDeviceIDsFromD3D10KHR;
clCreateFromD3D10BufferKHR_fn clCreateFromD3D10BufferKHR;
clCreateFromD3D10Texture2DKHR_fn clCreateFromD3D10Texture2DKHR;
clCreateFromD3D10Texture3DKHR_fn clCreateFromD3D10Texture3DKHR;
clEnqueueAcquireD3D10ObjectsKHR_fn clEnqueueAcquireD3D10ObjectsKHR;
clEnqueueReleaseD3D10ObjectsKHR_fn clEnqueueReleaseD3D10ObjectsKHR;
/* OpenCL 1.1 */
KHRpfn_clSetEventCallback clSetEventCallback;
KHRpfn_clCreateSubBuffer clCreateSubBuffer;
KHRpfn_clSetMemObjectDestructorCallback clSetMemObjectDestructorCallback;
KHRpfn_clCreateUserEvent clCreateUserEvent;
KHRpfn_clSetUserEventStatus clSetUserEventStatus;
KHRpfn_clEnqueueReadBufferRect clEnqueueReadBufferRect;
KHRpfn_clEnqueueWriteBufferRect clEnqueueWriteBufferRect;
KHRpfn_clEnqueueCopyBufferRect clEnqueueCopyBufferRect;
/* cl_ext_device_fission */
KHRpfn_clCreateSubDevicesEXT clCreateSubDevicesEXT;
KHRpfn_clRetainDeviceEXT clRetainDeviceEXT;
KHRpfn_clReleaseDeviceEXT clReleaseDeviceEXT;
/* cl_khr_gl_event */
KHRpfn_clCreateEventFromGLsyncKHR clCreateEventFromGLsyncKHR;
/* OpenCL 1.2 */
KHRpfn_clCreateSubDevices clCreateSubDevices;
KHRpfn_clRetainDevice clRetainDevice;
KHRpfn_clReleaseDevice clReleaseDevice;
KHRpfn_clCreateImage clCreateImage;
KHRpfn_clCreateProgramWithBuiltInKernels clCreateProgramWithBuiltInKernels;
KHRpfn_clCompileProgram clCompileProgram;
KHRpfn_clLinkProgram clLinkProgram;
KHRpfn_clUnloadPlatformCompiler clUnloadPlatformCompiler;
KHRpfn_clGetKernelArgInfo clGetKernelArgInfo;
KHRpfn_clEnqueueFillBuffer clEnqueueFillBuffer;
KHRpfn_clEnqueueFillImage clEnqueueFillImage;
KHRpfn_clEnqueueMigrateMemObjects clEnqueueMigrateMemObjects;
KHRpfn_clEnqueueMarkerWithWaitList clEnqueueMarkerWithWaitList;
KHRpfn_clEnqueueBarrierWithWaitList clEnqueueBarrierWithWaitList;
KHRpfn_clGetExtensionFunctionAddressForPlatform clGetExtensionFunctionAddressForPlatform;
KHRpfn_clCreateFromGLTexture clCreateFromGLTexture;
/* cl_khr_d3d11_sharing */
clGetDeviceIDsFromD3D11KHR_fn clGetDeviceIDsFromD3D11KHR;
clCreateFromD3D11BufferKHR_fn clCreateFromD3D11BufferKHR;
clCreateFromD3D11Texture2DKHR_fn clCreateFromD3D11Texture2DKHR;
clCreateFromD3D11Texture3DKHR_fn clCreateFromD3D11Texture3DKHR;
clCreateFromDX9MediaSurfaceKHR_fn clCreateFromDX9MediaSurfaceKHR;
clEnqueueAcquireD3D11ObjectsKHR_fn clEnqueueAcquireD3D11ObjectsKHR;
clEnqueueReleaseD3D11ObjectsKHR_fn clEnqueueReleaseD3D11ObjectsKHR;
/* cl_khr_dx9_media_sharing */
clGetDeviceIDsFromDX9MediaAdapterKHR_fn clGetDeviceIDsFromDX9MediaAdapterKHR;
clEnqueueAcquireDX9MediaSurfacesKHR_fn clEnqueueAcquireDX9MediaSurfacesKHR;
clEnqueueReleaseDX9MediaSurfacesKHR_fn clEnqueueReleaseDX9MediaSurfacesKHR;
/* cl_khr_egl_image */
KHRpfn_clCreateFromEGLImageKHR clCreateFromEGLImageKHR;
KHRpfn_clEnqueueAcquireEGLObjectsKHR clEnqueueAcquireEGLObjectsKHR;
KHRpfn_clEnqueueReleaseEGLObjectsKHR clEnqueueReleaseEGLObjectsKHR;
/* cl_khr_egl_event */
KHRpfn_clCreateEventFromEGLSyncKHR clCreateEventFromEGLSyncKHR;
/* OpenCL 2.0 */
KHRpfn_clCreateCommandQueueWithProperties clCreateCommandQueueWithProperties;
KHRpfn_clCreatePipe clCreatePipe;
KHRpfn_clGetPipeInfo clGetPipeInfo;
KHRpfn_clSVMAlloc clSVMAlloc;
KHRpfn_clSVMFree clSVMFree;
KHRpfn_clEnqueueSVMFree clEnqueueSVMFree;
KHRpfn_clEnqueueSVMMemcpy clEnqueueSVMMemcpy;
KHRpfn_clEnqueueSVMMemFill clEnqueueSVMMemFill;
KHRpfn_clEnqueueSVMMap clEnqueueSVMMap;
KHRpfn_clEnqueueSVMUnmap clEnqueueSVMUnmap;
KHRpfn_clCreateSamplerWithProperties clCreateSamplerWithProperties;
KHRpfn_clSetKernelArgSVMPointer clSetKernelArgSVMPointer;
KHRpfn_clSetKernelExecInfo clSetKernelExecInfo;
KHRpfn_clGetKernelSubGroupInfoKHR clGetKernelSubGroupInfoKHR;
/* OpenCL 2.1 */
KHRpfn_clCloneKernel clCloneKernel;
KHRpfn_clCreateProgramWithIL clCreateProgramWithIL;
KHRpfn_clEnqueueSVMMigrateMem clEnqueueSVMMigrateMem;
KHRpfn_clGetDeviceAndHostTimer clGetDeviceAndHostTimer;
KHRpfn_clGetHostTimer clGetHostTimer;
KHRpfn_clGetKernelSubGroupInfo clGetKernelSubGroupInfo;
KHRpfn_clSetDefaultDeviceCommandQueue clSetDefaultDeviceCommandQueue;
};
struct SCRTDispatchTable {
// Support CRT entry point
KHRpfn_clGetKernelArgInfo clGetKernelArgInfo;
clGetDeviceIDsFromDX9INTEL_fn clGetDeviceIDsFromDX9INTEL;
clCreateFromDX9MediaSurfaceINTEL_fn clCreateFromDX9MediaSurfaceINTEL;
clEnqueueAcquireDX9ObjectsINTEL_fn clEnqueueAcquireDX9ObjectsINTEL;
clEnqueueReleaseDX9ObjectsINTEL_fn clEnqueueReleaseDX9ObjectsINTEL;
INTELpfn_clGetImageParamsINTEL clGetImageParamsINTEL;
// API to expose the Performance Counters to applications
INTELpfn_clCreatePerfCountersCommandQueueINTEL clCreatePerfCountersCommandQueueINTEL;
// Video Analytics Accelerator
INTELpfn_clCreateAcceleratorINTEL clCreateAcceleratorINTEL;
INTELpfn_clGetAcceleratorInfoINTEL clGetAcceleratorInfoINTEL;
INTELpfn_clRetainAcceleratorINTEL clRetainAcceleratorINTEL;
INTELpfn_clReleaseAcceleratorINTEL clReleaseAcceleratorINTEL;
void *placeholder12;
void *placeholder13;
// VAMedia sharing extension
#ifdef LIBVA
INTELpfn_clCreateFromVA_APIMediaSurfaceINTEL clCreateFromVA_APIMediaSurfaceINTEL;
INTELpfn_clGetDeviceIDsFromVA_APIMediaAdapterINTEL clGetDeviceIDsFromVA_APIMediaAdapterINTEL;
INTELpfn_clEnqueueReleaseVA_APIMediaSurfacesINTEL clEnqueueReleaseVA_APIMediaSurfacesINTEL;
INTELpfn_clEnqueueAcquireVA_APIMediaSurfacesINTEL clEnqueueAcquireVA_APIMediaSurfacesINTEL;
#else
void *placeholder14;
void *placeholder15;
void *placeholder16;
void *placeholder17;
#endif
void *placeholder18;
void *placeholder19;
void *placeholder20;
void *placeholder21;
// OCL Performance Counters configuration
INTELpfn_clSetPerformanceConfigurationINTEL clSetPerformanceConfigurationINTEL;
};
extern SDispatchTable icdGlobalDispatchTable;
extern SCRTDispatchTable crtGlobalDispatchTable;
struct SEntryPointsTable {
SDispatchTable *icdDispatch;
SCRTDispatchTable *crtDispatch;
};
struct SEntryPointsTableData {
SDispatchTable icdDispatch;
SCRTDispatchTable crtDispatch;
};
extern SEntryPointsTable globalDispatchTable;