attempt to fix compilation of OpenCL cv::transpose for AMD
authorIlya Lavrenov <ilya.lavrenov@itseez.com>
Fri, 29 Aug 2014 12:51:05 +0000 (16:51 +0400)
committerIlya Lavrenov <ilya.lavrenov@itseez.com>
Fri, 29 Aug 2014 12:59:30 +0000 (16:59 +0400)
modules/core/src/matrix.cpp
modules/core/src/opencl/transpose.cl

index d9869dc..f645de6 100644 (file)
@@ -3011,9 +3011,9 @@ static bool ocl_transpose( InputArray _src, OutputArray _dst )
     }
 
     ocl::Kernel k(kernelName.c_str(), ocl::core::transpose_oclsrc,
-                  format("-D T=%s -D T1=%s -D cn=%d -D TILE_DIM=%d -D BLOCK_ROWS=%d -D rowsPerWI=%d",
+                  format("-D T=%s -D T1=%s -D cn=%d -D TILE_DIM=%d -D BLOCK_ROWS=%d -D rowsPerWI=%d%s",
                          ocl::memopTypeToStr(type), ocl::memopTypeToStr(depth),
-                         cn, TILE_DIM, BLOCK_ROWS, rowsPerWI));
+                         cn, TILE_DIM, BLOCK_ROWS, rowsPerWI, inplace ? " -D INPLACE" : ""));
     if (k.empty())
         return false;
 
index cad3616..01ea7dd 100644 (file)
@@ -53,6 +53,8 @@
 #define TSIZE ((int)sizeof(T1)*3)
 #endif
 
+#ifndef INPLACE
+
 #define LDS_STEP      (TILE_DIM + 1)
 
 __kernel void transpose(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols,
@@ -114,6 +116,8 @@ __kernel void transpose(__global const uchar * srcptr, int src_step, int src_off
     }
 }
 
+#else
+
 __kernel void transpose_inplace(__global uchar * srcptr, int src_step, int src_offset, int src_rows)
 {
     int x = get_global_id(0);
@@ -138,3 +142,5 @@ __kernel void transpose_inplace(__global uchar * srcptr, int src_step, int src_o
             }
     }
 }
+
+#endif // INPLACE