added missed device synchronization
authorVladislav Vinogradov <vlad.vinogradov@itseez.com>
Thu, 2 Aug 2012 11:56:59 +0000 (15:56 +0400)
committerVladislav Vinogradov <vlad.vinogradov@itseez.com>
Tue, 7 Aug 2012 09:34:11 +0000 (13:34 +0400)
modules/gpu/src/color.cpp

index faebca6..d5615ab 100644 (file)
@@ -1153,7 +1153,7 @@ namespace
         funcs[dcn == 4][src.channels() == 4][src.depth()](src, dst, StreamAccessor::getStream(stream));\r
     }\r
 \r
-    void bgr_to_lab(const GpuMat& src, GpuMat& dst, int dcn, Stream& stream)\r
+    void bgr_to_lab(const GpuMat& src, GpuMat& dst, int dcn, Stream& st)\r
     {\r
         #if (CUDA_VERSION < 5000)\r
             (void)src;\r
@@ -1169,13 +1169,17 @@ namespace
 \r
             dst.create(src.size(), CV_MAKETYPE(src.depth(), dcn));\r
 \r
-            NppStreamHandler h(StreamAccessor::getStream(stream));\r
+            cudaStream_t stream = StreamAccessor::getStream(st);\r
+            NppStreamHandler h(stream);\r
 \r
             NppiSize oSizeROI;\r
             oSizeROI.width = src.cols;\r
             oSizeROI.height = src.rows;\r
 \r
             nppSafeCall( nppiBGRToLab_8u_C3R(src.ptr<Npp8u>(), static_cast<int>(src.step), dst.ptr<Npp8u>(), static_cast<int>(dst.step), oSizeROI) );\r
+\r
+            if (stream == 0)\r
+                cudaSafeCall( cudaDeviceSynchronize() );\r
         #endif\r
     }\r
 \r
@@ -1185,7 +1189,7 @@ namespace
         bgr_to_lab(dst, dst, -1, stream);\r
     }\r
 \r
-    void lab_to_bgr(const GpuMat& src, GpuMat& dst, int dcn, Stream& stream)\r
+    void lab_to_bgr(const GpuMat& src, GpuMat& dst, int dcn, Stream& st)\r
     {\r
         #if (CUDA_VERSION < 5000)\r
             (void)src;\r
@@ -1201,13 +1205,17 @@ namespace
 \r
             dst.create(src.size(), CV_MAKETYPE(src.depth(), dcn));\r
 \r
-            NppStreamHandler h(StreamAccessor::getStream(stream));\r
+            cudaStream_t stream = StreamAccessor::getStream(st);\r
+            NppStreamHandler h(stream);\r
 \r
             NppiSize oSizeROI;\r
             oSizeROI.width = src.cols;\r
             oSizeROI.height = src.rows;\r
 \r
             nppSafeCall( nppiLabToBGR_8u_C3R(src.ptr<Npp8u>(), static_cast<int>(src.step), dst.ptr<Npp8u>(), static_cast<int>(dst.step), oSizeROI) );\r
+\r
+            if (stream == 0)\r
+                cudaSafeCall( cudaDeviceSynchronize() );\r
         #endif\r
     }\r
 \r
@@ -1217,7 +1225,7 @@ namespace
         bgr_to_rgb(dst, dst, -1, stream);\r
     }\r
 \r
-    void rgb_to_luv(const GpuMat& src, GpuMat& dst, int dcn, Stream& stream)\r
+    void rgb_to_luv(const GpuMat& src, GpuMat& dst, int dcn, Stream& st)\r
     {\r
         #if (CUDA_VERSION < 5000)\r
             (void)src;\r
@@ -1233,7 +1241,8 @@ namespace
 \r
             dst.create(src.size(), CV_MAKETYPE(src.depth(), dcn));\r
 \r
-            NppStreamHandler h(StreamAccessor::getStream(stream));\r
+            cudaStream_t stream = StreamAccessor::getStream(st);\r
+            NppStreamHandler h(stream);\r
 \r
             NppiSize oSizeROI;\r
             oSizeROI.width = src.cols;\r
@@ -1243,6 +1252,9 @@ namespace
                 nppSafeCall( nppiRGBToLUV_8u_C3R(src.ptr<Npp8u>(), static_cast<int>(src.step), dst.ptr<Npp8u>(), static_cast<int>(dst.step), oSizeROI) );\r
             else\r
                 nppSafeCall( nppiRGBToLUV_8u_AC4R(src.ptr<Npp8u>(), static_cast<int>(src.step), dst.ptr<Npp8u>(), static_cast<int>(dst.step), oSizeROI) );\r
+\r
+            if (stream == 0)\r
+                cudaSafeCall( cudaDeviceSynchronize() );\r
         #endif\r
     }\r
 \r
