diff --git a/modules/v4d/src/detail/framebuffercontext.cpp b/modules/v4d/src/detail/framebuffercontext.cpp index 723f089e9..30945a9a1 100644 --- a/modules/v4d/src/detail/framebuffercontext.cpp +++ b/modules/v4d/src/detail/framebuffercontext.cpp @@ -199,7 +199,7 @@ void FrameBufferContext::doWebGLCopy(FrameBufferContext& dst) { void FrameBufferContext::init() { -#if !defined(OPENCV_V4D_USE_ES3) && !defined(__EMSCRIPTEN__) +#if !defined(__EMSCRIPTEN__) if(parent_ != nullptr) { textureID_ = parent_->textureID_; renderBufferID_ = parent_->renderBufferID_; @@ -527,6 +527,10 @@ void FrameBufferContext::toGLTexture2D(cv::UMat& u, cv::ogl::Texture2D& texture) if (status != CL_SUCCESS) CV_Error_(cv::Error::OpenCLApiCallError, ("OpenCL: clEnqueueCopyBufferToImage failed: %d", status)); + + status = clFinish(q); + if (status != CL_SUCCESS) + CV_Error_(cv::Error::OpenCLApiCallError, ("OpenCL: clFinish failed: %d", status)); #endif } @@ -572,6 +576,10 @@ void FrameBufferContext::fromGLTexture2D(const cv::ogl::Texture2D& texture, cv:: if (status != CL_SUCCESS) CV_Error_(cv::Error::OpenCLApiCallError, ("OpenCL: clEnqueueCopyImageToBuffer failed: %d", status)); + + status = clFinish(q); + if (status != CL_SUCCESS) + CV_Error_(cv::Error::OpenCLApiCallError, ("OpenCL: clFinish failed: %d", status)); #endif } @@ -632,13 +640,6 @@ void FrameBufferContext::execute(std::function fn) { FrameBufferContext::FrameBufferScope fbScope(*this, framebuffer_); fn(framebuffer_); } - - cl_int status = 0; - cl_command_queue q = (cl_command_queue) cv::ocl::Queue::getDefault().ptr(); - - status = clFinish(q); - if (status != CL_SUCCESS) - CV_Error_(cv::Error::OpenCLApiCallError, ("OpenCL: clFinish failed: %d", status)); #endif }); }