diff --git a/components/rgbd-sources/src/algorithms/fixstars_sgm.cpp b/components/rgbd-sources/src/algorithms/fixstars_sgm.cpp
index bd9f02537a4d135d1c2d45bcbed8be2abf914042..483f44dfeff1ca6d1032612b9add2c890b7f1747 100644
--- a/components/rgbd-sources/src/algorithms/fixstars_sgm.cpp
+++ b/components/rgbd-sources/src/algorithms/fixstars_sgm.cpp
@@ -21,20 +21,20 @@ FixstarsSGM::FixstarsSGM(nlohmann::json &config) : Disparity(config) {
 void FixstarsSGM::compute(const cv::cuda::GpuMat &l, const cv::cuda::GpuMat &r, cv::cuda::GpuMat &disp, cv::cuda::Stream &stream) {
 	
 	GpuMat lbw, rbw;
-	cv::cuda::cvtColor(l, lbw, cv::COLOR_BGR2GRAY);
-	cv::cuda::cvtColor(r, rbw, cv::COLOR_BGR2GRAY);
+	cv::cuda::cvtColor(l, lbw, cv::COLOR_BGR2GRAY, 0, stream);
+	cv::cuda::cvtColor(r, rbw, cv::COLOR_BGR2GRAY, 0, stream);
 
 	if (disp.type() != CV_16SC1 || disp.rows != l.rows || disp.cols != l.cols) {
 		disp = GpuMat(l.rows, l.cols, CV_16SC1);
 	}
 
+	stream.waitForCompletion();
 	if (!ssgm_) { // todo: move to constructor
 		ssgm_ = new sgm::StereoSGM(l.cols, l.rows, max_disp_, 8, 16, lbw.step, disp.step / sizeof(short),
 			sgm::EXECUTE_INOUT_HOST2HOST, sgm::StereoSGM::Parameters(10,120,0.95f,true));
 	}
 
 	//auto start = std::chrono::high_resolution_clock::now();
-	stream.waitForCompletion();
 	ssgm_->execute(lbw.data, rbw.data, disp.data);
 	//std::chrono::duration<double> elapsed =
 	//		std::chrono::high_resolution_clock::now() - start;