@@ -1252,7 +1264,7 @@ namespace
         rgb_to_luv(dst, dst, -1, stream);\r
     }\r
 \r
-    void luv_to_rgb(const GpuMat& src, GpuMat& dst, int dcn, Stream& stream)\r
+    void luv_to_rgb(const GpuMat& src, GpuMat& dst, int dcn, Stream& st)\r
     {\r
         #if (CUDA_VERSION < 5000)\r
             (void)src;\r
@@ -1268,7 +1280,8 @@ namespace
 \r
             dst.create(src.size(), CV_MAKETYPE(src.depth(), dcn));\r
 \r
-            NppStreamHandler h(StreamAccessor::getStream(stream));\r
+            cudaStream_t stream = StreamAccessor::getStream(st);\r
+            NppStreamHandler h(stream);\r
 \r
             NppiSize oSizeROI;\r
             oSizeROI.width = src.cols;\r
@@ -1278,6 +1291,9 @@ namespace
                 nppSafeCall( nppiLUVToRGB_8u_C3R(src.ptr<Npp8u>(), static_cast<int>(src.step), dst.ptr<Npp8u>(), static_cast<int>(dst.step), oSizeROI) );\r
             else\r
                 nppSafeCall( nppiLUVToRGB_8u_AC4R(src.ptr<Npp8u>(), static_cast<int>(src.step), dst.ptr<Npp8u>(), static_cast<int>(dst.step), oSizeROI) );\r
+\r
+            if (stream == 0)\r
+                cudaSafeCall( cudaDeviceSynchronize() );\r
         #endif\r
     }\r
 \r
@@ -1287,7 +1303,7 @@ namespace
         bgr_to_rgb(dst, dst, -1, stream);\r
     }\r
 \r
-    void rgba_to_mbgra(const GpuMat& src, GpuMat& dst, int, Stream& stream)\r
+    void rgba_to_mbgra(const GpuMat& src, GpuMat& dst, int, Stream& st)\r
     {\r
     #if (CUDA_VERSION < 5000)\r
         (void)src;\r
@@ -1299,7 +1315,8 @@ namespace
 \r
         dst.create(src.size(), src.type());\r
 \r
-        NppStreamHandler h(StreamAccessor::getStream(stream));\r
+        cudaStream_t stream = StreamAccessor::getStream(st);\r
+        NppStreamHandler h(stream);\r
 \r
         NppiSize oSizeROI;\r
         oSizeROI.width = src.cols;\r
@@ -1309,6 +1326,9 @@ namespace
             nppSafeCall( nppiAlphaPremul_8u_AC4R(src.ptr<Npp8u>(), static_cast<int>(src.step), dst.ptr<Npp8u>(), static_cast<int>(dst.step), oSizeROI) );\r
         else\r
             nppSafeCall( nppiAlphaPremul_16u_AC4R(src.ptr<Npp16u>(), static_cast<int>(src.step), dst.ptr<Npp16u>(), static_cast<int>(dst.step), oSizeROI) );\r
+\r
+        if (stream == 0)\r
+            cudaSafeCall( cudaDeviceSynchronize() );\r
     #endif\r
     }\r
 \r
