blob: 261afecc767315233e24c63a4a8b6d8ca22c36c7 [file] [log] [blame]
//
// Copyright 2021 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.
//
// validationCL.cpp: Validation functions for generic CL entry point parameters
#include "libANGLE/validationCL_autogen.h"
namespace cl
{
// CL 1.0
cl_int ValidateGetPlatformIDs(cl_uint num_entries,
Platform *const *platforms,
const cl_uint *num_platforms)
{
if ((num_entries == 0u && platforms != nullptr) ||
(platforms == nullptr && num_platforms == nullptr))
{
return CL_INVALID_VALUE;
}
return CL_SUCCESS;
}
cl_int ValidateGetPlatformInfo(const Platform *platform,
PlatformInfo param_name,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
if (!Platform::IsValid(platform))
{
return CL_INVALID_PLATFORM;
}
if (param_name == PlatformInfo::InvalidEnum ||
(param_value_size == 0u && param_value != nullptr))
{
return CL_INVALID_VALUE;
}
return CL_SUCCESS;
}
cl_int ValidateGetDeviceIDs(const Platform *platform,
cl_device_type device_type,
cl_uint num_entries,
Device *const *devices,
const cl_uint *num_devices)
{
if (!Platform::IsValidOrDefault(platform))
{
return CL_INVALID_PLATFORM;
}
if (!Device::IsValidType(device_type))
{
return CL_INVALID_DEVICE_TYPE;
}
if ((num_entries == 0u && devices != nullptr) || (devices == nullptr && num_devices == nullptr))
{
return CL_INVALID_VALUE;
}
return CL_SUCCESS;
}
cl_int ValidateGetDeviceInfo(const Device *device,
DeviceInfo param_name,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
if (!Device::IsValid(device))
{
return CL_INVALID_DEVICE;
}
if (param_name == DeviceInfo::InvalidEnum || (param_value_size == 0u && param_value != nullptr))
{
return CL_INVALID_VALUE;
}
return CL_SUCCESS;
}
bool ValidateCreateContext(const cl_context_properties *properties,
cl_uint num_devices,
Device *const *devicesPacked,
void(CL_CALLBACK *pfn_notify)(const char *errinfo,
const void *private_info,
size_t cb,
void *user_data),
const void *user_data,
cl_int *errcode_ret)
{
return true;
}
bool ValidateCreateContextFromType(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),
const void *user_data,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateRetainContext(const Context *contextPacked)
{
return CL_SUCCESS;
}
cl_int ValidateReleaseContext(const Context *contextPacked)
{
return CL_SUCCESS;
}
cl_int ValidateGetContextInfo(const Context *contextPacked,
ContextInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateRetainCommandQueue(const CommandQueue *command_queuePacked)
{
return CL_SUCCESS;
}
cl_int ValidateReleaseCommandQueue(const CommandQueue *command_queuePacked)
{
return CL_SUCCESS;
}
cl_int ValidateGetCommandQueueInfo(const CommandQueue *command_queuePacked,
CommandQueueInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
bool ValidateCreateBuffer(const Context *contextPacked,
cl_mem_flags flags,
size_t size,
const void *host_ptr,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateRetainMemObject(const Memory *memobjPacked)
{
return CL_SUCCESS;
}
cl_int ValidateReleaseMemObject(const Memory *memobjPacked)
{
return CL_SUCCESS;
}
cl_int ValidateGetSupportedImageFormats(const Context *contextPacked,
cl_mem_flags flags,
MemObjectType image_typePacked,
cl_uint num_entries,
const cl_image_format *image_formats,
const cl_uint *num_image_formats)
{
return CL_SUCCESS;
}
cl_int ValidateGetMemObjectInfo(const Memory *memobjPacked,
MemInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateGetImageInfo(const Memory *imagePacked,
ImageInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateRetainSampler(const Sampler *samplerPacked)
{
return CL_SUCCESS;
}
cl_int ValidateReleaseSampler(const Sampler *samplerPacked)
{
return CL_SUCCESS;
}
cl_int ValidateGetSamplerInfo(const Sampler *samplerPacked,
SamplerInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
bool ValidateCreateProgramWithSource(const Context *contextPacked,
cl_uint count,
const char **strings,
const size_t *lengths,
cl_int *errcode_ret)
{
return true;
}
bool ValidateCreateProgramWithBinary(const Context *contextPacked,
cl_uint num_devices,
Device *const *device_listPacked,
const size_t *lengths,
const unsigned char **binaries,
const cl_int *binary_status,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateRetainProgram(const Program *programPacked)
{
return CL_SUCCESS;
}
cl_int ValidateReleaseProgram(const Program *programPacked)
{
return CL_SUCCESS;
}
cl_int ValidateBuildProgram(const Program *programPacked,
cl_uint num_devices,
Device *const *device_listPacked,
const char *options,
void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data),
const void *user_data)
{
return CL_SUCCESS;
}
cl_int ValidateGetProgramInfo(const Program *programPacked,
ProgramInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateGetProgramBuildInfo(const Program *programPacked,
const Device *devicePacked,
ProgramBuildInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
bool ValidateCreateKernel(const Program *programPacked,
const char *kernel_name,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateCreateKernelsInProgram(const Program *programPacked,
cl_uint num_kernels,
Kernel *const *kernelsPacked,
const cl_uint *num_kernels_ret)
{
return CL_SUCCESS;
}
cl_int ValidateRetainKernel(const Kernel *kernelPacked)
{
return CL_SUCCESS;
}
cl_int ValidateReleaseKernel(const Kernel *kernelPacked)
{
return CL_SUCCESS;
}
cl_int ValidateSetKernelArg(const Kernel *kernelPacked,
cl_uint arg_index,
size_t arg_size,
const void *arg_value)
{
return CL_SUCCESS;
}
cl_int ValidateGetKernelInfo(const Kernel *kernelPacked,
KernelInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateGetKernelWorkGroupInfo(const Kernel *kernelPacked,
const Device *devicePacked,
KernelWorkGroupInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateWaitForEvents(cl_uint num_events, Event *const *event_listPacked)
{
return CL_SUCCESS;
}
cl_int ValidateGetEventInfo(const Event *eventPacked,
EventInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateRetainEvent(const Event *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateReleaseEvent(const Event *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateGetEventProfilingInfo(const Event *eventPacked,
ProfilingInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateFlush(const CommandQueue *command_queuePacked)
{
return CL_SUCCESS;
}
cl_int ValidateFinish(const CommandQueue *command_queuePacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueReadBuffer(const CommandQueue *command_queuePacked,
const Memory *bufferPacked,
cl_bool blocking_read,
size_t offset,
size_t size,
const void *ptr,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueWriteBuffer(const CommandQueue *command_queuePacked,
const Memory *bufferPacked,
cl_bool blocking_write,
size_t offset,
size_t size,
const void *ptr,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueCopyBuffer(const CommandQueue *command_queuePacked,
const Memory *src_bufferPacked,
const Memory *dst_bufferPacked,
size_t src_offset,
size_t dst_offset,
size_t size,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueReadImage(const CommandQueue *command_queuePacked,
const Memory *imagePacked,
cl_bool blocking_read,
const size_t *origin,
const size_t *region,
size_t row_pitch,
size_t slice_pitch,
const void *ptr,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueWriteImage(const CommandQueue *command_queuePacked,
const Memory *imagePacked,
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,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueCopyImage(const CommandQueue *command_queuePacked,
const Memory *src_imagePacked,
const Memory *dst_imagePacked,
const size_t *src_origin,
const size_t *dst_origin,
const size_t *region,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueCopyImageToBuffer(const CommandQueue *command_queuePacked,
const Memory *src_imagePacked,
const Memory *dst_bufferPacked,
const size_t *src_origin,
const size_t *region,
size_t dst_offset,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueCopyBufferToImage(const CommandQueue *command_queuePacked,
const Memory *src_bufferPacked,
const Memory *dst_imagePacked,
size_t src_offset,
const size_t *dst_origin,
const size_t *region,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
bool ValidateEnqueueMapBuffer(const CommandQueue *command_queuePacked,
const Memory *bufferPacked,
cl_bool blocking_map,
cl_map_flags map_flags,
size_t offset,
size_t size,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked,
cl_int *errcode_ret)
{
return true;
}
bool ValidateEnqueueMapImage(const CommandQueue *command_queuePacked,
const Memory *imagePacked,
cl_bool blocking_map,
cl_map_flags map_flags,
const size_t *origin,
const size_t *region,
const size_t *image_row_pitch,
const size_t *image_slice_pitch,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateEnqueueUnmapMemObject(const CommandQueue *command_queuePacked,
const Memory *memobjPacked,
const void *mapped_ptr,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueNDRangeKernel(const CommandQueue *command_queuePacked,
const Kernel *kernelPacked,
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,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueNativeKernel(const CommandQueue *command_queuePacked,
void(CL_CALLBACK *user_func)(void *),
const void *args,
size_t cb_args,
cl_uint num_mem_objects,
Memory *const *mem_listPacked,
const void **args_mem_loc,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateSetCommandQueueProperty(const CommandQueue *command_queuePacked,
cl_command_queue_properties properties,
cl_bool enable,
const cl_command_queue_properties *old_properties)
{
return CL_SUCCESS;
}
bool ValidateCreateImage2D(const Context *contextPacked,
cl_mem_flags flags,
const cl_image_format *image_format,
size_t image_width,
size_t image_height,
size_t image_row_pitch,
const void *host_ptr,
cl_int *errcode_ret)
{
return true;
}
bool ValidateCreateImage3D(const Context *contextPacked,
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,
const void *host_ptr,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateEnqueueMarker(const CommandQueue *command_queuePacked, Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueWaitForEvents(const CommandQueue *command_queuePacked,
cl_uint num_events,
Event *const *event_listPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueBarrier(const CommandQueue *command_queuePacked)
{
return CL_SUCCESS;
}
cl_int ValidateUnloadCompiler()
{
return CL_SUCCESS;
}
bool ValidateGetExtensionFunctionAddress(const char *func_name)
{
return func_name != nullptr && *func_name != '\0';
}
bool ValidateCreateCommandQueue(const Context *contextPacked,
const Device *devicePacked,
cl_command_queue_properties properties,
cl_int *errcode_ret)
{
return true;
}
bool ValidateCreateSampler(const Context *contextPacked,
cl_bool normalized_coords,
AddressingMode addressing_modePacked,
FilterMode filter_modePacked,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateEnqueueTask(const CommandQueue *command_queuePacked,
const Kernel *kernelPacked,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
// CL 1.1
bool ValidateCreateSubBuffer(const Memory *bufferPacked,
cl_mem_flags flags,
cl_buffer_create_type buffer_create_type,
const void *buffer_create_info,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateSetMemObjectDestructorCallback(const Memory *memobjPacked,
void(CL_CALLBACK *pfn_notify)(cl_mem memobj,
void *user_data),
const void *user_data)
{
return CL_SUCCESS;
}
bool ValidateCreateUserEvent(const Context *contextPacked, cl_int *errcode_ret)
{
return true;
}
cl_int ValidateSetUserEventStatus(const Event *eventPacked, cl_int execution_status)
{
return CL_SUCCESS;
}
cl_int ValidateSetEventCallback(const Event *eventPacked,
cl_int command_exec_callback_type,
void(CL_CALLBACK *pfn_notify)(cl_event event,
cl_int event_command_status,
void *user_data),
const void *user_data)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueReadBufferRect(const CommandQueue *command_queuePacked,
const Memory *bufferPacked,
cl_bool blocking_read,
const size_t *buffer_origin,
const size_t *host_origin,
const size_t *region,
size_t buffer_row_pitch,
size_t buffer_slice_pitch,
size_t host_row_pitch,
size_t host_slice_pitch,
const void *ptr,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueWriteBufferRect(const CommandQueue *command_queuePacked,
const Memory *bufferPacked,
cl_bool blocking_write,
const size_t *buffer_origin,
const size_t *host_origin,
const size_t *region,
size_t buffer_row_pitch,
size_t buffer_slice_pitch,
size_t host_row_pitch,
size_t host_slice_pitch,
const void *ptr,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueCopyBufferRect(const CommandQueue *command_queuePacked,
const Memory *src_bufferPacked,
const Memory *dst_bufferPacked,
const size_t *src_origin,
const size_t *dst_origin,
const size_t *region,
size_t src_row_pitch,
size_t src_slice_pitch,
size_t dst_row_pitch,
size_t dst_slice_pitch,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
// CL 1.2
cl_int ValidateCreateSubDevices(const Device *in_device,
const cl_device_partition_property *properties,
cl_uint num_devices,
Device *const *out_devices,
const cl_uint *num_devices_ret)
{
if (!Device::IsValid(in_device))
{
return CL_INVALID_DEVICE;
}
if (properties == nullptr || (*properties != CL_DEVICE_PARTITION_EQUALLY &&
*properties != CL_DEVICE_PARTITION_BY_COUNTS &&
*properties != CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN))
{
return CL_INVALID_VALUE;
}
return CL_SUCCESS;
}
cl_int ValidateRetainDevice(const Device *device)
{
return Device::IsValid(device) ? CL_SUCCESS : CL_INVALID_DEVICE;
}
cl_int ValidateReleaseDevice(const Device *device)
{
return Device::IsValid(device) ? CL_SUCCESS : CL_INVALID_DEVICE;
}
bool ValidateCreateImage(const Context *contextPacked,
cl_mem_flags flags,
const cl_image_format *image_format,
const cl_image_desc *image_desc,
const void *host_ptr,
cl_int *errcode_ret)
{
return true;
}
bool ValidateCreateProgramWithBuiltInKernels(const Context *contextPacked,
cl_uint num_devices,
Device *const *device_listPacked,
const char *kernel_names,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateCompileProgram(const Program *programPacked,
cl_uint num_devices,
Device *const *device_listPacked,
const char *options,
cl_uint num_input_headers,
Program *const *input_headersPacked,
const char **header_include_names,
void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data),
const void *user_data)
{
return CL_SUCCESS;
}
bool ValidateLinkProgram(const Context *contextPacked,
cl_uint num_devices,
Device *const *device_listPacked,
const char *options,
cl_uint num_input_programs,
Program *const *input_programsPacked,
void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data),
const void *user_data,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateUnloadPlatformCompiler(const Platform *platformPacked)
{
return CL_SUCCESS;
}
cl_int ValidateGetKernelArgInfo(const Kernel *kernelPacked,
cl_uint arg_index,
KernelArgInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueFillBuffer(const CommandQueue *command_queuePacked,
const Memory *bufferPacked,
const void *pattern,
size_t pattern_size,
size_t offset,
size_t size,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueFillImage(const CommandQueue *command_queuePacked,
const Memory *imagePacked,
const void *fill_color,
const size_t *origin,
const size_t *region,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueMigrateMemObjects(const CommandQueue *command_queuePacked,
cl_uint num_mem_objects,
Memory *const *mem_objectsPacked,
cl_mem_migration_flags flags,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueMarkerWithWaitList(const CommandQueue *command_queuePacked,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueBarrierWithWaitList(const CommandQueue *command_queuePacked,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
bool ValidateGetExtensionFunctionAddressForPlatform(const Platform *platformPacked,
const char *func_name)
{
return Platform::IsValid(platformPacked) && func_name != nullptr && *func_name != '\0';
}
// CL 2.0
bool ValidateCreateCommandQueueWithProperties(const Context *contextPacked,
const Device *devicePacked,
const cl_queue_properties *properties,
cl_int *errcode_ret)
{
return true;
}
bool ValidateCreatePipe(const Context *contextPacked,
cl_mem_flags flags,
cl_uint pipe_packet_size,
cl_uint pipe_max_packets,
const cl_pipe_properties *properties,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateGetPipeInfo(const Memory *pipePacked,
PipeInfo param_namePacked,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
bool ValidateSVMAlloc(const Context *contextPacked,
cl_svm_mem_flags flags,
size_t size,
cl_uint alignment)
{
return true;
}
bool ValidateSVMFree(const Context *contextPacked, const void *svm_pointer)
{
return true;
}
bool ValidateCreateSamplerWithProperties(const Context *contextPacked,
const cl_sampler_properties *sampler_properties,
cl_int *errcode_ret)
{
return true;
}
cl_int ValidateSetKernelArgSVMPointer(const Kernel *kernelPacked,
cl_uint arg_index,
const void *arg_value)
{
return CL_SUCCESS;
}
cl_int ValidateSetKernelExecInfo(const Kernel *kernelPacked,
KernelExecInfo param_namePacked,
size_t param_value_size,
const void *param_value)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueSVMFree(const CommandQueue *command_queuePacked,
cl_uint num_svm_pointers,
void *const svm_pointers[],
void(CL_CALLBACK *pfn_free_func)(cl_command_queue queue,
cl_uint num_svm_pointers,
void *svm_pointers[],
void *user_data),
const void *user_data,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueSVMMemcpy(const CommandQueue *command_queuePacked,
cl_bool blocking_copy,
const void *dst_ptr,
const void *src_ptr,
size_t size,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueSVMMemFill(const CommandQueue *command_queuePacked,
const void *svm_ptr,
const void *pattern,
size_t pattern_size,
size_t size,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueSVMMap(const CommandQueue *command_queuePacked,
cl_bool blocking_map,
cl_map_flags flags,
const void *svm_ptr,
size_t size,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueSVMUnmap(const CommandQueue *command_queuePacked,
const void *svm_ptr,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
// CL 2.1
cl_int ValidateSetDefaultDeviceCommandQueue(const Context *contextPacked,
const Device *devicePacked,
const CommandQueue *command_queuePacked)
{
return CL_SUCCESS;
}
cl_int ValidateGetDeviceAndHostTimer(const Device *devicePacked,
const cl_ulong *device_timestamp,
const cl_ulong *host_timestamp)
{
return CL_SUCCESS;
}
cl_int ValidateGetHostTimer(const Device *devicePacked, const cl_ulong *host_timestamp)
{
return CL_SUCCESS;
}
bool ValidateCreateProgramWithIL(const Context *contextPacked,
const void *il,
size_t length,
cl_int *errcode_ret)
{
return true;
}
bool ValidateCloneKernel(const Kernel *source_kernelPacked, cl_int *errcode_ret)
{
return true;
}
cl_int ValidateGetKernelSubGroupInfo(const Kernel *kernelPacked,
const Device *devicePacked,
KernelSubGroupInfo param_namePacked,
size_t input_value_size,
const void *input_value,
size_t param_value_size,
const void *param_value,
const size_t *param_value_size_ret)
{
return CL_SUCCESS;
}
cl_int ValidateEnqueueSVMMigrateMem(const CommandQueue *command_queuePacked,
cl_uint num_svm_pointers,
const void **svm_pointers,
const size_t *sizes,
cl_mem_migration_flags flags,
cl_uint num_events_in_wait_list,
Event *const *event_wait_listPacked,
Event *const *eventPacked)
{
return CL_SUCCESS;
}
// CL 2.2
cl_int ValidateSetProgramReleaseCallback(const Program *programPacked,
void(CL_CALLBACK *pfn_notify)(cl_program program,
void *user_data),
const void *user_data)
{
return CL_SUCCESS;
}
cl_int ValidateSetProgramSpecializationConstant(const Program *programPacked,
cl_uint spec_id,
size_t spec_size,
const void *spec_value)
{
return CL_SUCCESS;
}
// CL 3.0
cl_int ValidateSetContextDestructorCallback(const Context *contextPacked,
void(CL_CALLBACK *pfn_notify)(cl_context context,
void *user_data),
const void *user_data)
{
return CL_SUCCESS;
}
bool ValidateCreateBufferWithProperties(const Context *contextPacked,
const cl_mem_properties *properties,
cl_mem_flags flags,
size_t size,
const void *host_ptr,
cl_int *errcode_ret)
{
return true;
}
bool ValidateCreateImageWithProperties(const Context *contextPacked,
const cl_mem_properties *properties,
cl_mem_flags flags,
const cl_image_format *image_format,
const cl_image_desc *image_desc,
const void *host_ptr,
cl_int *errcode_ret)
{
return true;
}
// cl_khr_icd
cl_int ValidateIcdGetPlatformIDsKHR(cl_uint num_entries,
Platform *const *platformsPacked,
const cl_uint *num_platforms)
{
if ((num_entries == 0u && platformsPacked != nullptr) ||
(platformsPacked == nullptr && num_platforms == nullptr))
{
return CL_INVALID_VALUE;
}
return CL_SUCCESS;
}
} // namespace cl