From: dirk Date: Tue, 20 Sep 2016 19:40:52 +0000 (+0200) Subject: Added name of vendor to device information. X-Git-Tag: 7.0.3-1~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9ca8c47283e31ed6753831374853427d1e7294cf;p=imagemagick Added name of vendor to device information. --- diff --git a/MagickCore/opencl-private.h b/MagickCore/opencl-private.h index 1048a9f62..3b014537c 100644 --- a/MagickCore/opencl-private.h +++ b/MagickCore/opencl-private.h @@ -323,6 +323,9 @@ struct _MagickCLDevice ssize_t command_queues_index; + + char + *vendor_name; }; typedef struct _MagickCLEnv diff --git a/MagickCore/opencl.c b/MagickCore/opencl.c index 6c03ecd2d..7c18bf8b8 100644 --- a/MagickCore/opencl.c +++ b/MagickCore/opencl.c @@ -116,6 +116,7 @@ typedef struct char *name, *platform_name, + *vendor_name, *version; cl_uint @@ -168,6 +169,7 @@ static inline MagickBooleanType IsSameOpenCLDevice(MagickCLDevice a, MagickCLDevice b) { if ((LocaleCompare(a->platform_name,b->platform_name) == 0) && + (LocaleCompare(a->vendor_name,b->vendor_name) == 0) && (LocaleCompare(a->name,b->name) == 0) && (LocaleCompare(a->version,b->version) == 0) && (a->max_clock_frequency == b->max_clock_frequency) && @@ -181,6 +183,7 @@ static inline MagickBooleanType IsBenchmarkedOpenCLDevice(MagickCLDevice a, MagickCLDeviceBenchmark *b) { if ((LocaleCompare(a->platform_name,b->platform_name) == 0) && + (LocaleCompare(a->vendor_name,b->vendor_name) == 0) && (LocaleCompare(a->name,b->name) == 0) && (LocaleCompare(a->version,b->version) == 0) && (a->max_clock_frequency == b->max_clock_frequency) && @@ -802,6 +805,8 @@ static void LoadOpenCLDeviceBenchmark(MagickCLEnv clEnv,const char *xml) device_benchmark->platform_name=RelinquishMagickMemory( device_benchmark->platform_name); + device_benchmark->vendor_name=RelinquishMagickMemory( + device_benchmark->vendor_name); device_benchmark->name=RelinquishMagickMemory(device_benchmark->name); device_benchmark->version=RelinquishMagickMemory( device_benchmark->version); @@ -855,6 +860,8 @@ static void LoadOpenCLDeviceBenchmark(MagickCLEnv clEnv,const char *xml) case 'V': case 'v': { + if (LocaleCompare((char *) keyword,"vendor") == 0) + device_benchmark->vendor_name=ConstantString(token); if (LocaleCompare((char *) keyword,"version") == 0) device_benchmark->version=ConstantString(token); break; @@ -1128,9 +1135,10 @@ static void CacheOpenCLBenchmarks(MagickCLEnv clEnv) continue; if (device->score != MAGICKCORE_OPENCL_UNDEFINED_SCORE) - fprintf(cache_file," \n", - device->platform_name,device->name,device->version, + fprintf(cache_file," \n", + device->platform_name,device->vendor_name,device->name,device->version, (int)device->max_clock_frequency,(int)device->max_compute_units, device->score); } @@ -2232,6 +2240,13 @@ static void LoadOpenCLDevices(MagickCLEnv clEnv) openCL_library->clGetPlatformInfo(platforms[i],CL_PLATFORM_NAME,length, device->platform_name,NULL); + openCL_library->clGetPlatformInfo(platforms[i],CL_PLATFORM_VENDOR,0,NULL, + &length); + device->vendor_name=AcquireQuantumMemory(length, + sizeof(*device->vendor_name)); + openCL_library->clGetPlatformInfo(platforms[i],CL_PLATFORM_VENDOR,length, + device->vendor_name,NULL); + openCL_library->clGetDeviceInfo(devices[j],CL_DEVICE_NAME,0,NULL, &length); device->name=AcquireQuantumMemory(length,sizeof(*device->name)); @@ -2804,6 +2819,7 @@ static MagickCLDevice RelinquishMagickCLDevice(MagickCLDevice device) return((MagickCLDevice) NULL); device->platform_name=RelinquishMagickMemory(device->platform_name); + device->vendor_name=RelinquishMagickMemory(device->vendor_name); device->name=RelinquishMagickMemory(device->name); device->version=RelinquishMagickMemory(device->version); if (device->program != (cl_program) NULL)