webcl
Version:
OpenCL bindings for Node.js
405 lines (382 loc) • 15.9 kB
JavaScript
var cl = require("_webcl");
var webcl = new cl.WebCL();
exports.WebCL = webcl;
exports.WebCLCommandQueue = cl.WebCLCommandQueue;
exports.WebCLContext = cl.WebCLContext;
exports.WebCLDevice= cl.WebCLDevice;
exports.WebCLEvent = cl.WebCLEvent;
exports.WebCLKernel = cl.WebCLKernel;
exports.WebCLMemoryObject = cl.WebCLMemoryObject;
exports.WebCLPlatform = cl.WebCLPlatform;
exports.WebCLProgram = cl.WebCLProgram;
exports.WebCLSampler = cl.WebCLSampler;
exports.getPlatformIDs = function() {
return webcl.getPlatformIDs();
};
exports.createContext = function(a,b) {
return webcl.createContext(a,b);
};
exports.createContextFromType = function(a,b) {
return webcl.createContextFromType(a,b);
};
exports.waitForEvents = function() {
return webcl.waitForEvents(arguments);
};
exports.unloadCompiler = function() {
return webcl.unloadCompiler();
};
exports.CL_SUCCESS = 0;
exports.CL_DEVICE_NOT_FOUND = -1;
exports.CL_DEVICE_NOT_AVAILABLE = -2;
exports.CL_COMPILER_NOT_AVAILABLE = -3;
exports.CL_MEM_OBJECT_ALLOCATION_FAILURE = -4;
exports.CL_OUT_OF_RESOURCES = -5;
exports.CL_OUT_OF_HOST_MEMORY = -6;
exports.CL_PROFILING_INFO_NOT_AVAILABLE = -7;
exports.CL_MEM_COPY_OVERLAP = -8;
exports.CL_IMAGE_FORMAT_MISMATCH = -9;
exports.CL_IMAGE_FORMAT_NOT_SUPPORTED = -10;
exports.CL_BUILD_PROGRAM_FAILURE = -11;
exports.CL_MAP_FAILURE = -12;
exports.CL_MISALIGNED_SUB_BUFFER_OFFSET = -13;
exports.CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST = -14;
exports.CL_INVALID_VALUE = -30;
exports.CL_INVALID_DEVICE_TYPE = -31;
exports.CL_INVALID_PLATFORM = -32;
exports.CL_INVALID_DEVICE = -33;
exports.CL_INVALID_CONTEXT = -34;
exports.CL_INVALID_QUEUE_PROPERTIES = -35;
exports.CL_INVALID_COMMAND_QUEUE = -36;
exports.CL_INVALID_HOST_PTR = -37;
exports.CL_INVALID_MEM_OBJECT = -38;
exports.CL_INVALID_IMAGE_FORMAT_DESCRIPTOR = -39;
exports.CL_INVALID_IMAGE_SIZE = -40;
exports.CL_INVALID_SAMPLER = -41;
exports.CL_INVALID_BINARY = -42;
exports.CL_INVALID_BUILD_OPTIONS = -43;
exports.CL_INVALID_PROGRAM = -44;
exports.CL_INVALID_PROGRAM_EXECUTABLE = -45;
exports.CL_INVALID_KERNEL_NAME = -46;
exports.CL_INVALID_KERNEL_DEFINITION = -47;
exports.CL_INVALID_KERNEL = -48;
exports.CL_INVALID_ARG_INDEX = -49;
exports.CL_INVALID_ARG_VALUE = -50;
exports.CL_INVALID_ARG_SIZE = -51;
exports.CL_INVALID_KERNEL_ARGS = -52;
exports.CL_INVALID_WORK_DIMENSION = -53;
exports.CL_INVALID_WORK_GROUP_SIZE = -54;
exports.CL_INVALID_WORK_ITEM_SIZE = -55;
exports.CL_INVALID_GLOBAL_OFFSET = -56;
exports.CL_INVALID_EVENT_WAIT_LIST = -57;
exports.CL_INVALID_EVENT = -58;
exports.CL_INVALID_OPERATION = -59;
exports.CL_INVALID_GL_OBJECT = -60;
exports.CL_INVALID_BUFFER_SIZE = -61;
exports.CL_INVALID_MIP_LEVEL = -62;
exports.CL_INVALID_GLOBAL_WORK_SIZE = -63;
exports.CL_INVALID_PROPERTY = -64;
exports.CL_VERSION_1_0 = 1;
exports.CL_VERSION_1_1 = 1;
exports.CL_FALSE = 0;
exports.CL_TRUE = 1;
exports.CL_PLATFORM_PROFILE = 0x0900;
exports.CL_PLATFORM_VERSION = 0x0901;
exports.CL_PLATFORM_NAME = 0x0902;
exports.CL_PLATFORM_VENDOR = 0x0903;
exports.CL_PLATFORM_EXTENSIONS = 0x0904;
exports.CL_DEVICE_TYPE_DEFAULT = (1<<0);
exports.CL_DEVICE_TYPE_CPU = (1<<1);
exports.CL_DEVICE_TYPE_GPU = (1<<2);
exports.CL_DEVICE_TYPE_ACCELERATOR = (1<<3);
exports.CL_DEVICE_TYPE_ALL = 0xFFFFFFFF;
exports.CL_DEVICE_TYPE = 0x1000;
exports.CL_DEVICE_VENDOR_ID = 0x1001;
exports.CL_DEVICE_MAX_COMPUTE_UNITS = 0x1002;
exports.CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = 0x1003;
exports.CL_DEVICE_MAX_WORK_GROUP_SIZE = 0x1004;
exports.CL_DEVICE_MAX_WORK_ITEM_SIZES = 0x1005;
exports.CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR = 0x1006;
exports.CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT = 0x1007;
exports.CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT = 0x1008;
exports.CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG = 0x1009;
exports.CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT = 0x100A;
exports.CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE = 0x100B;
exports.CL_DEVICE_MAX_CLOCK_FREQUENCY = 0x100C;
exports.CL_DEVICE_ADDRESS_BITS = 0x100D;
exports.CL_DEVICE_MAX_READ_IMAGE_ARGS = 0x100E;
exports.CL_DEVICE_MAX_WRITE_IMAGE_ARGS = 0x100F;
exports.CL_DEVICE_MAX_MEM_ALLOC_SIZE = 0x1010;
exports.CL_DEVICE_IMAGE2D_MAX_WIDTH = 0x1011;
exports.CL_DEVICE_IMAGE2D_MAX_HEIGHT = 0x1012;
exports.CL_DEVICE_IMAGE3D_MAX_WIDTH = 0x1013;
exports.CL_DEVICE_IMAGE3D_MAX_HEIGHT = 0x1014;
exports.CL_DEVICE_IMAGE3D_MAX_DEPTH = 0x1015;
exports.CL_DEVICE_IMAGE_SUPPORT = 0x1016;
exports.CL_DEVICE_MAX_PARAMETER_SIZE = 0x1017;
exports.CL_DEVICE_MAX_SAMPLERS = 0x1018;
exports.CL_DEVICE_MEM_BASE_ADDR_ALIGN = 0x1019;
exports.CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE = 0x101A;
exports.CL_DEVICE_SINGLE_FP_CONFIG = 0x101B;
exports.CL_DEVICE_GLOBAL_MEM_CACHE_TYPE = 0x101C;
exports.CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE = 0x101D;
exports.CL_DEVICE_GLOBAL_MEM_CACHE_SIZE = 0x101E;
exports.CL_DEVICE_GLOBAL_MEM_SIZE = 0x101F;
exports.CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE = 0x1020;
exports.CL_DEVICE_MAX_CONSTANT_ARGS = 0x1021;
exports.CL_DEVICE_LOCAL_MEM_TYPE = 0x1022;
exports.CL_DEVICE_LOCAL_MEM_SIZE = 0x1023;
exports.CL_DEVICE_ERROR_CORRECTION_SUPPORT = 0x1024;
exports.CL_DEVICE_PROFILING_TIMER_RESOLUTION = 0x1025;
exports.CL_DEVICE_ENDIAN_LITTLE = 0x1026;
exports.CL_DEVICE_AVAILABLE = 0x1027;
exports.CL_DEVICE_COMPILER_AVAILABLE = 0x1028;
exports.CL_DEVICE_EXECUTION_CAPABILITIES = 0x1029;
exports.CL_DEVICE_QUEUE_PROPERTIES = 0x102A;
exports.CL_DEVICE_NAME = 0x102B;
exports.CL_DEVICE_VENDOR = 0x102C;
exports.CL_DRIVER_VERSION = 0x102D;
exports.CL_DEVICE_PROFILE = 0x102E;
exports.CL_DEVICE_VERSION = 0x102F;
exports.CL_DEVICE_EXTENSIONS = 0x1030;
exports.CL_DEVICE_PLATFORM = 0x1031;
exports.CL_DEVICE_DOUBLE_FP_CONFIG = 0x1032;
exports.CL_DEVICE_HALF_FP_CONFIG = 0x1033;
exports.CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF = 0x1034;
exports.CL_DEVICE_HOST_UNIFIED_MEMORY = 0x1035;
exports.CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR = 0x1036;
exports.CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT = 0x1037;
exports.CL_DEVICE_NATIVE_VECTOR_WIDTH_INT = 0x1038;
exports.CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG = 0x1039;
exports.CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT = 0x103A;
exports.CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE = 0x103B;
exports.CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF = 0x103C;
exports.CL_DEVICE_OPENCL_C_VERSION = 0x103D;
exports.CL_FP_DENORM = (1<<0);
exports.CL_FP_INF_NAN = (1<<1);
exports.CL_FP_ROUND_TO_NEAREST = (1<<2);
exports.CL_FP_ROUND_TO_ZERO = (1<<3);
exports.CL_FP_ROUND_TO_INF = (1<<4);
exports.CL_FP_FMA = (1<<5);
exports.CL_FP_SOFT_FLOAT = (1<<6);
exports.CL_NONE = 0x0;
exports.CL_READ_ONLY_CACHE = 0x1;
exports.CL_READ_WRITE_CACHE = 0x2;
exports.CL_LOCAL = 0x1;
exports.CL_GLOBAL = 0x2;
exports.CL_EXEC_KERNEL = (1<<0);
exports.CL_EXEC_NATIVE_KERNEL = (1<<1);
exports.CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE = (1<<0);
exports.CL_QUEUE_PROFILING_ENABLE = (1<<1);
exports.CL_CONTEXT_REFERENCE_COUNT = 0x1080;
exports.CL_CONTEXT_DEVICES = 0x1081;
exports.CL_CONTEXT_PROPERTIES = 0x1082;
exports.CL_CONTEXT_NUM_DEVICES = 0x1083;
exports.CL_CONTEXT_PLATFORM = 0x1084;
exports.CL_QUEUE_CONTEXT = 0x1090;
exports.CL_QUEUE_DEVICE = 0x1091;
exports.CL_QUEUE_REFERENCE_COUNT = 0x1092;
exports.CL_QUEUE_PROPERTIES = 0x1093;
exports.CL_MEM_READ_WRITE = (1<<0);
exports.CL_MEM_WRITE_ONLY = (1<<1);
exports.CL_MEM_READ_ONLY = (1<<2);
exports.CL_MEM_USE_HOST_PTR = (1<<3);
exports.CL_MEM_ALLOC_HOST_PTR = (1<<4);
exports.CL_MEM_COPY_HOST_PTR = (1<<5);
exports.CL_R = 0x10B0;
exports.CL_A = 0x10B1;
exports.CL_RG = 0x10B2;
exports.CL_RA = 0x10B3;
exports.CL_RGB = 0x10B4;
exports.CL_RGBA = 0x10B5;
exports.CL_BGRA = 0x10B6;
exports.CL_ARGB = 0x10B7;
exports.CL_INTENSITY = 0x10B8;
exports.CL_LUMINANCE = 0x10B9;
exports.CL_Rx = 0x10BA;
exports.CL_RGx = 0x10BB;
exports.CL_RGBx = 0x10BC;
exports.CL_SNORM_INT8 = 0x10D0;
exports.CL_SNORM_INT16 = 0x10D1;
exports.CL_UNORM_INT8 = 0x10D2;
exports.CL_UNORM_INT16 = 0x10D3;
exports.CL_UNORM_SHORT_565 = 0x10D4;
exports.CL_UNORM_SHORT_555 = 0x10D5;
exports.CL_UNORM_INT_101010 = 0x10D6;
exports.CL_SIGNED_INT8 = 0x10D7;
exports.CL_SIGNED_INT16 = 0x10D8;
exports.CL_SIGNED_INT32 = 0x10D9;
exports.CL_UNSIGNED_INT8 = 0x10DA;
exports.CL_UNSIGNED_INT16 = 0x10DB;
exports.CL_UNSIGNED_INT32 = 0x10DC;
exports.CL_HALF_FLOAT = 0x10DD;
exports.CL_FLOAT = 0x10DE;
exports.CL_MEM_OBJECT_BUFFER = 0x10F0;
exports.CL_MEM_OBJECT_IMAGE2D = 0x10F1;
exports.CL_MEM_OBJECT_IMAGE3D = 0x10F2;
exports.CL_MEM_TYPE = 0x1100;
exports.CL_MEM_FLAGS = 0x1101;
exports.CL_MEM_SIZE = 0x1102;
exports.CL_MEM_HOST_PTR = 0x1103;
exports.CL_MEM_MAP_COUNT = 0x1104;
exports.CL_MEM_REFERENCE_COUNT = 0x1105;
exports.CL_MEM_CONTEXT = 0x1106;
exports.CL_MEM_ASSOCIATED_MEMOBJECT = 0x1107;
exports.CL_MEM_OFFSET = 0x1108;
exports.CL_IMAGE_FORMAT = 0x1110;
exports.CL_IMAGE_ELEMENT_SIZE = 0x1111;
exports.CL_IMAGE_ROW_PITCH = 0x1112;
exports.CL_IMAGE_SLICE_PITCH = 0x1113;
exports.CL_IMAGE_WIDTH = 0x1114;
exports.CL_IMAGE_HEIGHT = 0x1115;
exports.CL_IMAGE_DEPTH = 0x1116;
exports.CL_ADDRESS_NONE = 0x1130;
exports.CL_ADDRESS_CLAMP_TO_EDGE = 0x1131;
exports.CL_ADDRESS_CLAMP = 0x1132;
exports.CL_ADDRESS_REPEAT = 0x1133;
exports.CL_ADDRESS_MIRRORED_REPEAT = 0x1134;
exports.CL_FILTER_NEAREST = 0x1140;
exports.CL_FILTER_LINEAR = 0x1141;
exports.CL_SAMPLER_REFERENCE_COUNT = 0x1150;
exports.CL_SAMPLER_CONTEXT = 0x1151;
exports.CL_SAMPLER_NORMALIZED_COORDS = 0x1152;
exports.CL_SAMPLER_ADDRESSING_MODE = 0x1153;
exports.CL_SAMPLER_FILTER_MODE = 0x1154;
exports.CL_MAP_READ = (1<<0);
exports.CL_MAP_WRITE = (1<<1);
exports.CL_PROGRAM_REFERENCE_COUNT = 0x1160;
exports.CL_PROGRAM_CONTEXT = 0x1161;
exports.CL_PROGRAM_NUM_DEVICES = 0x1162;
exports.CL_PROGRAM_DEVICES = 0x1163;
exports.CL_PROGRAM_SOURCE = 0x1164;
exports.CL_PROGRAM_BINARY_SIZES = 0x1165;
exports.CL_PROGRAM_BINARIES = 0x1166;
exports.CL_PROGRAM_BUILD_STATUS = 0x1181;
exports.CL_PROGRAM_BUILD_OPTIONS = 0x1182;
exports.CL_PROGRAM_BUILD_LOG = 0x1183;
exports.CL_BUILD_SUCCESS = 0;
exports.CL_BUILD_NONE = -1;
exports.CL_BUILD_ERROR = -2;
exports.CL_BUILD_IN_PROGRESS = -3;
exports.CL_KERNEL_FUNCTION_NAME = 0x1190;
exports.CL_KERNEL_NUM_ARGS = 0x1191;
exports.CL_KERNEL_REFERENCE_COUNT = 0x1192;
exports.CL_KERNEL_CONTEXT = 0x1193;
exports.CL_KERNEL_PROGRAM = 0x1194;
exports.CL_KERNEL_WORK_GROUP_SIZE = 0x11B0;
exports.CL_KERNEL_COMPILE_WORK_GROUP_SIZE = 0x11B1;
exports.CL_KERNEL_LOCAL_MEM_SIZE = 0x11B2;
exports.CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE = 0x11B3;
exports.CL_KERNEL_PRIVATE_MEM_SIZE = 0x11B4;
exports.CL_EVENT_COMMAND_QUEUE = 0x11D0;
exports.CL_EVENT_COMMAND_TYPE = 0x11D1;
exports.CL_EVENT_REFERENCE_COUNT = 0x11D2;
exports.CL_EVENT_COMMAND_EXECUTION_STATUS = 0x11D3;
exports.CL_EVENT_CONTEXT = 0x11D4;
exports.CL_COMMAND_NDRANGE_KERNEL = 0x11F0;
exports.CL_COMMAND_TASK = 0x11F1;
exports.CL_COMMAND_NATIVE_KERNEL = 0x11F2;
exports.CL_COMMAND_READ_BUFFER = 0x11F3;
exports.CL_COMMAND_WRITE_BUFFER = 0x11F4;
exports.CL_COMMAND_COPY_BUFFER = 0x11F5;
exports.CL_COMMAND_READ_IMAGE = 0x11F6;
exports.CL_COMMAND_WRITE_IMAGE = 0x11F7;
exports.CL_COMMAND_COPY_IMAGE = 0x11F8;
exports.CL_COMMAND_COPY_IMAGE_TO_BUFFER = 0x11F9;
exports.CL_COMMAND_COPY_BUFFER_TO_IMAGE = 0x11FA;
exports.CL_COMMAND_MAP_BUFFER = 0x11FB;
exports.CL_COMMAND_MAP_IMAGE = 0x11FC;
exports.CL_COMMAND_UNMAP_MEM_OBJECT = 0x11FD;
exports.CL_COMMAND_MARKER = 0x11FE;
exports.CL_COMMAND_ACQUIRE_GL_OBJECTS = 0x11FF;
exports.CL_COMMAND_RELEASE_GL_OBJECTS = 0x1200;
exports.CL_COMMAND_READ_BUFFER_RECT = 0x1201;
exports.CL_COMMAND_WRITE_BUFFER_RECT = 0x1202;
exports.CL_COMMAND_COPY_BUFFER_RECT = 0x1203;
exports.CL_COMMAND_USER = 0x1204;
exports.CL_COMPLETE = 0x0;
exports.CL_RUNNING = 0x1;
exports.CL_SUBMITTED = 0x2;
exports.CL_QUEUED = 0x3;
exports.CL_BUFFER_CREATE_TYPE_REGION = 0x1220;
exports.CL_PROFILING_COMMAND_QUEUED = 0x1280;
exports.CL_PROFILING_COMMAND_SUBMIT = 0x1281;
exports.CL_PROFILING_COMMAND_START = 0x1282;
exports.CL_PROFILING_COMMAND_END = 0x1283;
exports.types = {
};
var cnt = 0;
exports.types.UNKNOWN = cnt++;
exports.types.BYTE = cnt++;
exports.types.CHAR = cnt++;
exports.types.UCHAR = cnt++;
exports.types.SHORT = cnt++;
exports.types.USHORT = cnt++;
// Basic types
exports.types.INT = cnt++; // cl_int
exports.types.UINT = cnt++; // cl_uint
exports.types.LONG = cnt++; // cl_long
exports.types.ULONG = cnt++; // cl_ulong
exports.types.BOOL = cnt++; // cl_bool = cl_uint //10
exports.types.SIZE_T = cnt++; // size_t
exports.types.HALF = cnt++; // cl_half
exports.types.FLOAT = cnt++; // cl_float
exports.types.DOUBLE = cnt++; // cl_double
// String types
exports.types.STRING = cnt++; // char*
// Class types
exports.types.PLATFORM = cnt++; // cl_platform_id
exports.types.DEVICE = cnt++; // cl_device_id
exports.types.CONTEXT = cnt++; // cl_context
exports.types.COMMAND_QUEUE = cnt++; // cl_command_queue
exports.types.MEMORY_OBJECT = cnt++; // cl_mem //20
exports.types.MEM = exports.types.MEMORY_OBJECT;
exports.types.PROGRAM = cnt++; // cl_program
exports.types.KERNEL = cnt++; // cl_kernel
exports.types.EVENT = cnt++; // cl_event
exports.types.SAMPLER = cnt++; // cl_sampler
exports.types.IMAGE_FORMAT = cnt++;
// Special types
exports.types.ADRESSING_MODE = cnt++; // cl_addressing_mode
exports.types.BUILD_STATUS = cnt++; // cl_build_status
exports.types.CHANNEL_ORDER = cnt++; // cl_channel_order
exports.types.CHANNEL_TYPE = cnt++; // cl_channel_type
exports.types.COMMAND_QUEUE_PROPERTIES = cnt++; // cl_command_queue_properties //30
exports.types.COMMAND_TYPE = cnt++; // cl_command_type
exports.types.CONTEXT_PROPERTIES = cnt++; // cl_context_properties
exports.types.DEVICE_EXEC_CAPABILITIES = cnt++; // cl_device_exec_capabilities
exports.types.DEVICE_FP_CONFIG = cnt++; // cl_device_fp_config
exports.types.DEVICE_LOCAL_MEM_TYPE = cnt++; // cl_device_local_mem_type
exports.types.DEVICE_MEM_CACHE_TYPE = cnt++; // cl_device_mem_cache_type
exports.types.DEVICE_TYPE = cnt++; // cl_device_type
exports.types.FILTER_MODE = cnt++; // cl_filter_mode
exports.types.GL_OBJECT_TYPE = cnt++; // cl_gl_object_type
exports.types.MAP_FLAGS = cnt++; // cl_map_flags //40
exports.types.MEM_FENCE_FLAGS = cnt++; // cl_mem_fence_flags
exports.types.MEM_FLAGS = cnt++; // cl_mem_flags
exports.types.MEM_OBJECT_TYPE = cnt++; // cl_mem_object_type
// Vector types
exports.types.BYTE_V = cnt++;
exports.types.CHAR_V = cnt++;
exports.types.UCHAR_V = cnt++;
exports.types.SHORT_V = cnt++;
exports.types.USHORT_V = cnt++;
exports.types.INT_V = cnt++; // cl_int*
exports.types.UINT_V = cnt++; // cl_uint* //50
exports.types.LONG_V = cnt++; // cl_long*
exports.types.ULONG_V = cnt++; // cl_ulong*
exports.types.BOOL_V = cnt++; // cl_bool*
exports.types.SIZE_T_V = cnt++; // size_t*
exports.types.HALF_V = cnt++;
exports.types.FLOAT_V = cnt++;
exports.types.DOUBLE_V = cnt++;
exports.types.STRING_V = cnt++; // char**
exports.types.PLATFORM_V = cnt++;
exports.types.DEVICE_V = cnt++; //60
exports.types.CONTEXT_V = cnt++;
exports.types.COMMAND_QUEUE_V = cnt++;
exports.types.MEMORY_OBJECT_V = cnt++;
exports.types.PROGRAM_V = cnt++;
exports.types.KERNEL_V = cnt++;
exports.types.EVENT_V = cnt++;
exports.types.SAMPLER_V = cnt++;
exports.types.LAST = cnt;