Commit 69cd9cc1 authored by Alexander Alekhin's avatar Alexander Alekhin

Merge pull request #10582 from mshabunin:fix-ocl-concurrent-cache-name

parents c6d9ce8f 594a9331
...@@ -2072,19 +2072,23 @@ struct Context::Impl ...@@ -2072,19 +2072,23 @@ struct Context::Impl
{ {
if (prefix.empty()) if (prefix.empty())
{ {
CV_Assert(!devices.empty()); cv::AutoLock lock(program_cache_mutex);
const Device& d = devices[0]; if (prefix.empty())
int bits = d.addressBits();
if (bits > 0 && bits != 64)
prefix = cv::format("%d-bit--", bits);
prefix += d.vendorName() + "--" + d.name() + "--" + d.driverVersion();
// sanitize chars
for (size_t i = 0; i < prefix.size(); i++)
{ {
char c = prefix[i]; CV_Assert(!devices.empty());
if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == '-')) const Device& d = devices[0];
int bits = d.addressBits();
if (bits > 0 && bits != 64)
prefix = cv::format("%d-bit--", bits);
prefix += d.vendorName() + "--" + d.name() + "--" + d.driverVersion();
// sanitize chars
for (size_t i = 0; i < prefix.size(); i++)
{ {
prefix[i] = '_'; char c = prefix[i];
if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == '-'))
{
prefix[i] = '_';
}
} }
} }
} }
...@@ -2095,18 +2099,22 @@ struct Context::Impl ...@@ -2095,18 +2099,22 @@ struct Context::Impl
{ {
if (prefix_base.empty()) if (prefix_base.empty())
{ {
const Device& d = devices[0]; cv::AutoLock lock(program_cache_mutex);
int bits = d.addressBits(); if (prefix_base.empty())
if (bits > 0 && bits != 64)
prefix_base = cv::format("%d-bit--", bits);
prefix_base += d.vendorName() + "--" + d.name() + "--";
// sanitize chars
for (size_t i = 0; i < prefix_base.size(); i++)
{ {
char c = prefix_base[i]; const Device& d = devices[0];
if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == '-')) int bits = d.addressBits();
if (bits > 0 && bits != 64)
prefix_base = cv::format("%d-bit--", bits);
prefix_base += d.vendorName() + "--" + d.name() + "--";
// sanitize chars
for (size_t i = 0; i < prefix_base.size(); i++)
{ {
prefix_base[i] = '_'; char c = prefix_base[i];
if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == '-'))
{
prefix_base[i] = '_';
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment