// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #include "libvideostitch/context.hpp" #include "context.hpp" namespace VideoStitch { namespace GPU { namespace Context { Status compileAllKernels(const bool aheadOfTime, Util::Algorithm::ProgressReporter* pReporter) { const auto& potContext = getContext(); FAIL_RETURN(potContext.status()); return potContext.value().compileAllPrograms(pReporter, aheadOfTime); } /** * Compile all the OpenCL programs for the selected device. * @param device The device delected * @param aheadOfTime if true, only compile the programs that are marked as likelyUsed * @param progress if non-null, used as progress indicator. */ Status compileAllKernelsOnSelectedDevice(int device, const bool aheadOfTime, Util::Algorithm::ProgressReporter* pReporter) { FAIL_RETURN(VideoStitch::GPU::setDefaultBackendDeviceVS(device)); FAIL_RETURN(GPU::Context::compileAllKernels(aheadOfTime, pReporter)); return Status::OK(); } Status destroy() { return destroyOpenCLContext(); } Status setDefaultBackendDeviceAndCheck(const int vsDeviceID) { FAIL_RETURN(setDefaultBackendDeviceVS(vsDeviceID)); return getContext().status(); } } // namespace Context } // namespace GPU } // namespace VideoStitch