Fix T41066: MSVC + AVX2 kernel causes artifacts in hair render.

The issue lies in the FMA functions, so disable them on Windows for now.
This commit is contained in:
Thomas Dinges 2014-11-12 11:51:49 +01:00
parent 5cba64e30c
commit 8f8b9b58f6
Notes: blender-bot 2023-02-14 10:21:11 +01:00
Referenced by issue #41066, Particle Carpet renders different in 2.71
2 changed files with 3 additions and 3 deletions

View File

@ -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;

View File

@ -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); }