Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2014-11-12 13:51:49 +0300
committerThomas Dinges <blender@dingto.org>2014-11-12 13:51:49 +0300
commit8f8b9b58f6650e104a04670f43d2ef81f861efcd (patch)
tree926ede78d3de2bd931ea28908da46deca74d548a /intern/cycles
parent5cba64e30c232fcb85f5eab917fd84fe41de3263 (diff)
Fix T41066: MSVC + AVX2 kernel causes artifacts in hair render.
The issue lies in the FMA functions, so disable them on Windows for now.
Diffstat (limited to 'intern/cycles')
-rw-r--r--intern/cycles/kernel/kernel_types.h4
-rw-r--r--intern/cycles/util/util_ssef.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 7d9bebf5614..25b13f74b30 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -543,7 +543,7 @@ typedef enum AttributeStandard {
* could be simply a compilers bug for which we can't find a generic
* platform independent workaround. Also even if it's a compiler
* issue, it's not so simple to upgrade the compiler in the release
- * environment for linux and doing it so closer to the release is
+ * environment for Linux and doing it so closer to the release is
* rather a risky business.
*
* For this release it's probably safer to stick with such a rather
@@ -997,7 +997,7 @@ typedef struct KernelData {
#ifdef __KERNEL_DEBUG__
typedef struct DebugData {
- // Total number of BVH node travesal steps and primitives intersections
+ // Total number of BVH node traversal steps and primitives intersections
// for the camera rays.
int num_bvh_traversal_steps;
} DebugData;
diff --git a/intern/cycles/util/util_ssef.h b/intern/cycles/util/util_ssef.h
index f4236cc616e..5e452ea03b4 100644
--- a/intern/cycles/util/util_ssef.h
+++ b/intern/cycles/util/util_ssef.h
@@ -151,7 +151,7 @@ __forceinline ssef maxi(const ssef& a, const ssef& b) {
/// Ternary Operators
////////////////////////////////////////////////////////////////////////////////
-#if defined(__KERNEL_AVX2__)
+#if defined(__KERNEL_AVX2__) && !defined(_MSC_VER) // see T41066
__forceinline const ssef madd (const ssef& a, const ssef& b, const ssef& c) { return _mm_fmadd_ps(a,b,c); }
__forceinline const ssef msub (const ssef& a, const ssef& b, const ssef& c) { return _mm_fmsub_ps(a,b,c); }
__forceinline const ssef nmadd(const ssef& a, const ssef& b, const ssef& c) { return _mm_fnmadd_ps(a,b,c); }