diff --git a/applications/reconstruct/include/ftl/voxel_scene.hpp b/applications/reconstruct/include/ftl/voxel_scene.hpp index df6a70c29fca86101c945c431f052a43a8bd1375..487cf4b953dc2ea41eda8a645fb3ff56d296eff6 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 73c80323b9a702964a18bbc7ce68e9c407873b06..245339376c7ded2093de988aa4366c2ef539a325 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;