mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Replace get_device_version with get_cl_device_version (#733)
They are duplicate functions Fixes #709 Change-Id: I8f7d6b8254047adb9e09ede4951dedc3ec5c1099 Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com>
This commit is contained in:
@@ -1027,26 +1027,6 @@ int build_program_create_kernel_helper(cl_context context,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int get_device_version( cl_device_id id, size_t* major, size_t* minor)
|
|
||||||
{
|
|
||||||
cl_char buffer[ 4098 ];
|
|
||||||
size_t length;
|
|
||||||
|
|
||||||
// Device version should fit the regex "OpenCL [0-9]+\.[0-9]+ *.*"
|
|
||||||
cl_int error = clGetDeviceInfo( id, CL_DEVICE_VERSION, sizeof( buffer ), buffer, &length );
|
|
||||||
test_error( error, "Unable to get device version string" );
|
|
||||||
|
|
||||||
char *p1 = (char *)buffer + strlen( "OpenCL " );
|
|
||||||
char *p2;
|
|
||||||
while( *p1 == ' ' )
|
|
||||||
p1++;
|
|
||||||
*major = strtol( p1, &p2, 10 );
|
|
||||||
error = *p2 != '.';
|
|
||||||
test_error(error, "ERROR: Version number must contain a decimal point!");
|
|
||||||
*minor = strtol( ++p2, NULL, 10 );
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
int get_max_allowed_work_group_size( cl_context context, cl_kernel kernel, size_t *outMaxSize, size_t *outLimits )
|
int get_max_allowed_work_group_size( cl_context context, cl_kernel kernel, size_t *outMaxSize, size_t *outLimits )
|
||||||
{
|
{
|
||||||
cl_device_id *devices;
|
cl_device_id *devices;
|
||||||
|
|||||||
@@ -125,9 +125,6 @@ extern int get_max_common_2D_work_group_size( cl_context context, cl_kernel kern
|
|||||||
/* Helper to obtain the biggest fit work group size for all the devices in a given group and for the given global thread size */
|
/* Helper to obtain the biggest fit work group size for all the devices in a given group and for the given global thread size */
|
||||||
extern int get_max_common_3D_work_group_size( cl_context context, cl_kernel kernel, size_t *globalThreadSize, size_t *outSizes );
|
extern int get_max_common_3D_work_group_size( cl_context context, cl_kernel kernel, size_t *globalThreadSize, size_t *outSizes );
|
||||||
|
|
||||||
/* Helper to get major/minor number for a device */
|
|
||||||
extern int get_device_version( cl_device_id id, size_t* major, size_t* minor);
|
|
||||||
|
|
||||||
/* Helper to obtain the biggest allowed work group size for all the devices in a given group */
|
/* Helper to obtain the biggest allowed work group size for all the devices in a given group */
|
||||||
extern int get_max_allowed_work_group_size( cl_context context, cl_kernel kernel, size_t *outSize, size_t *outLimits );
|
extern int get_max_allowed_work_group_size( cl_context context, cl_kernel kernel, size_t *outSize, size_t *outLimits );
|
||||||
|
|
||||||
|
|||||||
@@ -198,12 +198,9 @@ cl_int create_cl_objects(cl_device_id device_from_harness, const char** ppCodeSt
|
|||||||
cl_uint num_capable_devices = 0;
|
cl_uint num_capable_devices = 0;
|
||||||
for(cl_uint i = 0; i < *num_devices; i++)
|
for(cl_uint i = 0; i < *num_devices; i++)
|
||||||
{
|
{
|
||||||
size_t major = 0;
|
Version version = get_device_cl_version(devices[i]);
|
||||||
size_t minor = 0;
|
|
||||||
error = get_device_version(devices[i], &major, &minor);
|
|
||||||
test_error(error, "get_device_version failed");
|
|
||||||
|
|
||||||
if(device_from_harness != devices[i] && major < 2)
|
if(device_from_harness != devices[i] && version < Version(2,0))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,16 +94,13 @@ bool check_atomic_support( cl_device_id device, bool extended, bool isLocal, Exp
|
|||||||
if( isLocal )
|
if( isLocal )
|
||||||
index += 2;
|
index += 2;
|
||||||
|
|
||||||
size_t major, minor;
|
Version version = get_device_cl_version(device);
|
||||||
|
|
||||||
int error = get_device_version(device, &major, &minor);
|
|
||||||
test_error( error, "get_device_version" );
|
|
||||||
|
|
||||||
switch (dataType)
|
switch (dataType)
|
||||||
{
|
{
|
||||||
case kInt:
|
case kInt:
|
||||||
case kUInt:
|
case kUInt:
|
||||||
if( major * 10 + minor >= 11 )
|
if( version >= Version(1,1) )
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
case kLong:
|
case kLong:
|
||||||
@@ -111,7 +108,7 @@ bool check_atomic_support( cl_device_id device, bool extended, bool isLocal, Exp
|
|||||||
index += 4;
|
index += 4;
|
||||||
break;
|
break;
|
||||||
case kFloat: // this has to stay separate since the float atomics arent in the 1.0 extensions
|
case kFloat: // this has to stay separate since the float atomics arent in the 1.0 extensions
|
||||||
return major * 10 + minor >= 11;
|
return version >= Version(1,1);
|
||||||
default:
|
default:
|
||||||
log_error( "ERROR: Unsupported data type (%d) in check_atomic_support\n", dataType );
|
log_error( "ERROR: Unsupported data type (%d) in check_atomic_support\n", dataType );
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -49,11 +49,9 @@ cl_int get_type_size( cl_context context, cl_command_queue queue, const char *ty
|
|||||||
{
|
{
|
||||||
sizeof_kernel_code[0] = "#pragma OPENCL EXTENSION cl_khr_fp16 : enable\n";
|
sizeof_kernel_code[0] = "#pragma OPENCL EXTENSION cl_khr_fp16 : enable\n";
|
||||||
}
|
}
|
||||||
size_t major = 0;
|
|
||||||
size_t minor = 0;
|
|
||||||
bool deviceLt20 = false;
|
bool deviceLt20 = false;
|
||||||
int error = get_device_version(device, &major, &minor);
|
Version version = get_device_cl_version(device);
|
||||||
if (major < 2) {
|
if (version < Version(2,0)) {
|
||||||
deviceLt20 = true;
|
deviceLt20 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -218,10 +218,9 @@ int test_workitems(cl_device_id device, cl_context context, cl_command_queue que
|
|||||||
check_sub_groups_limits = false;
|
check_sub_groups_limits = false;
|
||||||
if (is_extension_available(device, "cl_khr_subgroups"))
|
if (is_extension_available(device, "cl_khr_subgroups"))
|
||||||
{
|
{
|
||||||
size_t major, minor;
|
Version version = get_device_cl_version(device);
|
||||||
error = get_device_version(device, &major, &minor);
|
|
||||||
RETURN_ON_ERROR(error)
|
RETURN_ON_ERROR(error)
|
||||||
check_sub_groups_limits = (major > 2 || major == 2 && minor >= 1); // clGetKernelSubGroupInfo is from 2.1
|
check_sub_groups_limits = (version >= Version(2,1)); // clGetKernelSubGroupInfo is from 2.1
|
||||||
check_sub_groups = true;
|
check_sub_groups = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -333,12 +333,9 @@ int test_compiler_defines_for_extensions(cl_device_id device, cl_context context
|
|||||||
cl_program program;
|
cl_program program;
|
||||||
cl_kernel kernel;
|
cl_kernel kernel;
|
||||||
|
|
||||||
size_t major = 0;
|
Version version = get_device_cl_version(device);
|
||||||
size_t minor = 0;
|
|
||||||
error = get_device_version(device, &major, &minor);
|
|
||||||
test_error(error, "get_device_version failed");
|
|
||||||
|
|
||||||
error = create_single_kernel_helper(context, &program, &kernel, 1, (const char **)&kernel_code, "test", major < 2 ? "" : "-cl-std=CL2.0");
|
error = create_single_kernel_helper(context, &program, &kernel, 1, (const char **)&kernel_code, "test", version < Version(2,0) ? "" : "-cl-std=CL2.0");
|
||||||
test_error(error, "create_single_kernel_helper failed");
|
test_error(error, "create_single_kernel_helper failed");
|
||||||
|
|
||||||
data = (cl_int*)malloc(sizeof(cl_int)*(num_not_supported_extensions+num_of_supported_extensions));
|
data = (cl_int*)malloc(sizeof(cl_int)*(num_not_supported_extensions+num_of_supported_extensions));
|
||||||
|
|||||||
Reference in New Issue
Block a user