|
|
|
@ -1713,16 +1713,16 @@ struct Device::Impl |
|
|
|
|
String deviceVersion_ = getStrProp(CL_DEVICE_VERSION); |
|
|
|
|
parseDeviceVersion(deviceVersion_, deviceVersionMajor_, deviceVersionMinor_); |
|
|
|
|
|
|
|
|
|
vendorName = getStrProp(CL_DEVICE_VENDOR); |
|
|
|
|
if (vendorName == "Advanced Micro Devices, Inc." || |
|
|
|
|
vendorName == "AMD") |
|
|
|
|
vendor_ = AMD; |
|
|
|
|
else if (vendorName == "Intel(R) Corporation") |
|
|
|
|
vendor_ = INTEL; |
|
|
|
|
else if (vendorName == "NVIDIA Corporation") |
|
|
|
|
vendor_ = NVIDIA; |
|
|
|
|
vendorName_ = getStrProp(CL_DEVICE_VENDOR); |
|
|
|
|
if (vendorName_ == "Advanced Micro Devices, Inc." || |
|
|
|
|
vendorName_ == "AMD") |
|
|
|
|
vendorID_ = VENDOR_AMD; |
|
|
|
|
else if (vendorName_ == "Intel(R) Corporation") |
|
|
|
|
vendorID_ = VENDOR_INTEL; |
|
|
|
|
else if (vendorName_ == "NVIDIA Corporation") |
|
|
|
|
vendorID_ = VENDOR_NVIDIA; |
|
|
|
|
else |
|
|
|
|
vendor_ = UNKNOWN_VENDOR; |
|
|
|
|
vendorID_ = UNKNOWN_VENDOR; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<typename _TpCL, typename _TpOut> |
|
|
|
@ -1765,8 +1765,8 @@ struct Device::Impl |
|
|
|
|
int deviceVersionMajor_; |
|
|
|
|
int deviceVersionMinor_; |
|
|
|
|
String driverVersion_; |
|
|
|
|
String vendorName; |
|
|
|
|
int vendor_; |
|
|
|
|
String vendorName_; |
|
|
|
|
int vendorID_; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1826,8 +1826,11 @@ String Device::extensions() const |
|
|
|
|
String Device::version() const |
|
|
|
|
{ return p ? p->version_ : String(); } |
|
|
|
|
|
|
|
|
|
String Device::vendor() const |
|
|
|
|
{ return p ? p->vendorName : String(); } |
|
|
|
|
String Device::vendorName() const |
|
|
|
|
{ return p ? p->vendorName_ : String(); } |
|
|
|
|
|
|
|
|
|
int Device::vendorID() const |
|
|
|
|
{ return p ? p->vendorID_ : 0; } |
|
|
|
|
|
|
|
|
|
String Device::OpenCL_C_Version() const |
|
|
|
|
{ return p ? p->getStrProp(CL_DEVICE_OPENCL_C_VERSION) : String(); } |
|
|
|
@ -1938,21 +1941,6 @@ size_t Device::imageMaxArraySize() const |
|
|
|
|
{ CV_REQUIRE_OPENCL_1_2_ERROR; } |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
bool Device::isAMD() const |
|
|
|
|
{ |
|
|
|
|
return p->vendor_ == AMD; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool Device::isIntel() const |
|
|
|
|
{ |
|
|
|
|
return p->vendor_ == INTEL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool Device::isNvidia() const |
|
|
|
|
{ |
|
|
|
|
return p->vendor_ == NVIDIA; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int Device::maxClockFrequency() const |
|
|
|
|
{ return p ? p->getProp<cl_uint, int>(CL_DEVICE_MAX_CLOCK_FREQUENCY) : 0; } |
|
|
|
|
|
|
|
|
@ -3037,6 +3025,12 @@ struct Program::Impl |
|
|
|
|
for( i = 0; i < n; i++ ) |
|
|
|
|
deviceList[i] = ctx.device(i).ptr(); |
|
|
|
|
|
|
|
|
|
Device device = Device::getDefault(); |
|
|
|
|
if (device.isAMD()) |
|
|
|
|
buildflags += " -D AMD_DEVICE"; |
|
|
|
|
else if (device.isIntel()) |
|
|
|
|
buildflags += " -D INTEL_DEVICE"; |
|
|
|
|
|
|
|
|
|
retval = clBuildProgram(handle, n, |
|
|
|
|
(const cl_device_id*)deviceList, |
|
|
|
|
buildflags.c_str(), 0, 0); |
|
|
|
|