@@ -1163,6 +1163,7 @@ struct Device::Impl
1163
1163
maxWorkGroupSize_ = getProp<size_t , size_t >(CL_DEVICE_MAX_WORK_GROUP_SIZE);
1164
1164
type_ = getProp<cl_device_type, int >(CL_DEVICE_TYPE);
1165
1165
driverVersion_ = getStrProp (CL_DRIVER_VERSION);
1166
+ addressBits_ = getProp<cl_uint, int >(CL_DEVICE_ADDRESS_BITS);
1166
1167
1167
1168
String deviceVersion_ = getStrProp (CL_DEVICE_VERSION);
1168
1169
parseDeviceVersion (deviceVersion_, deviceVersionMajor_, deviceVersionMinor_);
@@ -1240,6 +1241,7 @@ struct Device::Impl
1240
1241
int maxComputeUnits_;
1241
1242
size_t maxWorkGroupSize_;
1242
1243
int type_;
1244
+ int addressBits_;
1243
1245
int deviceVersionMajor_;
1244
1246
int deviceVersionMinor_;
1245
1247
String driverVersion_;
@@ -1335,7 +1337,7 @@ int Device::type() const
1335
1337
{ return p ? p->type_ : 0 ; }
1336
1338
1337
1339
int Device::addressBits () const
1338
- { return p ? p->getProp <cl_uint, int >(CL_DEVICE_ADDRESS_BITS) : 0 ; }
1340
+ { return p ? p->addressBits_ : 0 ; }
1339
1341
1340
1342
bool Device::available () const
1341
1343
{ return p ? p->getBoolProp (CL_DEVICE_AVAILABLE) : false ; }
@@ -2062,7 +2064,10 @@ struct Context::Impl
2062
2064
{
2063
2065
CV_Assert (!devices.empty ());
2064
2066
const Device& d = devices[0 ];
2065
- prefix = d.vendorName () + " --" + d.name () + " --" + d.driverVersion ();
2067
+ int bits = d.addressBits ();
2068
+ if (bits > 0 && bits != 64 )
2069
+ prefix = cv::format (" %d-bit--" , bits);
2070
+ prefix += d.vendorName () + " --" + d.name () + " --" + d.driverVersion ();
2066
2071
// sanitize chars
2067
2072
for (size_t i = 0 ; i < prefix.size (); i++)
2068
2073
{
@@ -2081,7 +2086,10 @@ struct Context::Impl
2081
2086
if (prefix_base.empty ())
2082
2087
{
2083
2088
const Device& d = devices[0 ];
2084
- prefix_base = d.vendorName () + " --" + d.name () + " --" ;
2089
+ int bits = d.addressBits ();
2090
+ if (bits > 0 && bits != 64 )
2091
+ prefix_base = cv::format (" %d-bit--" , bits);
2092
+ prefix_base += d.vendorName () + " --" + d.name () + " --" ;
2085
2093
// sanitize chars
2086
2094
for (size_t i = 0 ; i < prefix_base.size (); i++)
2087
2095
{
0 commit comments