diff --git a/modules/core/src/ocl.cpp b/modules/core/src/ocl.cpp index 8e545f6293..1c8d578fda 100644 --- a/modules/core/src/ocl.cpp +++ b/modules/core/src/ocl.cpp @@ -153,6 +153,17 @@ static bool isRaiseError() } #endif +static void onOpenCLKernelBuildError() +{ + // NB: no need to cache this value + bool value = cv::utils::getConfigurationParameterBool("OPENCV_OPENCL_ABORT_ON_BUILD_ERROR", false); + if (value) + { + fprintf(stderr, "Abort on OpenCL kernel build failure!\n"); + abort(); + } +} + #if CV_OPENCL_TRACE_CHECK static inline void traceOpenCLCheck(cl_int status, const char* message) @@ -4593,6 +4604,12 @@ struct Program::Impl CV_OCL_DBG_CHECK(clReleaseProgram(handle)); handle = NULL; } + if (retval != CL_SUCCESS && + sourceName_ != "dummy" // used for testing of compilation flags + ) + { + onOpenCLKernelBuildError(); + } } #if CV_OPENCL_VALIDATE_BINARY_PROGRAMS if (handle && CV_OPENCL_VALIDATE_BINARY_PROGRAMS_VALUE) diff --git a/samples/_winpack_run_python_sample.cmd b/samples/_winpack_run_python_sample.cmd index 9c791735be..275891c161 100644 --- a/samples/_winpack_run_python_sample.cmd +++ b/samples/_winpack_run_python_sample.cmd @@ -23,6 +23,8 @@ IF %ERRORLEVEL% EQU 0 ( GOTO :PYTHON_FOUND ) +CALL :QUERY_PYTHON 3.10 +IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND CALL :QUERY_PYTHON 3.9 IF %ERRORLEVEL% EQU 0 GOTO :PYTHON_FOUND CALL :QUERY_PYTHON 3.8