diff --git a/components/renderers/cpp/src/splat_render.cpp b/components/renderers/cpp/src/splat_render.cpp index 49369dcdf4e5f28eaab25f686889d8f32500ef42..5829ff0557001c185d7d61f94ce0dc1442a805c4 100644 --- a/components/renderers/cpp/src/splat_render.cpp +++ b/components/renderers/cpp/src/splat_render.cpp @@ -315,14 +315,6 @@ bool Splatter::render(ftl::rgbd::VirtualSource *src, ftl::rgbd::Frame &out) { if (scene_->frames.size() == 0) return false; - - int aligned_source = value("aligned_source",-1); - if (aligned_source >= 0 && aligned_source < scene_->frames.size()) { - // FIXME: Output may not be same resolution as source! - scene_->frames[aligned_source].swapTo(Channel::Depth + Channel::Colour, out); - return true; - } - auto &g = scene_->frames[0].get<GpuMat>(Channel::Colour); temp_.create<GpuMat>(Channel::Colour, Format<float4>(camera.width, camera.height)); @@ -403,6 +395,14 @@ bool Splatter::render(ftl::rgbd::VirtualSource *src, ftl::rgbd::Frame &out) { } } + int aligned_source = value("aligned_source",-1); + if (aligned_source >= 0 && aligned_source < scene_->frames.size()) { + // FIXME: Output may not be same resolution as source! + cudaSafeCall(cudaStreamSynchronize(stream_)); + scene_->frames[aligned_source].swapTo(Channel::Depth + Channel::Colour, out); + return true; + } + _dibr(stream_); _renderChannel(out, Channel::Colour, Channel::Colour, stream_);