[Bf-cycles] CMJ causing an infinite loop

Lukas Stockner lukas.stockner at freenet.de
Sat Apr 12 18:36:02 CEST 2014


Hi,
while working on adaptive stopping I noticed that sometimes tiles just 
freeze when using CMJ sampling. They are marked as active, but don't 
return from the kernel.
After running in GDB, stopping and printing out the thread states, it 
seems that they enter an infinite loop in cmj_permute(). The entire 
thread states are below, 5 rendering threads work fine, 3 are hanging. 
The "kernel_write_pass_data" is one of my changes, but it's completely 
unrelated to sampling and works correctly with Sobol.
Is this a known problem? I can't imagine that my changes cause it to 
break since I changed nothing related to CMJ. Sadly, I can't just use 
Sobol instead since it gives correlation problems (the stopping works on 
the difference between even passes and all passes, and with Sobol they 
don't converge to the same result. A solution would be to decide whether 
to add a sample to the "even buffer" with a new RNG sample).

Lukas Stockner






(gdb) info threads
   Id   Target Id         Frame
   44   Thread 0x7fffb1e21700 (LWP 25975) "blender" cmj_permute 
(p=1102306825, l=44721, i=1576503139) at 
/home/lukas/BlenderSrc/blender/intern/cycles/kernel/kernel_jitter.h:107
   43   Thread 0x7fffb2eb6700 (LWP 25974) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   42   Thread 0x7fffb39bd700 (LWP 25973) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   41   Thread 0x7fffb44c4700 (LWP 25972) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   40   Thread 0x7fffb4fcb700 (LWP 25971) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   39   Thread 0x7fffb5ad2700 (LWP 25970) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   38   Thread 0x7fffb65d9700 (LWP 25969) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   37   Thread 0x7fffb70e0700 (LWP 25968) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   36   Thread 0x7fffbd3cf700 (LWP 25967) "blender" 0x0000000003637a1d 
in kernel_write_pass_data (L=..., evenSample=true, writeVarData=true, 
writeConstData=false, weight=1, sample=258,
     buffer=0x60a2028558d0, pd=0x7fffbd3c1d20, kg=0x7fffbd3c2610) at 
/home/lukas/BlenderSrc/blender/intern/cycles/kernel/kernel_passes.h:148
   35   Thread 0x7fffbded6700 (LWP 25966) "blender" cmj_permute 
(p=2243010963, l=44721, i=3758030672) at 
/home/lukas/BlenderSrc/blender/intern/cycles/kernel/kernel_jitter.h:104
   34   Thread 0x7fffbe9dd700 (LWP 25965) "blender" 0x00007ffff2ef9c84 
in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib/x86_64-linux-gnu/libpthread.so.0
   33   Thread 0x7fffbf4e4700 (LWP 25964) "blender" 0x00000000034ee00f 
in cmj_permute (p=3837528855, l=44721, i=3522537535) at 
/home/lukas/BlenderSrc/blender/intern/cycles/kernel/kernel_jitter.h:102
   32   Thread 0x7fffbffeb700 (LWP 25963) "blender" 0x00000000034f24f2 
in ccl::bvh_intersect_instancing (kg=kg at entry=0x7fffbffde610, 
ray=ray at entry=0x7fffbffccd50, isect=isect at entry=0x7fffbffcc8d0,
     visibility=visibility at entry=256) at 
/home/lukas/BlenderSrc/blender/intern/cycles/kernel/kernel_bvh_traversal.h:194
   31   Thread 0x7fffc0af2700 (LWP 25962) "blender" 0x00000000034ee00f 
in cmj_permute (p=2537997320, l=44721, i=1494394943) at 
/home/lukas/BlenderSrc/blender/intern/cycles/kernel/kernel_jitter.h:102
   30   Thread 0x7fffc15f9700 (LWP 25961) "blender" 0x0000000003532c5d 
