[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60573] trunk/blender/intern/cycles: Better fix for #36935 and 36316:

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Oct 5 21:56:34 CEST 2013


Revision: 60573
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60573
Author:   blendix
Date:     2013-10-05 19:56:34 +0000 (Sat, 05 Oct 2013)
Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_sync.cpp
    trunk/blender/intern/cycles/kernel/kernel_sse2.cpp
    trunk/blender/intern/cycles/kernel/kernel_sse3.cpp
    trunk/blender/intern/cycles/util/util_opengl.h
    trunk/blender/intern/cycles/util/util_system.cpp

Modified: trunk/blender/intern/cycles/blender/blender_sync.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_sync.cpp	2013-10-05 19:56:32 UTC (rev 60572)
+++ trunk/blender/intern/cycles/blender/blender_sync.cpp	2013-10-05 19:56:34 UTC (rev 60573)
@@ -34,6 +34,7 @@
 
 #include "util_debug.h"
 #include "util_foreach.h"
+#include "util_opengl.h"
 
 CCL_NAMESPACE_BEGIN
 
@@ -494,7 +495,7 @@
 		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;
 }

Modified: trunk/blender/intern/cycles/kernel/kernel_sse2.cpp
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_sse2.cpp	2013-10-05 19:56:32 UTC (rev 60572)
+++ trunk/blender/intern/cycles/kernel/kernel_sse2.cpp	2013-10-05 19:56:34 UTC (rev 60573)
@@ -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"

Modified: trunk/blender/intern/cycles/kernel/kernel_sse3.cpp
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_sse3.cpp	2013-10-05 19:56:32 UTC (rev 60572)
+++ trunk/blender/intern/cycles/kernel/kernel_sse3.cpp	2013-10-05 19:56:34 UTC (rev 60573)
@@ -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"

Modified: trunk/blender/intern/cycles/util/util_opengl.h
===================================================================
--- trunk/blender/intern/cycles/util/util_opengl.h	2013-10-05 19:56:32 UTC (rev 60572)
+++ trunk/blender/intern/cycles/util/util_opengl.h	2013-10-05 19:56:34 UTC (rev 60573)
@@ -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__ */
 

Modified: trunk/blender/intern/cycles/util/util_system.cpp
===================================================================
--- trunk/blender/intern/cycles/util/util_system.cpp	2013-10-05 19:56:32 UTC (rev 60572)
+++ trunk/blender/intern/cycles/util/util_system.cpp	2013-10-05 19:56:34 UTC (rev 60573)
@@ -116,8 +116,7 @@
 	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;




More information about the Bf-blender-cvs mailing list