bool compile(const Context& ctx, String& errmsg)
{
#if OPENCV_HAVE_FILESYSTEM_SUPPORT
+ CV_Assert(ctx.getImpl());
OpenCLBinaryCacheConfigurator& config = OpenCLBinaryCacheConfigurator::getSingletonInstance();
- const std::string base_dir = config.prepareCacheDirectoryForContext(ctx.getImpl()->getPrefixString());
+ const std::string base_dir = config.prepareCacheDirectoryForContext(
+ ctx.getImpl()->getPrefixString(),
+ ctx.getImpl()->getPrefixBase()
+ );
const std::string fname = base_dir.empty() ? std::string() :
std::string(base_dir + src.getImpl()->module_.c_str() + "--" + src.getImpl()->name_ + "_" + src.getImpl()->codeHash_ + ".bin");
const cv::Ptr<utils::fs::FileLock> fileLock = config.cache_lock_; // can be empty