# HG changeset patch # User Trass3r # Date 1271248026 -7200 # Node ID 01d502efe0c4dec97109d700922f4582cd6f9cb3 # Parent 5b5ace425b37650b3e1a98749edae21f4193a506 * now using the original filenames * updated main cl.d + cl_ext and cl_gl_ext diff -r 5b5ace425b37 -r 01d502efe0c4 opencl/c/cl.d --- a/opencl/c/cl.d Wed Apr 14 13:52:17 2010 +0200 +++ b/opencl/c/cl.d Wed Apr 14 14:27:06 2010 +0200 @@ -21,9 +21,9 @@ * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. ******************************************************************************/ -// $Revision: 9283 $ on $Date: 2009-10-14 10:18:57 -0700 (Wed, 14 Oct 2009) $ +// $Revision: 10424 $ on $Date: 2010-02-17 14:34:49 -0800 (Wed, 17 Feb 2010) $ -module opencl.c.opencl; +module opencl.c.cl; public import opencl.c.platform; @@ -206,6 +206,8 @@ CL_DEVICE_VERSION = 0x102F, CL_DEVICE_EXTENSIONS = 0x1030, CL_DEVICE_PLATFORM = 0x1031, + // 0x1032 reserved for CL_DEVICE_DOUBLE_FP_CONFIG + // 0x1033 reserved for CL_DEVICE_HALF_FP_CONFIG // cl_device_fp_config - bitfield CL_FP_DENORM = (1 << 0), @@ -237,7 +239,7 @@ CL_CONTEXT_DEVICES = 0x1081, CL_CONTEXT_PROPERTIES = 0x1082, - // cl_context_properties + // cl_context_info + cl_context_properties CL_CONTEXT_PLATFORM = 0x1084, // cl_command_queue_info diff -r 5b5ace425b37 -r 01d502efe0c4 opencl/c/cl_d3d10.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opencl/c/cl_d3d10.d Wed Apr 14 14:27:06 2010 +0200 @@ -0,0 +1,125 @@ +/********************************************************************************** + * Copyright (c) 2008-2009 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ + +// $Revision: 10911 $ on $Date: 2010-04-05 14:41:26 -0700 (Mon, 05 Apr 2010) $ + +module opencl.c.d3d10; + +//import d3d10; +import opencl.c.cl; +import opencl.c.platform; + +extern(C): + +/******************************************************************************/ + +const cl_khr_d3d10_sharing = 1; + +typedef cl_uint cl_d3d10_device_source_khr; +typedef cl_uint cl_d3d10_device_set_khr; + +/******************************************************************************/ + +enum +{ +// Error Codes + CL_INVALID_D3D10_DEVICE_KHR = -1002, + CL_INVALID_D3D10_RESOURCE_KHR = -1003, + CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR = -1004, + CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR = -1005, + +// cl_d3d10_device_source_nv + CL_D3D10_DEVICE_KHR = 0x4010, + CL_D3D10_DXGI_ADAPTER_KHR = 0x4011, + +// cl_d3d10_device_set_nv + CL_PREFERRED_DEVICES_FOR_D3D10_KHR = 0x4012, + CL_ALL_DEVICES_FOR_D3D10_KHR = 0x4013, + +// cl_context_info + CL_CONTEXT_D3D10_DEVICE_KHR = 0x4014, + CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR = 0x402C, + +// cl_mem_info + CL_MEM_D3D10_RESOURCE_KHR = 0x4015, + +// cl_image_info + CL_IMAGE_D3D10_SUBRESOURCE_KHR = 0x4016, + +// cl_command_type + CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR = 0x4017, + CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR = 0x4018, +} + +/******************************************************************************/ + +typedef cl_int (*clGetDeviceIDsFromD3D10KHR_fn)( + cl_platform_id platform, + cl_d3d10_device_source_khr d3d_device_source, + void* d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices +); + +typedef cl_mem (*clCreateFromD3D10BufferKHR_fn)( + cl_context context, + cl_mem_flags flags, + void* resource, // ID3D10Buffer* + cl_int* errcode_ret +); + +typedef cl_mem (*clCreateFromD3D10Texture2DKHR_fn)( + cl_context context, + cl_mem_flags flags, + void* resource, // ID3D10Texture2D* + UINT subresource, + cl_int* errcode_ret +); + +typedef cl_mem (*clCreateFromD3D10Texture3DKHR_fn)( + cl_context context, + cl_mem_flags flags, + void* resource, // ID3D10Texture3D* + UINT subresource, + cl_int* errcode_ret +); + +typedef cl_int (*clEnqueueAcquireD3D10ObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const(cl_mem)* mem_objects, + cl_uint num_events_in_wait_list, + const(cl_event)* event_wait_list, + cl_event* event +); + +typedef cl_int (*clEnqueueReleaseD3D10ObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const(cl_event)* event_wait_list, + cl_event* event +); \ No newline at end of file diff -r 5b5ace425b37 -r 01d502efe0c4 opencl/c/cl_ext.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opencl/c/cl_ext.d Wed Apr 14 14:27:06 2010 +0200 @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2008-2009 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +/* $Revision: 10424 $ on $Date: 2010-02-17 14:34:49 -0800 (Wed, 17 Feb 2010) $ */ + +module opencl.c.ext; + +extern(C): + +// cl_khr_fp64 extension - no extension #define since it has no functions +enum +{ + CL_DEVICE_DOUBLE_FP_CONFIG = 0x1032, + + +// cl_khr_fp16 extension - no extension #define since it has no functions + CL_DEVICE_HALF_FP_CONFIG = 0x1033, +} + +// cl_khr_icd extension +version = cl_khr_icd; + +enum +{ +// cl_platform_info + CL_PLATFORM_ICD_SUFFIX_KHR = 0x0920, + +// Additional Error Codes + CL_PLATFORM_NOT_FOUND_KHR = -1001, +} + +cl_int clIcdGetPlatformIDsKHR( + cl_uint num_entries, + cl_platform_id* platforms, + cl_uint* num_platforms +); \ No newline at end of file diff -r 5b5ace425b37 -r 01d502efe0c4 opencl/c/cl_gl.d --- a/opencl/c/cl_gl.d Wed Apr 14 13:52:17 2010 +0200 +++ b/opencl/c/cl_gl.d Wed Apr 14 14:27:06 2010 +0200 @@ -119,7 +119,7 @@ // cl_khr_gl_sharing extension -const cl_khr_gl_sharing = 1; +version = cl_khr_gl_sharing; typedef cl_uint cl_gl_context_info; diff -r 5b5ace425b37 -r 01d502efe0c4 opencl/c/cl_gl_ext.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opencl/c/cl_gl_ext.d Wed Apr 14 14:27:06 2010 +0200 @@ -0,0 +1,43 @@ +/********************************************************************************** + * Copyright (c) 2008-2009 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ + +/* $Revision: 10424 $ on $Date: 2010-02-17 14:34:49 -0800 (Wed, 17 Feb 2010) $ */ + +/** + * cl_gl_ext.h contains vendor (non-KHR) OpenCL extensions which have OpenGL dependencies. + */ +module opencl.c.gl_ext; + +extern(C): + +/* + * For each extension, follow this template + * /* cl_VEN_extname extension */ +/* #define cl_VEN_extname 1 + * ... define new types, if any + * ... define new tokens, if any + * ... define new APIs, if any + * + * If you need GLtypes here, mirror them with a cl_GLtype, rather than including a GL header + * This allows us to avoid having to decide whether to include GL headers or GLES here. + */ \ No newline at end of file diff -r 5b5ace425b37 -r 01d502efe0c4 opencl/c/cl_platform.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/opencl/c/cl_platform.d Wed Apr 14 14:27:06 2010 +0200 @@ -0,0 +1,145 @@ +/********************************************************************************** + * Copyright (c) 2008-2009 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + **********************************************************************************/ + +// $Revision: 9283 $ on $Date: 2009-10-14 10:18:57 -0700 (Wed, 14 Oct 2009) $ + +module opencl.c.platform; + +/* scalar types */ +alias byte cl_char; +alias ubyte cl_uchar; +alias short cl_short; +alias ushort cl_ushort; +alias int cl_int; +alias uint cl_uint; +alias long cl_long; +alias ulong cl_ulong; + +alias ushort cl_half; +alias float cl_float; +alias double cl_double; + +/* + * Vector types + * + * Note: OpenCL requires that all types be naturally aligned. + * This means that vector types must be naturally aligned. + * For example, a vector of four floats must be aligned to + * a 16 byte boundary (calculated as 4 * the natural 4-byte + * alignment of the float). The alignment qualifiers here + * will only function properly if your compiler supports them + * and if you don't actively work to defeat them. For example, + * in order for a cl_float4 to be 16 byte aligned in a struct, + * the start of the struct must itself be 16-byte aligned. + * + * Maintaining proper alignment is the user's responsibility. + */ + +alias byte[2] cl_char2; +alias byte[4] cl_char4; +alias byte[8] cl_char8; +alias byte[16] cl_char16; +alias ubyte[2] cl_uchar2; +alias ubyte[4] cl_uchar4; +alias ubyte[8] cl_uchar8; +alias ubyte[16] cl_uchar16; + +alias short[2] cl_short2; +alias short[4] cl_short4; +alias short[8] cl_short8; +alias short[16] cl_short16; +alias ushort[2] cl_ushort2; +alias ushort[4] cl_ushort4; +alias ushort[8] cl_ushort8; +alias ushort[16] cl_ushort16; + +alias int[2] cl_int2; +alias int[4] cl_int4; +alias int[8] cl_int8; +alias int[16] cl_int16; +alias uint[2] cl_uint2; +alias uint[4] cl_uint4; +alias uint[8] cl_uint8; +alias uint[16] cl_uint16; + +alias long[2] cl_long2; +alias long[4] cl_long4; +alias long[8] cl_long8; +alias long[16] cl_long16; +alias ulong[2] cl_ulong2; +alias ulong[4] cl_ulong4; +alias ulong[8] cl_ulong8; +alias ulong[16] cl_ulong16; + +alias float[2] cl_float2; +alias float[4] cl_float4; +alias float[8] cl_float8; +alias float[16] cl_float16; + +alias double[2] cl_double2; +alias double[4] cl_double4; +alias double[8] cl_double8; +alias double[16] cl_double16; + +/* There are no vector types for half */ + +enum +{ +CL_CHAR_BIT = 8, +CL_SCHAR_MAX = 127, +CL_SCHAR_MIN = (-127-1), +CL_CHAR_MAX = CL_SCHAR_MAX, +CL_CHAR_MIN = CL_SCHAR_MIN, +CL_UCHAR_MAX = 255, +CL_SHRT_MAX = 32767, +CL_SHRT_MIN = (-32767-1), +CL_USHRT_MAX = 65535, +CL_INT_MAX = 2147483647, +CL_INT_MIN = (-2147483647-1), +CL_UINT_MAX = 0xffffffffU, +CL_LONG_MAX = 0x7FFFFFFFFFFFFFFFL, +CL_LONG_MIN = -0x7FFFFFFFFFFFFFFFL - 1L, +CL_ULONG_MAX = 0xFFFFFFFFFFFFFFFFUL, + +CL_FLT_DIG = 6, +CL_FLT_MANT_DIG = 24, +CL_FLT_MAX_10_EXP = +38, +CL_FLT_MAX_EXP = +128, +CL_FLT_MIN_10_EXP = -37, +CL_FLT_MIN_EXP = -125, +CL_FLT_RADIX = 2, +CL_FLT_MAX = 0x1.fffffep127f, +CL_FLT_MIN = 0x1.0p-126f, +CL_FLT_EPSILON = 0x1.0p-23f, + +CL_DBL_DIG = 15, +CL_DBL_MANT_DIG = 53, +CL_DBL_MAX_10_EXP = +308, +CL_DBL_MAX_EXP = +1024, +CL_DBL_MIN_10_EXP = -307, +CL_DBL_MIN_EXP = -1021, +CL_DBL_RADIX = 2, +CL_DBL_MAX = 0x1.fffffffffffffp1023, +CL_DBL_MIN = 0x1.0p-1022, +CL_DBL_EPSILON = 0x1.0p-52 +} \ No newline at end of file diff -r 5b5ace425b37 -r 01d502efe0c4 opencl/c/d3d10.d --- a/opencl/c/d3d10.d Wed Apr 14 13:52:17 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -/********************************************************************************** - * Copyright (c) 2008-2009 The Khronos Group Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and/or associated documentation files (the - * "Materials"), to deal in the Materials without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Materials, and to - * permit persons to whom the Materials are furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Materials. - * - * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. - **********************************************************************************/ - -// $Revision: 10911 $ on $Date: 2010-04-05 14:41:26 -0700 (Mon, 05 Apr 2010) $ - -module opencl.c.d3d10; - -//import d3d10; -import opencl.c.cl; -import opencl.c.platform; - -extern(C): - -/******************************************************************************/ - -const cl_khr_d3d10_sharing = 1; - -typedef cl_uint cl_d3d10_device_source_khr; -typedef cl_uint cl_d3d10_device_set_khr; - -/******************************************************************************/ - -enum -{ -// Error Codes - CL_INVALID_D3D10_DEVICE_KHR = -1002, - CL_INVALID_D3D10_RESOURCE_KHR = -1003, - CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR = -1004, - CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR = -1005, - -// cl_d3d10_device_source_nv - CL_D3D10_DEVICE_KHR = 0x4010, - CL_D3D10_DXGI_ADAPTER_KHR = 0x4011, - -// cl_d3d10_device_set_nv - CL_PREFERRED_DEVICES_FOR_D3D10_KHR = 0x4012, - CL_ALL_DEVICES_FOR_D3D10_KHR = 0x4013, - -// cl_context_info - CL_CONTEXT_D3D10_DEVICE_KHR = 0x4014, - CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR = 0x402C, - -// cl_mem_info - CL_MEM_D3D10_RESOURCE_KHR = 0x4015, - -// cl_image_info - CL_IMAGE_D3D10_SUBRESOURCE_KHR = 0x4016, - -// cl_command_type - CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR = 0x4017, - CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR = 0x4018, -} - -/******************************************************************************/ - -typedef cl_int (*clGetDeviceIDsFromD3D10KHR_fn)( - cl_platform_id platform, - cl_d3d10_device_source_khr d3d_device_source, - void* d3d_object, - cl_d3d10_device_set_khr d3d_device_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices -); - -typedef cl_mem (*clCreateFromD3D10BufferKHR_fn)( - cl_context context, - cl_mem_flags flags, - void* resource, // ID3D10Buffer* - cl_int* errcode_ret -); - -typedef cl_mem (*clCreateFromD3D10Texture2DKHR_fn)( - cl_context context, - cl_mem_flags flags, - void* resource, // ID3D10Texture2D* - UINT subresource, - cl_int* errcode_ret -); - -typedef cl_mem (*clCreateFromD3D10Texture3DKHR_fn)( - cl_context context, - cl_mem_flags flags, - void* resource, // ID3D10Texture3D* - UINT subresource, - cl_int* errcode_ret -); - -typedef cl_int (*clEnqueueAcquireD3D10ObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const(cl_mem)* mem_objects, - cl_uint num_events_in_wait_list, - const(cl_event)* event_wait_list, - cl_event* event -); - -typedef cl_int (*clEnqueueReleaseD3D10ObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const(cl_event)* event_wait_list, - cl_event* event -); \ No newline at end of file diff -r 5b5ace425b37 -r 01d502efe0c4 opencl/c/platform.d --- a/opencl/c/platform.d Wed Apr 14 13:52:17 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/********************************************************************************** - * Copyright (c) 2008-2009 The Khronos Group Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and/or associated documentation files (the - * "Materials"), to deal in the Materials without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Materials, and to - * permit persons to whom the Materials are furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Materials. - * - * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. - **********************************************************************************/ - -// $Revision: 9283 $ on $Date: 2009-10-14 10:18:57 -0700 (Wed, 14 Oct 2009) $ - -module opencl.c.platform; - -/* scalar types */ -alias byte cl_char; -alias ubyte cl_uchar; -alias short cl_short; -alias ushort cl_ushort; -alias int cl_int; -alias uint cl_uint; -alias long cl_long; -alias ulong cl_ulong; - -alias ushort cl_half; -alias float cl_float; -alias double cl_double; - -/* - * Vector types - * - * Note: OpenCL requires that all types be naturally aligned. - * This means that vector types must be naturally aligned. - * For example, a vector of four floats must be aligned to - * a 16 byte boundary (calculated as 4 * the natural 4-byte - * alignment of the float). The alignment qualifiers here - * will only function properly if your compiler supports them - * and if you don't actively work to defeat them. For example, - * in order for a cl_float4 to be 16 byte aligned in a struct, - * the start of the struct must itself be 16-byte aligned. - * - * Maintaining proper alignment is the user's responsibility. - */ - -alias byte[2] cl_char2; -alias byte[4] cl_char4; -alias byte[8] cl_char8; -alias byte[16] cl_char16; -alias ubyte[2] cl_uchar2; -alias ubyte[4] cl_uchar4; -alias ubyte[8] cl_uchar8; -alias ubyte[16] cl_uchar16; - -alias short[2] cl_short2; -alias short[4] cl_short4; -alias short[8] cl_short8; -alias short[16] cl_short16; -alias ushort[2] cl_ushort2; -alias ushort[4] cl_ushort4; -alias ushort[8] cl_ushort8; -alias ushort[16] cl_ushort16; - -alias int[2] cl_int2; -alias int[4] cl_int4; -alias int[8] cl_int8; -alias int[16] cl_int16; -alias uint[2] cl_uint2; -alias uint[4] cl_uint4; -alias uint[8] cl_uint8; -alias uint[16] cl_uint16; - -alias long[2] cl_long2; -alias long[4] cl_long4; -alias long[8] cl_long8; -alias long[16] cl_long16; -alias ulong[2] cl_ulong2; -alias ulong[4] cl_ulong4; -alias ulong[8] cl_ulong8; -alias ulong[16] cl_ulong16; - -alias float[2] cl_float2; -alias float[4] cl_float4; -alias float[8] cl_float8; -alias float[16] cl_float16; - -alias double[2] cl_double2; -alias double[4] cl_double4; -alias double[8] cl_double8; -alias double[16] cl_double16; - -/* There are no vector types for half */ - -enum -{ -CL_CHAR_BIT = 8, -CL_SCHAR_MAX = 127, -CL_SCHAR_MIN = (-127-1), -CL_CHAR_MAX = CL_SCHAR_MAX, -CL_CHAR_MIN = CL_SCHAR_MIN, -CL_UCHAR_MAX = 255, -CL_SHRT_MAX = 32767, -CL_SHRT_MIN = (-32767-1), -CL_USHRT_MAX = 65535, -CL_INT_MAX = 2147483647, -CL_INT_MIN = (-2147483647-1), -CL_UINT_MAX = 0xffffffffU, -CL_LONG_MAX = 0x7FFFFFFFFFFFFFFFL, -CL_LONG_MIN = -0x7FFFFFFFFFFFFFFFL - 1L, -CL_ULONG_MAX = 0xFFFFFFFFFFFFFFFFUL, - -CL_FLT_DIG = 6, -CL_FLT_MANT_DIG = 24, -CL_FLT_MAX_10_EXP = +38, -CL_FLT_MAX_EXP = +128, -CL_FLT_MIN_10_EXP = -37, -CL_FLT_MIN_EXP = -125, -CL_FLT_RADIX = 2, -CL_FLT_MAX = 0x1.fffffep127f, -CL_FLT_MIN = 0x1.0p-126f, -CL_FLT_EPSILON = 0x1.0p-23f, - -CL_DBL_DIG = 15, -CL_DBL_MANT_DIG = 53, -CL_DBL_MAX_10_EXP = +308, -CL_DBL_MAX_EXP = +1024, -CL_DBL_MIN_10_EXP = -307, -CL_DBL_MIN_EXP = -1021, -CL_DBL_RADIX = 2, -CL_DBL_MAX = 0x1.fffffffffffffp1023, -CL_DBL_MIN = 0x1.0p-1022, -CL_DBL_EPSILON = 0x1.0p-52 -} \ No newline at end of file