@@ -1474,57 +1494,57 @@ void cv::gpu::cvtColor(const GpuMat& src, GpuMat& dst, int code, int dcn, Stream
         0,                      // CV_BayerGR2GRAY = 89\r
 \r
         //YUV 4:2:0 formats family\r
-        0,                      // COLOR_YUV2RGB_NV12 = 90,\r
-        0,                      // COLOR_YUV2BGR_NV12 = 91,\r
-        0,                      // COLOR_YUV2RGB_NV21 = 92,\r
-        0,                      // COLOR_YUV2BGR_NV21 = 93,\r
+        0,                      // CV_YUV2RGB_NV12 = 90,\r
+        0,                      // CV_YUV2BGR_NV12 = 91,\r
+        0,                      // CV_YUV2RGB_NV21 = 92,\r
+        0,                      // CV_YUV2BGR_NV21 = 93,\r
 \r
-        0,                      // COLOR_YUV2RGBA_NV12 = 94,\r
-        0,                      // COLOR_YUV2BGRA_NV12 = 95,\r
-        0,                      // COLOR_YUV2RGBA_NV21 = 96,\r
-        0,                      // COLOR_YUV2BGRA_NV21 = 97,\r
+        0,                      // CV_YUV2RGBA_NV12 = 94,\r
+        0,                      // CV_YUV2BGRA_NV12 = 95,\r
+        0,                      // CV_YUV2RGBA_NV21 = 96,\r
+        0,                      // CV_YUV2BGRA_NV21 = 97,\r
 \r
-        0,                      // COLOR_YUV2RGB_YV12 = 98,\r
-        0,                      // COLOR_YUV2BGR_YV12 = 99,\r
-        0,                      // COLOR_YUV2RGB_IYUV = 100,\r
-        0,                      // COLOR_YUV2BGR_IYUV = 101,\r
+        0,                      // CV_YUV2RGB_YV12 = 98,\r
+        0,                      // CV_YUV2BGR_YV12 = 99,\r
+        0,                      // CV_YUV2RGB_IYUV = 100,\r
+        0,                      // CV_YUV2BGR_IYUV = 101,\r
 \r
-        0,                      // COLOR_YUV2RGBA_YV12 = 102,\r
-        0,                      // COLOR_YUV2BGRA_YV12 = 103,\r
-        0,                      // COLOR_YUV2RGBA_IYUV = 104,\r
-        0,                      // COLOR_YUV2BGRA_IYUV = 105,\r
+        0,                      // CV_YUV2RGBA_YV12 = 102,\r
+        0,                      // CV_YUV2BGRA_YV12 = 103,\r
+        0,                      // CV_YUV2RGBA_IYUV = 104,\r
+        0,                      // CV_YUV2BGRA_IYUV = 105,\r
 \r
-        0,                      // COLOR_YUV2GRAY_420 = 106,\r
+        0,                      // CV_YUV2GRAY_420 = 106,\r
 \r
         //YUV 4:2:2 formats family\r
-        0,                      // COLOR_YUV2RGB_UYVY = 107,\r
-        0,                      // COLOR_YUV2BGR_UYVY = 108,\r
-        0,                      // //COLOR_YUV2RGB_VYUY = 109,\r
-        0,                      // //COLOR_YUV2BGR_VYUY = 110,\r
+        0,                      // CV_YUV2RGB_UYVY = 107,\r
+        0,                      // CV_YUV2BGR_UYVY = 108,\r
+        0,                      // //CV_YUV2RGB_VYUY = 109,\r
+        0,                      // //CV_YUV2BGR_VYUY = 110,\r
 \r
-        0,                      // COLOR_YUV2RGBA_UYVY = 111,\r
-        0,                      // COLOR_YUV2BGRA_UYVY = 112,\r
-        0,                      // //COLOR_YUV2RGBA_VYUY = 113,\r
-        0,                      // //COLOR_YUV2BGRA_VYUY = 114,\r
+        0,                      // CV_YUV2RGBA_UYVY = 111,\r
+        0,                      // CV_YUV2BGRA_UYVY = 112,\r
+        0,                      // //CV_YUV2RGBA_VYUY = 113,\r
+        0,                      // //CV_YUV2BGRA_VYUY = 114,\r
 \r
-        0,                      // COLOR_YUV2RGB_YUY2 = 115,\r
-        0,                      // COLOR_YUV2BGR_YUY2 = 116,\r
-        0,                      // COLOR_YUV2RGB_YVYU = 117,\r
-        0,                      // COLOR_YUV2BGR_YVYU = 118,\r
+        0,                      // CV_YUV2RGB_YUY2 = 115,\r
+        0,                      // CV_YUV2BGR_YUY2 = 116,\r
+        0,                      // CV_YUV2RGB_YVYU = 117,\r
+        0,                      // CV_YUV2BGR_YVYU = 118,\r
 \r
-        0,                      // COLOR_YUV2RGBA_YUY2 = 119,\r
-        0,                      // COLOR_YUV2BGRA_YUY2 = 120,\r
-        0,                      // COLOR_YUV2RGBA_YVYU = 121,\r
-        0,                      // COLOR_YUV2BGRA_YVYU = 122,\r
+        0,                      // CV_YUV2RGBA_YUY2 = 119,\r
+        0,                      // CV_YUV2BGRA_YUY2 = 120,\r
+        0,                      // CV_YUV2RGBA_YVYU = 121,\r
+        0,                      // CV_YUV2BGRA_YVYU = 122,\r
 \r
-        0,                      // COLOR_YUV2GRAY_UYVY = 123,\r
-        0,                      // COLOR_YUV2GRAY_YUY2 = 124,\r
+        0,                      // CV_YUV2GRAY_UYVY = 123,\r
+        0,                      // CV_YUV2GRAY_YUY2 = 124,\r
 \r
         // alpha premultiplication\r
-        rgba_to_mbgra,          // COLOR_RGBA2mRGBA = 125,\r
-        0,                      // COLOR_mRGBA2RGBA = 126,\r
+        rgba_to_mbgra,          // CV_RGBA2mRGBA = 125,\r
+        0,                      // CV_mRGBA2RGBA = 126,\r
 \r
-        0,                      // COLOR_COLORCVT_MAX  = 127\r
+        0,                      // CV_COLORCVT_MAX  = 127\r
     };\r
 \r
     CV_Assert(code < 128);\r