From 9cf8186c18be19465188ba9bd37d45376998d9ef Mon Sep 17 00:00:00 2001 From: foreman Date: Wed, 6 Aug 2014 13:33:39 -0400 Subject: [PATCH] P4 to Git Change 1063463 by bsumner@bsumner-lin-opencl on 2014/08/06 13:24:54 ECR #304775 - eliminate differences with Khronos headers and ensure correct contents for mainline Affected files ... ... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl.h#17 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h#10 edit ... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_platform.h#5 edit [ROCm/clr commit: 3ae8e5dc453b5ac96efbd25742266adf1c6591f7] --- .../opencl/khronos/headers/opencl2.0/CL/cl.h | 3 + .../khronos/headers/opencl2.0/CL/cl_ext.h | 194 +++++++++--------- .../headers/opencl2.0/CL/cl_platform.h | 131 +++++++++--- 3 files changed, 206 insertions(+), 122 deletions(-) diff --git a/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl.h b/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl.h index f09d9f4dc7..363bd7fcd3 100644 --- a/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl.h +++ b/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl.h @@ -110,6 +110,9 @@ typedef struct _cl_image_desc { size_t image_slice_pitch; cl_uint num_mip_levels; cl_uint num_samples; +#ifdef __GNUC__ + __extension__ /* Prevents warnings about anonymous union in -pedantic builds */ +#endif union { cl_mem buffer; cl_mem mem_object; diff --git a/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h b/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h index 640e0d5657..79c2091b4a 100644 --- a/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h +++ b/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h @@ -134,55 +134,21 @@ typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)( * cl_khr_initalize_memory extension * *************************************/ -#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x200E +#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 /************************************** * cl_khr_terminate_context extension * **************************************/ -#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x200F -#define CL_CONTEXT_TERMINATE_KHR 0x2010 +#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 +#define CL_CONTEXT_TERMINATE_KHR 0x2032 #define cl_khr_terminate_context 1 extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2; typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2; -// -/****************************** - * cl_khr_subgroups extension * - ******************************/ - -#define cl_khr_subgroups 1 - -typedef cl_uint cl_kernel_sub_group_info; - -#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE 0x2011 -#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE 0x2012 - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSubGroupInfoKHR(cl_kernel /* kernel */, - cl_device_id /* device */, - cl_kernel_sub_group_info /* param_name */, - size_t /* input_value_size */, - const void * /* input_value */, - size_t /* param_value_size */, - void * /* param_value */, - size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetKernelSubGroupInfoKHR_fn)( - cl_kernel /* kernel */, - cl_device_id /* device */, - cl_kernel_sub_group_info /* param_name */, - size_t /* input_value_size */, - const void * /* input_value */, - size_t /* param_value_size */, - void * /* param_value */, - size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_2; - -// - /* * Extension: cl_khr_spir * @@ -267,8 +233,6 @@ typedef cl_int (CL_CALLBACK * intercept_callback_fn)(cl_event, cl_int *); * cl-gl depth buffer interop extension * ****************************************/ -#define CL_DEPTH 0x10BD -#define CL_DEPTH_STENCIL 0x10BE #define CL_UNORM_INT24 0x10DF #define CL_GL_NUM_SAMPLES 0x2012 // @@ -408,82 +372,116 @@ typedef struct _cl_mem_ion_host_ptr } cl_mem_ion_host_ptr; - // - /************************* - * cl_amd_object_metadata * - **************************/ - #define cl_amd_object_metadata 1 +// +/************************* +* cl_amd_object_metadata * +**************************/ +#define cl_amd_object_metadata 1 - typedef size_t cl_key_amd; +typedef size_t cl_key_amd; - #define CL_INVALID_OBJECT_AMD 0x403A - #define CL_INVALID_KEY_AMD 0x403B - #define CL_PLATFORM_MAX_KEYS_AMD 0x403C +#define CL_INVALID_OBJECT_AMD 0x403A +#define CL_INVALID_KEY_AMD 0x403B +#define CL_PLATFORM_MAX_KEYS_AMD 0x403C - typedef CL_API_ENTRY cl_key_amd (CL_API_CALL * clCreateKeyAMD_fn)( - cl_platform_id /* platform */, - void (CL_CALLBACK * /* destructor */)( void* /* old_value */), - cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1; +typedef CL_API_ENTRY cl_key_amd (CL_API_CALL * clCreateKeyAMD_fn)( + cl_platform_id /* platform */, + void (CL_CALLBACK * /* destructor */)( void* /* old_value */), + cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1; - typedef CL_API_ENTRY cl_int (CL_API_CALL * clObjectGetValueForKeyAMD_fn)( - void * /* object */, - cl_key_amd /* key */, - void ** /* ret_val */) CL_API_SUFFIX__VERSION_1_1; +typedef CL_API_ENTRY cl_int (CL_API_CALL * clObjectGetValueForKeyAMD_fn)( + void * /* object */, + cl_key_amd /* key */, + void ** /* ret_val */) CL_API_SUFFIX__VERSION_1_1; - typedef CL_API_ENTRY cl_int (CL_API_CALL * clObjectSetValueForKeyAMD_fn)( - void * /* object */, - cl_key_amd /* key */, - void * /* value */) CL_API_SUFFIX__VERSION_1_1; +typedef CL_API_ENTRY cl_int (CL_API_CALL * clObjectSetValueForKeyAMD_fn)( + void * /* object */, + cl_key_amd /* key */, + void * /* value */) CL_API_SUFFIX__VERSION_1_1; // + #endif /* CL_VERSION_1_1 */ #ifdef CL_VERSION_1_2 - /******************************** - * cl_amd_bus_addressable_memory * - ********************************/ +/******************************** +* cl_amd_bus_addressable_memory * +********************************/ - /* cl_mem flag - bitfield */ - #define CL_MEM_BUS_ADDRESSABLE_AMD (1<<30) - #define CL_MEM_EXTERNAL_PHYSICAL_AMD (1<<31) +/* cl_mem flag - bitfield */ +#define CL_MEM_BUS_ADDRESSABLE_AMD (1<<30) +#define CL_MEM_EXTERNAL_PHYSICAL_AMD (1<<31) - #define CL_COMMAND_WAIT_SIGNAL_AMD 0x4080 - #define CL_COMMAND_WRITE_SIGNAL_AMD 0x4081 - #define CL_COMMAND_MAKE_BUFFERS_RESIDENT_AMD 0x4082 +#define CL_COMMAND_WAIT_SIGNAL_AMD 0x4080 +#define CL_COMMAND_WRITE_SIGNAL_AMD 0x4081 +#define CL_COMMAND_MAKE_BUFFERS_RESIDENT_AMD 0x4082 - typedef struct _cl_bus_address_amd - { - cl_ulong surface_bus_address; - cl_ulong marker_bus_address; - } cl_bus_address_amd; +typedef struct _cl_bus_address_amd +{ + cl_ulong surface_bus_address; + cl_ulong marker_bus_address; +} cl_bus_address_amd; - typedef CL_API_ENTRY cl_int - (CL_API_CALL * clEnqueueWaitSignalAMD_fn)( cl_command_queue /*command_queue*/, - cl_mem /*mem_object*/, - cl_uint /*value*/, - cl_uint /*num_events*/, - const cl_event * /*event_wait_list*/, - cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clEnqueueWaitSignalAMD_fn)( cl_command_queue /*command_queue*/, + cl_mem /*mem_object*/, + cl_uint /*value*/, + cl_uint /*num_events*/, + const cl_event * /*event_wait_list*/, + cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; - typedef CL_API_ENTRY cl_int - (CL_API_CALL * clEnqueueWriteSignalAMD_fn)( cl_command_queue /*command_queue*/, - cl_mem /*mem_object*/, - cl_uint /*value*/, - cl_ulong /*offset*/, - cl_uint /*num_events*/, - const cl_event * /*event_list*/, - cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clEnqueueWriteSignalAMD_fn)( cl_command_queue /*command_queue*/, + cl_mem /*mem_object*/, + cl_uint /*value*/, + cl_ulong /*offset*/, + cl_uint /*num_events*/, + const cl_event * /*event_list*/, + cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; - typedef CL_API_ENTRY cl_int - (CL_API_CALL * clEnqueueMakeBuffersResidentAMD_fn)( cl_command_queue /*command_queue*/, - cl_uint /*num_mem_objs*/, - cl_mem * /*mem_objects*/, - cl_bool /*blocking_make_resident*/, - cl_bus_address_amd * /*bus_addresses*/, - cl_uint /*num_events*/, - const cl_event * /*event_list*/, - cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clEnqueueMakeBuffersResidentAMD_fn)( cl_command_queue /*command_queue*/, + cl_uint /*num_mem_objs*/, + cl_mem * /*mem_objects*/, + cl_bool /*blocking_make_resident*/, + cl_bus_address_amd * /*bus_addresses*/, + cl_uint /*num_events*/, + const cl_event * /*event_list*/, + cl_event * /*event*/) CL_EXT_SUFFIX__VERSION_1_2; #endif /* CL_VERSION_1_2 */ +#ifdef CL_VERSION_2_0 +/****************************** + * cl_khr_subgroups extension * + ******************************/ +#define cl_khr_subgroups 1 + +typedef cl_uint cl_kernel_sub_group_info; + +/* cl_khr_sub_group_info */ +#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE 0x2033 +#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE 0x2034 + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSubGroupInfoKHR(cl_kernel /* kernel */, + cl_device_id /* device */, + cl_kernel_sub_group_info /* param_name */, + size_t /* input_value_size */, + const void * /* input_value */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_2_0; + +typedef CL_API_ENTRY cl_int + (CL_API_CALL *clGetKernelSubGroupInfoKHR_fn)(cl_kernel /* kernel */, + cl_device_id /* device */, + cl_kernel_sub_group_info /* param_name */, + size_t /* input_value_size */, + const void * /* input_value */, + size_t /* param_value_size */, + void * /* param_value */, + size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_2_0; +#endif /* CL_VERSION_2_0 */ + #ifdef __cplusplus } #endif diff --git a/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_platform.h b/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_platform.h index fd1ece10aa..d813b1ff92 100644 --- a/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_platform.h +++ b/projects/clr/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_platform.h @@ -31,12 +31,6 @@ #include #endif -#if !defined(_WIN32) || !defined(_MSC_VER) -# include -#endif /* !_WIN32 */ -#include -#include - #ifdef __cplusplus extern "C" { #endif @@ -157,21 +151,10 @@ typedef signed __int64 cl_long; typedef unsigned __int64 cl_ulong; typedef unsigned __int16 cl_half; -#else /* !_WIN32 */ -typedef int8_t cl_char; -typedef uint8_t cl_uchar; -typedef int16_t cl_short; -typedef uint16_t cl_ushort; -typedef int32_t cl_int; -typedef uint32_t cl_uint; -typedef int64_t cl_long; -typedef uint64_t cl_ulong; - -typedef uint16_t cl_half; -#endif /* !_WIN32 */ typedef float cl_float; typedef double cl_double; +/* Macro names and corresponding values defined by OpenCL */ #define CL_CHAR_BIT 8 #define CL_SCHAR_MAX 127 #define CL_SCHAR_MIN (-127-1) @@ -195,9 +178,9 @@ typedef double cl_double; #define CL_FLT_MIN_10_EXP -37 #define CL_FLT_MIN_EXP -125 #define CL_FLT_RADIX 2 -#define CL_FLT_MAX FLT_MAX -#define CL_FLT_MIN FLT_MIN -#define CL_FLT_EPSILON FLT_EPSILON +#define CL_FLT_MAX 340282346638528859811704183484516925440.0f +#define CL_FLT_MIN 1.175494350822287507969e-38f +#define CL_FLT_EPSILON 0.00000011920928955078125f #define CL_DBL_DIG 15 #define CL_DBL_MANT_DIG 53 @@ -206,9 +189,9 @@ typedef double cl_double; #define CL_DBL_MIN_10_EXP -307 #define CL_DBL_MIN_EXP -1021 #define CL_DBL_RADIX 2 -#define CL_DBL_MAX DBL_MAX -#define CL_DBL_MIN DBL_MIN -#define CL_DBL_EPSILON DBL_EPSILON +#define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 +#define CL_DBL_MIN 2.225073858507201383090e-308 +#define CL_DBL_EPSILON 2.220446049250313080847e-16 #define CL_M_E 2.718281828459045090796 #define CL_M_LOG2E 1.442695040888963387005 @@ -244,6 +227,106 @@ typedef double cl_double; #define CL_MAXFLOAT CL_FLT_MAX #define CL_INFINITY CL_HUGE_VALF +#else + +#include + +/* scalar types */ +typedef int8_t cl_char; +typedef uint8_t cl_uchar; +typedef int16_t cl_short __attribute__((aligned(2))); +typedef uint16_t cl_ushort __attribute__((aligned(2))); +typedef int32_t cl_int __attribute__((aligned(4))); +typedef uint32_t cl_uint __attribute__((aligned(4))); +typedef int64_t cl_long __attribute__((aligned(8))); +typedef uint64_t cl_ulong __attribute__((aligned(8))); + +typedef uint16_t cl_half __attribute__((aligned(2))); +typedef float cl_float __attribute__((aligned(4))); +typedef double cl_double __attribute__((aligned(8))); + +/* Macro names and corresponding values defined by OpenCL */ +#define CL_CHAR_BIT 8 +#define CL_SCHAR_MAX 127 +#define CL_SCHAR_MIN (-127-1) +#define CL_CHAR_MAX CL_SCHAR_MAX +#define CL_CHAR_MIN CL_SCHAR_MIN +#define CL_UCHAR_MAX 255 +#define CL_SHRT_MAX 32767 +#define CL_SHRT_MIN (-32767-1) +#define CL_USHRT_MAX 65535 +#define CL_INT_MAX 2147483647 +#define CL_INT_MIN (-2147483647-1) +#define CL_UINT_MAX 0xffffffffU +#define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL) +#define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL) +#define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL) + +#define CL_FLT_DIG 6 +#define CL_FLT_MANT_DIG 24 +#define CL_FLT_MAX_10_EXP +38 +#define CL_FLT_MAX_EXP +128 +#define CL_FLT_MIN_10_EXP -37 +#define CL_FLT_MIN_EXP -125 +#define CL_FLT_RADIX 2 +#define CL_FLT_MAX 0x1.fffffep127f +#define CL_FLT_MIN 0x1.0p-126f +#define CL_FLT_EPSILON 0x1.0p-23f + +#define CL_DBL_DIG 15 +#define CL_DBL_MANT_DIG 53 +#define CL_DBL_MAX_10_EXP +308 +#define CL_DBL_MAX_EXP +1024 +#define CL_DBL_MIN_10_EXP -307 +#define CL_DBL_MIN_EXP -1021 +#define CL_DBL_RADIX 2 +#define CL_DBL_MAX 0x1.fffffffffffffp1023 +#define CL_DBL_MIN 0x1.0p-1022 +#define CL_DBL_EPSILON 0x1.0p-52 + +#define CL_M_E 2.718281828459045090796 +#define CL_M_LOG2E 1.442695040888963387005 +#define CL_M_LOG10E 0.434294481903251816668 +#define CL_M_LN2 0.693147180559945286227 +#define CL_M_LN10 2.302585092994045901094 +#define CL_M_PI 3.141592653589793115998 +#define CL_M_PI_2 1.570796326794896557999 +#define CL_M_PI_4 0.785398163397448278999 +#define CL_M_1_PI 0.318309886183790691216 +#define CL_M_2_PI 0.636619772367581382433 +#define CL_M_2_SQRTPI 1.128379167095512558561 +#define CL_M_SQRT2 1.414213562373095145475 +#define CL_M_SQRT1_2 0.707106781186547572737 + +#define CL_M_E_F 2.71828174591064f +#define CL_M_LOG2E_F 1.44269502162933f +#define CL_M_LOG10E_F 0.43429449200630f +#define CL_M_LN2_F 0.69314718246460f +#define CL_M_LN10_F 2.30258512496948f +#define CL_M_PI_F 3.14159274101257f +#define CL_M_PI_2_F 1.57079637050629f +#define CL_M_PI_4_F 0.78539818525314f +#define CL_M_1_PI_F 0.31830987334251f +#define CL_M_2_PI_F 0.63661974668503f +#define CL_M_2_SQRTPI_F 1.12837922573090f +#define CL_M_SQRT2_F 1.41421353816986f +#define CL_M_SQRT1_2_F 0.70710676908493f + +#if defined( __GNUC__ ) + #define CL_HUGE_VALF __builtin_huge_valf() + #define CL_HUGE_VAL __builtin_huge_val() + #define CL_NAN __builtin_nanf( "" ) +#else + #define CL_HUGE_VALF ((cl_float) 1e50) + #define CL_HUGE_VAL ((cl_double) 1e500) + float nanf( const char * ); + #define CL_NAN nanf( "" ) +#endif +#define CL_MAXFLOAT CL_FLT_MAX +#define CL_INFINITY CL_HUGE_VALF + +#endif + #include /* Mirror types to GL types. Mirror types allow us to avoid deciding which 87s to load based on whether we are using GL or GLES here. */