From 22fdc981284d235d7b3402b4f3e38dcbc848f725 Mon Sep 17 00:00:00 2001 From: Steven Robertson Date: Sun, 20 Nov 2011 10:08:13 -0500 Subject: [PATCH] Fix point swapping. --- cuburn/code/iter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cuburn/code/iter.py b/cuburn/code/iter.py index 73b2808..aed2099 100644 --- a/cuburn/code/iter.py +++ b/cuburn/code/iter.py @@ -275,7 +275,10 @@ void iter( {{endfor}} apply_xf_{{std_xforms[-1]}}(x, y, color, rctx); - int sw = (threadIdx.y * 32 + threadIdx.x * 33) & {{NTHREADS-1}}; + // Rotate points between threads. + int swr = threadIdx.y + threadIdx.x + + (round & 1) * (threadIdx.x / {{NTHREADS / 32}}); + int sw = (swr * 32 + threadIdx.x) & {{NTHREADS-1}}; int sr = threadIdx.y * 32 + threadIdx.x; swap[sw] = fuse ? 1.0f : 0.0f;