 
 	sgm::WinnerTakesAll<disparity> wta;
 	const auto d_input = to_device_vector(input);
-	wta.enqueue(d_input.data().get(), width, height, uniqueness, 0);
+	wta.enqueue(d_input.data().get(), width, height, uniqueness, false, 0);
 	cudaStreamSynchronize(0);
 
 	const thrust::device_vector<sgm::output_type> d_actual(

#include <gtest/gtest.h>
#include <utility>
#include "winner_takes_all.hpp"
#include "generator.hpp"
#include "test_utility.hpp"

				const int cost1 = v[1].first;
				const int disp0 = v[0].second;
				const int disp1 = v[1].second;
				sgm::output_type dst;
				if (cost1 * uniqueness < cost0 && abs(disp0 - disp1) > 1) {
					dst = 0;
				} else {
					dst = disp0;
					if (subpixel) {
						dst <<= sgm::StereoSGM::SUBPIXEL_SHIFT;
						if (0 < disp0 && disp0 < disparity - 1) {
							const int left = w[disp0 - 1].first;
							const int right = w[disp0 + 1].first;
							const int numer = left - right;
							const int denom = left - 2 * cost0 + right;
							dst += ((numer << sgm::StereoSGM::SUBPIXEL_SHIFT) + denom) / (2 * denom);
						}
					}
				}
				result[i * width + j] = dst;
			}
		}
	}
