diff --git a/modules/ocl/src/hog.cpp b/modules/ocl/src/hog.cpp index ae74ed59d..a3514586f 100644 --- a/modules/ocl/src/hog.cpp +++ b/modules/ocl/src/hog.cpp @@ -1580,6 +1580,7 @@ static void openCLExecuteKernel_hog(Context *clCxt , const char **source, string { cl_kernel kernel = openCLGetKernelFromSource(clCxt, source, kernelName); size_t wave_size = queryDeviceInfo(kernel); + openCLSafeCall(clReleaseKernel(kernel)); if (wave_size <= 16) { char build_options[64]; diff --git a/modules/ocl/src/pyrlk.cpp b/modules/ocl/src/pyrlk.cpp index 3b6edf79d..a3e65dde3 100644 --- a/modules/ocl/src/pyrlk.cpp +++ b/modules/ocl/src/pyrlk.cpp @@ -139,8 +139,9 @@ static void lkSparse_run(oclMat &I, oclMat &J, stringstream idxStr; idxStr << kernelName << "_C" << I.oclchannels() << "_D" << I.depth(); cl_kernel kernel = openCLGetKernelFromSource(clCxt, &pyrlk, idxStr.str()); - int wave_size = queryDeviceInfo(kernel); + openCLSafeCall(clReleaseKernel(kernel)); + static char opt[16] = {0}; sprintf(opt, " -D WAVE_SIZE=%d", wave_size);