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
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-10-05 23:56:34 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-10-05 23:56:34 +0400
commite9d03296c7cbff8e20a61359d858642126621669 (patch)
tree4a16060cd97ceaca22d5b7f5a63d517703a52793 /intern
parentc7882ec3bb4d6895414ed7a0623074c16201284e (diff)
Better fix for #36935 and 36316:
* 32 bit GCC builds now have the SSE BVH optimizations turned off, but still compile with SSE flags for better performance. * White color when rendering on Windows seems to have been unrelated to SSE, rather it was a graphics driver not supporting half float textures, added a check for that now.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/blender_sync.cpp3
-rw-r--r--intern/cycles/kernel/kernel_sse2.cpp3
-rw-r--r--intern/cycles/kernel/kernel_sse3.cpp3
-rw-r--r--intern/cycles/util/util_opengl.h5
-rw-r--r--intern/cycles/util/util_system.cpp3
5 files changed, 9 insertions, 8 deletions
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 337d075cce4..a349ddc5c3f 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -34,6 +34,7 @@
#include "util_debug.h"
#include "util_foreach.h"
+#include "util_opengl.h"
CCL_NAMESPACE_BEGIN
@@ -494,7 +495,7 @@ SessionParams BlenderSync::get_session_params(BL::RenderEngine b_engine, BL::Use
params.shadingsystem = SessionParams::OSL;
/* color managagement */
- params.display_buffer_linear = b_engine.support_display_space_shader(b_scene);
+ params.display_buffer_linear = GLEW_ARB_half_float_pixel && b_engine.support_display_space_shader(b_scene);
return params;
}
diff --git a/intern/cycles/kernel/kernel_sse2.cpp b/intern/cycles/kernel/kernel_sse2.cpp
index 862626d6899..9c69e519dca 100644
--- a/intern/cycles/kernel/kernel_sse2.cpp
+++ b/intern/cycles/kernel/kernel_sse2.cpp
@@ -20,7 +20,10 @@
#ifdef WITH_OPTIMIZED_KERNEL
+/* SSE optimization disabled for now on 32 bit, see bug #36316 */
+#if !(defined(__GNUC__) && (defined(i386) || defined(_M_IX86)))
#define __KERNEL_SSE2__
+#endif
#include "kernel.h"
#include "kernel_compat_cpu.h"
diff --git a/intern/cycles/kernel/kernel_sse3.cpp b/intern/cycles/kernel/kernel_sse3.cpp
index c44098606a5..05877a41b4a 100644
--- a/intern/cycles/kernel/kernel_sse3.cpp
+++ b/intern/cycles/kernel/kernel_sse3.cpp
@@ -20,9 +20,12 @@
#ifdef WITH_OPTIMIZED_KERNEL
+/* SSE optimization disabled for now on 32 bit, see bug #36316 */
+#if !(defined(__GNUC__) && (defined(i386) || defined(_M_IX86)))
#define __KERNEL_SSE2__
#define __KERNEL_SSE3__
#define __KERNEL_SSSE3__
+#endif
#include "kernel.h"
#include "kernel_compat_cpu.h"
diff --git a/intern/cycles/util/util_opengl.h b/intern/cycles/util/util_opengl.h
index 07a296ed1e6..04a3e039c9d 100644
--- a/intern/cycles/util/util_opengl.h
+++ b/intern/cycles/util/util_opengl.h
@@ -20,12 +20,7 @@
/* OpenGL header includes, used everywhere we use OpenGL, to deal with
* platform differences in one central place. */
-#ifdef __APPLE__
-#include <OpenGL/gl.h>
-#include <OpenGL/glu.h>
-#else
#include <GL/glew.h>
-#endif
#endif /* __UTIL_OPENGL_H__ */
diff --git a/intern/cycles/util/util_system.cpp b/intern/cycles/util/util_system.cpp
index 2bb15b9074a..345c76bdfab 100644
--- a/intern/cycles/util/util_system.cpp
+++ b/intern/cycles/util/util_system.cpp
@@ -116,8 +116,7 @@ int system_cpu_bits()
return (sizeof(void*)*8);
}
-/* SSE optimization disabled for now on 32 bit, see bug #36316 and #36935 */
-#if defined(__x86_64__) || defined(_M_X64) // ((defined(i386) || defined(_M_IX86))
+#if defined(__x86_64__) || defined(_M_X64) || defined(i386) || defined(_M_IX86)
struct CPUCapabilities {
bool x64;