From bdb5aaa44b997fe75c0194fe0fafd343a6b4eee1 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 14 Oct 2026 13:14:25 +0200 Subject: [PATCH] Indexing algorithm FFT without a GPU resolves to None: live indexing is off instead of the collection cancelled The broker cancelled the whole data collection on the first indexed image when its algorithm was FFT and no GPU was visible (the indexer pool refuses FFT there, and the receiver cancels on the exception). FFTW is too slow for live stills, so it is not switched to; with None the pool reports the frame as not indexed and the collection runs on. rugnux resolves -X FFT itself (cuFFT or FFTW) and never reaches this case. Co-Authored-By: Claude Opus 5.5 (1M context) --- common/DiffractionExperiment.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common/DiffractionExperiment.cpp b/common/DiffractionExperiment.cpp index 4e1bf3d9b..d01da5c51 100644 --- a/common/DiffractionExperiment.cpp +++ b/common/DiffractionExperiment.cpp @@ -1710,7 +1710,8 @@ IndexingAlgorithmEnum DiffractionExperiment::GetIndexingAlgorithm() const { return IndexingAlgorithmEnum::FFT; return IndexingAlgorithmEnum::FFBIDX; case IndexingAlgorithmEnum::FFT: - return IndexingAlgorithmEnum::FFT; + // No silent switch to FFTW, too slow for live stills: a missing GPU turns indexing off + return get_gpu_count() == 0 ? IndexingAlgorithmEnum::None : IndexingAlgorithmEnum::FFT; case IndexingAlgorithmEnum::FFTW: return IndexingAlgorithmEnum::FFTW; default: