 __global__
 void thinning( cv::cuda::PtrStepSzb src, cv::cuda::PtrStepSzb dst )
 {
-    const int block_x = blockIdx.x * V7_WIDTH;
+    const int block_x = blockIdx.x * 32;
     const int idx     = block_x + threadIdx.x;
     const int idy     = blockIdx.y;
 

     * to identical coordinates.
     * @Lilian - please explain what happens here
     */
    if( out_edge.befor.x == out_edge.after.x && out_edge.befor.y == out_edge.after.y ) keep = false;

    uint32_t mask = __ballot( keep );  // bitfield of warps with results
    if( mask == 0 ) return;

                       uint32_t*              d_new_edgelist_sz,
                       cv::cuda::PtrStepSz32s d_next_edge_coord,
                       cv::cuda::PtrStepSz32s d_next_edge_after,
                       cv::cuda::PtrStepSz32s d_next_edge_befor,
                       uint32_t               max_num_edges,
                       cv::cuda::PtrStepSzb   edges,
                       uint32_t               nmax,
