Branch :
// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from cl.xml.
//
// Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// libOpenCL_autogen.cpp: Implements the exported CL functions.
//#include "anglebase/no_destructor.h"
//#include "common/system_utils.h"
#include <iostream>
//#include <memory>
#include "cl_loader.h"
namespace
{
bool gLoaded = false;
/* TODO(jplate): uncomment after entry points moved to GLESV2 lib http://anglebug.com/5759
std::unique_ptr<angle::Library> &EntryPointsLib()
{
static angle::base::NoDestructor<std::unique_ptr<angle::Library>> sEntryPointsLib;
return *sEntryPointsLib;
}
angle::GenericProc CL_API_ENTRY GlobalLoad(const char *symbol)
{
return reinterpret_cast<angle::GenericProc>(EntryPointsLib()->getSymbol(symbol));
}
*/
void EnsureCLLoaded()
{
if (gLoaded)
{
return;
}
// EntryPointsLib().reset(
// angle::OpenSharedLibrary(ANGLE_GLESV2_LIBRARY_NAME, angle::SearchType::ApplicationDir));
// angle::LoadCL(GlobalLoad);
angle::LoadCL(nullptr);
if (!cl_loader.clGetDeviceIDs)
{
std::cerr << "Error loading CL entry points." << std::endl;
}
else
{
gLoaded = true;
}
}
} // anonymous namespace
extern "C" {
// CL 1.0
ANGLE_EXPORT cl_int CL_API_ENTRY clGetPlatformIDs(cl_uint num_entries,
cl_platform_id *platforms,
cl_uint *num_platforms) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetPlatformIDs(num_entries, platforms, num_platforms);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetPlatformInfo(cl_platform_id platform,
cl_platform_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetPlatformInfo(platform, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetDeviceIDs(cl_platform_id platform,
cl_device_type device_type,
cl_uint num_entries,
cl_device_id *devices,
cl_uint *num_devices) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetDeviceIDs(platform, device_type, num_entries, devices, num_devices);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetDeviceInfo(cl_device_id device,
cl_device_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetDeviceInfo(device, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_context CL_API_ENTRY
clCreateContext(const cl_context_properties *properties,
cl_uint num_devices,
const cl_device_id *devices,
void(CL_CALLBACK *pfn_notify)(const char *errinfo,
const void *private_info,
size_t cb,
void *user_data),
void *user_data,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateContext(properties, num_devices, devices, pfn_notify, user_data,
errcode_ret);
}
ANGLE_EXPORT cl_context CL_API_ENTRY
clCreateContextFromType(const cl_context_properties *properties,
cl_device_type device_type,
void(CL_CALLBACK *pfn_notify)(const char *errinfo,
const void *private_info,
size_t cb,
void *user_data),
void *user_data,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateContextFromType(properties, device_type, pfn_notify, user_data,
errcode_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clRetainContext(cl_context context) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clRetainContext(context);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clReleaseContext(cl_context context) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clReleaseContext(context);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetContextInfo(cl_context context,
cl_context_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetContextInfo(context, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clRetainCommandQueue(cl_command_queue command_queue) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clRetainCommandQueue(command_queue);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clReleaseCommandQueue(cl_command_queue command_queue) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clReleaseCommandQueue(command_queue);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetCommandQueueInfo(cl_command_queue command_queue,
cl_command_queue_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetCommandQueueInfo(command_queue, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_mem CL_API_ENTRY clCreateBuffer(cl_context context,
cl_mem_flags flags,
size_t size,
void *host_ptr,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateBuffer(context, flags, size, host_ptr, errcode_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clRetainMemObject(cl_mem memobj) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clRetainMemObject(memobj);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clReleaseMemObject(cl_mem memobj) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clReleaseMemObject(memobj);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetSupportedImageFormats(cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint num_entries,
cl_image_format *image_formats,
cl_uint *num_image_formats) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetSupportedImageFormats(context, flags, image_type, num_entries,
image_formats, num_image_formats);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetMemObjectInfo(cl_mem memobj,
cl_mem_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetMemObjectInfo(memobj, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetImageInfo(cl_mem image,
cl_image_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetImageInfo(image, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clRetainSampler(cl_sampler sampler) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clRetainSampler(sampler);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clReleaseSampler(cl_sampler sampler) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clReleaseSampler(sampler);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetSamplerInfo(cl_sampler sampler,
cl_sampler_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetSamplerInfo(sampler, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_program CL_API_ENTRY clCreateProgramWithSource(cl_context context,
cl_uint count,
const char **strings,
const size_t *lengths,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateProgramWithSource(context, count, strings, lengths, errcode_ret);
}
ANGLE_EXPORT cl_program CL_API_ENTRY clCreateProgramWithBinary(cl_context context,
cl_uint num_devices,
const cl_device_id *device_list,
const size_t *lengths,
const unsigned char **binaries,
cl_int *binary_status,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateProgramWithBinary(context, num_devices, device_list, lengths, binaries,
binary_status, errcode_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clRetainProgram(cl_program program) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clRetainProgram(program);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clReleaseProgram(cl_program program) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clReleaseProgram(program);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clBuildProgram(cl_program program,
cl_uint num_devices,
const cl_device_id *device_list,
const char *options,
void(CL_CALLBACK *pfn_notify)(cl_program program,
void *user_data),
void *user_data) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clBuildProgram(program, num_devices, device_list, options, pfn_notify,
user_data);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetProgramInfo(cl_program program,
cl_program_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetProgramInfo(program, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetProgramBuildInfo(cl_program program,
cl_device_id device,
cl_program_build_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetProgramBuildInfo(program, device, param_name, param_value_size,
param_value, param_value_size_ret);
}
ANGLE_EXPORT cl_kernel CL_API_ENTRY clCreateKernel(cl_program program,
const char *kernel_name,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateKernel(program, kernel_name, errcode_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clCreateKernelsInProgram(cl_program program,
cl_uint num_kernels,
cl_kernel *kernels,
cl_uint *num_kernels_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateKernelsInProgram(program, num_kernels, kernels, num_kernels_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clRetainKernel(cl_kernel kernel) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clRetainKernel(kernel);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clReleaseKernel(cl_kernel kernel) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clReleaseKernel(kernel);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clSetKernelArg(cl_kernel kernel,
cl_uint arg_index,
size_t arg_size,
const void *arg_value) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clSetKernelArg(kernel, arg_index, arg_size, arg_value);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetKernelInfo(cl_kernel kernel,
cl_kernel_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetKernelInfo(kernel, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetKernelWorkGroupInfo(cl_kernel kernel,
cl_device_id device,
cl_kernel_work_group_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetKernelWorkGroupInfo(kernel, device, param_name, param_value_size,
param_value, param_value_size_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clWaitForEvents(cl_uint num_events,
const cl_event *event_list) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clWaitForEvents(num_events, event_list);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetEventInfo(cl_event event,
cl_event_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetEventInfo(event, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clRetainEvent(cl_event event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clRetainEvent(event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clReleaseEvent(cl_event event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clReleaseEvent(event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clGetEventProfilingInfo(cl_event event,
cl_profiling_info param_name,
size_t param_value_size,
void *param_value,
size_t *param_value_size_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetEventProfilingInfo(event, param_name, param_value_size, param_value,
param_value_size_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clFlush(cl_command_queue command_queue) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clFlush(command_queue);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clFinish(cl_command_queue command_queue) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clFinish(command_queue);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueReadBuffer(cl_command_queue command_queue,
cl_mem buffer,
cl_bool blocking_read,
size_t offset,
size_t size,
void *ptr,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueReadBuffer(command_queue, buffer, blocking_read, offset, size, ptr,
num_events_in_wait_list, event_wait_list, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueWriteBuffer(cl_command_queue command_queue,
cl_mem buffer,
cl_bool blocking_write,
size_t offset,
size_t size,
const void *ptr,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueWriteBuffer(command_queue, buffer, blocking_write, offset, size, ptr,
num_events_in_wait_list, event_wait_list, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueCopyBuffer(cl_command_queue command_queue,
cl_mem src_buffer,
cl_mem dst_buffer,
size_t src_offset,
size_t dst_offset,
size_t size,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueCopyBuffer(command_queue, src_buffer, dst_buffer, src_offset,
dst_offset, size, num_events_in_wait_list, event_wait_list,
event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueReadImage(cl_command_queue command_queue,
cl_mem image,
cl_bool blocking_read,
const size_t *origin,
const size_t *region,
size_t row_pitch,
size_t slice_pitch,
void *ptr,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueReadImage(command_queue, image, blocking_read, origin, region,
row_pitch, slice_pitch, ptr, num_events_in_wait_list,
event_wait_list, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueWriteImage(cl_command_queue command_queue,
cl_mem image,
cl_bool blocking_write,
const size_t *origin,
const size_t *region,
size_t input_row_pitch,
size_t input_slice_pitch,
const void *ptr,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueWriteImage(command_queue, image, blocking_write, origin, region,
input_row_pitch, input_slice_pitch, ptr,
num_events_in_wait_list, event_wait_list, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueCopyImage(cl_command_queue command_queue,
cl_mem src_image,
cl_mem dst_image,
const size_t *src_origin,
const size_t *dst_origin,
const size_t *region,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueCopyImage(command_queue, src_image, dst_image, src_origin, dst_origin,
region, num_events_in_wait_list, event_wait_list, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueCopyImageToBuffer(cl_command_queue command_queue,
cl_mem src_image,
cl_mem dst_buffer,
const size_t *src_origin,
const size_t *region,
size_t dst_offset,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueCopyImageToBuffer(command_queue, src_image, dst_buffer, src_origin,
region, dst_offset, num_events_in_wait_list,
event_wait_list, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueCopyBufferToImage(cl_command_queue command_queue,
cl_mem src_buffer,
cl_mem dst_image,
size_t src_offset,
const size_t *dst_origin,
const size_t *region,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueCopyBufferToImage(command_queue, src_buffer, dst_image, src_offset,
dst_origin, region, num_events_in_wait_list,
event_wait_list, event);
}
ANGLE_EXPORT void *CL_API_ENTRY clEnqueueMapBuffer(cl_command_queue command_queue,
cl_mem buffer,
cl_bool blocking_map,
cl_map_flags map_flags,
size_t offset,
size_t size,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueMapBuffer(command_queue, buffer, blocking_map, map_flags, offset,
size, num_events_in_wait_list, event_wait_list, event,
errcode_ret);
}
ANGLE_EXPORT void *CL_API_ENTRY clEnqueueMapImage(cl_command_queue command_queue,
cl_mem image,
cl_bool blocking_map,
cl_map_flags map_flags,
const size_t *origin,
const size_t *region,
size_t *image_row_pitch,
size_t *image_slice_pitch,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueMapImage(
command_queue, image, blocking_map, map_flags, origin, region, image_row_pitch,
image_slice_pitch, num_events_in_wait_list, event_wait_list, event, errcode_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueUnmapMemObject(cl_command_queue command_queue,
cl_mem memobj,
void *mapped_ptr,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueUnmapMemObject(command_queue, memobj, mapped_ptr,
num_events_in_wait_list, event_wait_list, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueNDRangeKernel(cl_command_queue command_queue,
cl_kernel kernel,
cl_uint work_dim,
const size_t *global_work_offset,
const size_t *global_work_size,
const size_t *local_work_size,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueNDRangeKernel(command_queue, kernel, work_dim, global_work_offset,
global_work_size, local_work_size,
num_events_in_wait_list, event_wait_list, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueNativeKernel(cl_command_queue command_queue,
void(CL_CALLBACK *user_func)(void *),
void *args,
size_t cb_args,
cl_uint num_mem_objects,
const cl_mem *mem_list,
const void **args_mem_loc,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueNativeKernel(command_queue, user_func, args, cb_args, num_mem_objects,
mem_list, args_mem_loc, num_events_in_wait_list,
event_wait_list, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY
clSetCommandQueueProperty(cl_command_queue command_queue,
cl_command_queue_properties properties,
cl_bool enable,
cl_command_queue_properties *old_properties) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clSetCommandQueueProperty(command_queue, properties, enable, old_properties);
}
ANGLE_EXPORT cl_mem CL_API_ENTRY clCreateImage2D(cl_context context,
cl_mem_flags flags,
const cl_image_format *image_format,
size_t image_width,
size_t image_height,
size_t image_row_pitch,
void *host_ptr,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateImage2D(context, flags, image_format, image_width, image_height,
image_row_pitch, host_ptr, errcode_ret);
}
ANGLE_EXPORT cl_mem CL_API_ENTRY clCreateImage3D(cl_context context,
cl_mem_flags flags,
const cl_image_format *image_format,
size_t image_width,
size_t image_height,
size_t image_depth,
size_t image_row_pitch,
size_t image_slice_pitch,
void *host_ptr,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateImage3D(context, flags, image_format, image_width, image_height,
image_depth, image_row_pitch, image_slice_pitch, host_ptr,
errcode_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueMarker(cl_command_queue command_queue,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueMarker(command_queue, event);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueWaitForEvents(cl_command_queue command_queue,
cl_uint num_events,
const cl_event *event_list) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueWaitForEvents(command_queue, num_events, event_list);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueBarrier(cl_command_queue command_queue) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueBarrier(command_queue);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clUnloadCompiler() CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clUnloadCompiler();
}
ANGLE_EXPORT void *CL_API_ENTRY clGetExtensionFunctionAddress(const char *func_name) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clGetExtensionFunctionAddress(func_name);
}
ANGLE_EXPORT cl_command_queue CL_API_ENTRY
clCreateCommandQueue(cl_context context,
cl_device_id device,
cl_command_queue_properties properties,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateCommandQueue(context, device, properties, errcode_ret);
}
ANGLE_EXPORT cl_sampler CL_API_ENTRY clCreateSampler(cl_context context,
cl_bool normalized_coords,
cl_addressing_mode addressing_mode,
cl_filter_mode filter_mode,
cl_int *errcode_ret) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clCreateSampler(context, normalized_coords, addressing_mode, filter_mode,
errcode_ret);
}
ANGLE_EXPORT cl_int CL_API_ENTRY clEnqueueTask(cl_command_queue command_queue,
cl_kernel kernel,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event) CL_API_CALL
{
EnsureCLLoaded();
return cl_loader.clEnqueueTask(command_queue, kernel, num_events_in_wait_list, event_wait_list,
event);
}
} // extern "C"