diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-09-13 11:59:48 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-09-13 11:59:48 +0300 |
commit | 52038fd8c7dd7cece0cccd50cf09274abbdb14ba (patch) | |
tree | 8a3de794ef4078a351a5ab58718243ddb6c7219c /intern | |
parent | 56c798ee620719750dd38917cb8ce191e02913ad (diff) |
Fix T49290: Specific .blend with hair crashes in MacOS 2.78 RC1 on render
The issue was caused by some false-positive empty non-AABB intersection.
Tried to tweak it a bit so it does not record intersection anymore.
Hopefully will work for all platforms. Tested here on iMac and Debian.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/bvh/bvh.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/intern/cycles/bvh/bvh.cpp b/intern/cycles/bvh/bvh.cpp index 4f97abd6750..39b2a0cf436 100644 --- a/intern/cycles/bvh/bvh.cpp +++ b/intern/cycles/bvh/bvh.cpp @@ -951,9 +951,23 @@ void QBVH::pack_unaligned_node(int idx, /* We store BB which would never be recorded as intersection * so kernel might safely assume there are always 4 child nodes. */ - for(int j = 1; j < 13; ++j) { - data[j][i] = 0.0f; - } + + data[1][i] = 1.0f; + data[2][i] = 0.0f; + data[3][i] = 0.0f; + + data[4][i] = 0.0f; + data[5][i] = 0.0f; + data[6][i] = 0.0f; + + data[7][i] = 0.0f; + data[8][i] = 0.0f; + data[9][i] = 0.0f; + + data[10][i] = -FLT_MAX; + data[11][i] = -FLT_MAX; + data[12][i] = -FLT_MAX; + data[13][i] = __int_as_float(0); } |