BundleFusion
BundleFusion copied to clipboard
Fix rare failure in match sort kernel
The sort kernel uses Parallel Bubble Sort and switches between even and odd phases. In the rare case where every even pair is sorted but not the whole sequence, no swap will be performed during the initial even phase. Therefore, the sequence is considered sorted, the loop stops and no odd phase is triggered. This case becomes more likely for short sequences like this one here:
1 2 5 6 3 4
Even phase checks : 1 < 2, 5 < 6, 3 < 4 --> no swap performed
This issue is fixed by enforcing that at least one even and odd phase is performed.