ocl: restore clFinish() in unmap() for AMD devices
authorAlexander Alekhin <alexander.alekhin@itseez.com>
Fri, 24 Oct 2014 10:29:38 +0000 (14:29 +0400)
committerAlexander Alekhin <alexander.alekhin@itseez.com>
Fri, 24 Oct 2014 10:29:38 +0000 (14:29 +0400)
This reverts commit 7d91b8efcd053304e5b0fb5afff06e151b2d4096.

modules/core/src/ocl.cpp

index c333b08..79a5367 100644 (file)
@@ -3979,6 +3979,11 @@ public:
             u->markDeviceMemMapped(false);
             CV_Assert( (retval = clEnqueueUnmapMemObject(q,
                                 (cl_mem)u->handle, u->data, 0, 0, 0)) == CL_SUCCESS );
+            if (Device::getDefault().isAMD())
+            {
+                // required for multithreaded applications (see stitching test)
+                CV_OclDbgAssert(clFinish(q) == CL_SUCCESS);
+            }
             u->data = 0;
         }
         else if( u->copyOnMap() && u->deviceCopyObsolete() )