From e7ec36ce809d68f507eedeb25a3ff7af017c434c Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Sat, 29 Jun 2019 19:14:49 +0300
Subject: [PATCH] Renderer use same GPU as integrator

---
 applications/reconstruct/include/ftl/voxel_scene.hpp | 1 +
 applications/reconstruct/src/virtual_source.cpp      | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/applications/reconstruct/include/ftl/voxel_scene.hpp b/applications/reconstruct/include/ftl/voxel_scene.hpp
index df6a70c29..487cf4b95 100644
--- a/applications/reconstruct/include/ftl/voxel_scene.hpp
+++ b/applications/reconstruct/include/ftl/voxel_scene.hpp
@@ -78,6 +78,7 @@ class SceneRep : public ftl::Configurable {
 	void debugHash();
 
 	cudaStream_t getIntegrationStream() const { return integ_stream_; }
+	int getCUDADevice() const { return cuda_device_; }
 
 	private:
 
diff --git a/applications/reconstruct/src/virtual_source.cpp b/applications/reconstruct/src/virtual_source.cpp
index 73c80323b..245339376 100644
--- a/applications/reconstruct/src/virtual_source.cpp
+++ b/applications/reconstruct/src/virtual_source.cpp
@@ -53,6 +53,9 @@ void VirtualSource::setScene(ftl::voxhash::SceneRep *scene) {
 
 bool VirtualSource::grab() {
 	if (scene_) {
+		// Ensure this host thread is using correct GPU.
+
+		cudaSafeCall(cudaSetDevice(scene_->getCUDADevice()));
 		DepthCameraParams params;
 		params.fx = params_.fx;
 		params.fy = params_.fy;
-- 
GitLab