Cycles: Use more stable version of integer square root function
authorSergey Sharybin <sergey.vfx@gmail.com>
Tue, 9 May 2017 14:12:06 +0000 (16:12 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Tue, 9 May 2017 15:07:17 +0000 (17:07 +0200)
commit4d38932cb430139975fd1fc13436317b2a16fdc4
tree3d19097565b989ed6fdb571462779c050f4c46e8
parente20eb2dec0dd5a9bb1dba6267e1581626d69958d
Cycles: Use more stable version of integer square root function

Old code was working quite unreliable in combination with fast math
flag, especially when compiling with Clang. It seems we were hitting
result of the following bug submitted to Clang [1].

Basically, it was happening so that (int)sqrtf(64) was 7 when Cycles
is built with Clang but was correct 8 when built with GCC.

This commit works this around. Annoying, but don't see other way to
keep sampling pattern the same for Clang and GCC.

[1] https://bugs.llvm.org//show_bug.cgi?id=24063
intern/cycles/kernel/kernel_jitter.h