 					right_top2[i].push(recv);
 					if(d == MAX_DISPARITY - 1){
 						if(0 <= p){
-							right_dest[p] = compute_disparity(right_top2[i], uniqueness);
+							right_dest[p] = compute_disparity_normal<MAX_DISPARITY>(right_top2[i], uniqueness);
 						}
 						right_top2[i].initialize();
 					}

				}
				left_top2 = subgroup_merge_top2<WARP_SIZE>(left_top2);
				if(lane_id == 0){
					left_dest[x] = compute_disparity(left_top2, uniqueness);
				}
				// Update right
#pragma unroll

		const unsigned int k = lane_id * REDUCTION_PER_THREAD + i;
		const int p = static_cast<int>(((width - k) & ~(MAX_DISPARITY - 1)) + k);
		if(p < width){
			right_dest[p] = compute_disparity_normal<MAX_DISPARITY>(right_top2[i], uniqueness);
		}
	}
}