in fetch (this=0xc110, index=<optimized out>) at 
/home/lukas/BlenderSrc/blender/intern/cycles/kernel/kernel_compat_cpu.h:43
   29   Thread 0x7fffc1dfa700 (LWP 25960) "blender" cmj_permute 
(p=3687792016, l=44721, i=4285244509) at 
/home/lukas/BlenderSrc/blender/intern/cycles/kernel/kernel_jitter.h:98
   28   Thread 0x7fffd0f27700 (LWP 25958) "blender" 0x00007ffff2ef71f8 
in pthread_join () from /lib/x86_64-linux-gnu/libpthread.so.0
   27   Thread 0x7fffc8e63700 (LWP 25957) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   26   Thread 0x7fffc996a700 (LWP 25956) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   25   Thread 0x7fffca471700 (LWP 25955) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   24   Thread 0x7fffcaf78700 (LWP 25954) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   23   Thread 0x7fffcba7f700 (LWP 25953) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   22   Thread 0x7fffcc586700 (LWP 25952) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   21   Thread 0x7fffcd08d700 (LWP 25951) "blender" 0x00007fffee61fb42 
in ?? () from /usr/lib/x86_64-linux-gnu/libgomp.so.1
   20   Thread 0x7fffd256e700 (LWP 25950) "blender" 0x00007ffff2ef9c84 
in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib/x86_64-linux-gnu/libpthread.so.0
   19   Thread 0x7fffd3075700 (LWP 25949) "blender" 0x00007ffff2ef9c84 
in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib/x86_64-linux-gnu/libpthread.so.0
   18   Thread 0x7fffd3b7c700 (LWP 25948) "blender" 0x00007ffff2ef9c84 
in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib/x86_64-linux-gnu/libpthread.so.0
   17   Thread 0x7fffd4683700 (LWP 25947) "blender" 0x00007ffff2ef9c84 
in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib/x86_64-linux-gnu/libpthread.so.0
   16   Thread 0x7fffd518a700 (LWP 25946) "blender" 0x00007ffff2ef9c84 
in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib/x86_64-linux-gnu/libpthread.so.0
   15   Thread 0x7fffd5c91700 (LWP 25945) "blender" 0x00007ffff2ef9c84 
in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib/x86_64-linux-gnu/libpthread.so.0
   14   Thread 0x7fffd6798700 (LWP 25944) "blender" 0x00007ffff2ef9c84 
in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib/x86_64-linux-gnu/libpthread.so.0
   12   Thread 0x7fffdcc00700 (LWP 25941) "blender" 0x00007ffff2efd41d 
in nanosleep () from /lib/x86_64-linux-gnu/libpthread.so.0
   11   Thread 0x7fffe1a0e700 (LWP 25940) "threaded-ml" 
0x00007fffeef1af7d in poll () from /lib/x86_64-linux-gnu/libc.so.6
   9    Thread 0x7fffe253c700 (LWP 25938) "blender" 0x00007ffff2efbf60 
in sem_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
   8    Thread 0x7fffe3043700 (LWP 25937) "blender" 0x00007ffff2efbf60 
in sem_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
   7    Thread 0x7fffe3b4a700 (LWP 25936) "blender" 0x00007ffff2efbf60 
in sem_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
   6    Thread 0x7fffe4651700 (LWP 25935) "blender" 0x00007ffff2efbf60 
in sem_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
   5    Thread 0x7fffe5158700 (LWP 25934) "blender" 0x00007ffff2efbf60 
in sem_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
   4    Thread 0x7fffe5c5f700 (LWP 25933) "blender" 0x00007ffff2efbf60 
in sem_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
   3    Thread 0x7fffe6766700 (LWP 25932) "blender" 0x00007ffff2efbf60 
in sem_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
   2    Thread 0x7fffe726d700 (LWP 25931) "blender" 0x00007ffff2efbf60 
in sem_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
* 1    Thread 0x7ffff7fb87c0 (LWP 25927) "blender" 0x00007fffdb6bc36c in 
?? () from /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so



More information about the Bf-cycles mailing list