static void _evas_common_rgba_image_delete(Image_Entry *ie) { RGBA_Image *im = (RGBA_Image *) ie; #ifdef BUILD_PIPE_RENDER evas_common_pipe_free(im); # ifdef EVAS_FRAME_QUEUING LKD(im->cache_entry.ref_fq_add); LKD(im->cache_entry.ref_fq_del); pthread_cond_destroy(&(im->cache_entry.cond_fq_del)); # endif #endif evas_common_rgba_image_scalecache_shutdown(&im->cache_entry); if (ie->info.module) evas_module_unref((Evas_Module *)ie->info.module); /* memset the image to 0x99 because i recently saw a segv where an * seemed to be used BUT its contents were wrong - it looks like it was * overwritten by something from efreet - as there was an execute command * for a command there and some other signs - but to make sure, I am * going to empty this struct out in case this happens again so i know * that something else is overwritign this struct - or not */ // memset(im, 0x99, sizeof(im)); #ifdef EVAS_CSERVE if (ie->data1) evas_cserve_image_free(ie); #endif free(im); }
cl::Kernel SpatialSEIR::OCLProvider::buildProgramForKernel(std::string kernelFile, DeviceContainer* device) { int err = 1; std::vector<cl::Device> devices; devices.push_back(**(device -> device)); std::string log; // LKD is set at compile time, intall directory of OpenCL kernels. std::string LKD(LSS_KERNEL_DIRECTORY); LKD = LKD.append(kernelFile); const char* progName = LKD.c_str(); std::ifstream programFile(progName); std::string programString(std::istreambuf_iterator<char>(programFile), (std::istreambuf_iterator<char>())); cl::Program::Sources source(1, std::make_pair(programString.c_str(), programString.length() + 1)); cl::Program program(**currentContext, source); std::vector<cl::Kernel> kernels; try { err = program.build(devices); log = program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(devices[0]); if (log.find("warning") != std::string::npos) { lssCout << "Warnings generated while building kernel.\n"; lssCout << "CL_PROGRAM_BUILD_LOG: \n" << log << "\n"; } program.createKernels(&kernels); } catch(cl::Error e) { lssCout << "CL Error in: " << e.what()<< "\n"; lssCout << "CL Error: " << e.err()<< "\n"; log = program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(devices[0]); err = e.err(); } if (err != 0) { std::cerr << "Error building OpenCL Kernel, code: " << err << "\n"; std::cerr << "Looking for kernel file here: " << progName << "\n"; std::cerr << "Build Log: \n" << log << "\n"; std::cerr << "Kernel Source: \n" << programString.c_str() << "\n"; throw(-1); } return(kernels[0]); }
void evas_module_unload(Evas_Module *em) { if (!em->loaded) return; if (!em->definition) return ; // for now lets not unload modules - they may still be in use. // em->definition->func.close(em); // em->loaded = 0; #ifdef BUILD_ASYNC_PRELOAD LKD(em->lock); #endif }