swr: [rasterizer core] Disable inline function expansion
authorTim Rowley <timothy.o.rowley@intel.com>
Thu, 23 Mar 2017 00:20:42 +0000 (19:20 -0500)
committerTim Rowley <timothy.o.rowley@intel.com>
Tue, 28 Mar 2017 16:24:44 +0000 (11:24 -0500)
Disable expansion in windows Debug builds.

Reviewed-by: George Kyriazis <george.kyriazis@intel.com>
src/gallium/drivers/swr/rasterizer/common/os.h

index 71c4da3a59abb4e59e6cae70a50767f5f80836fa..ef00a255d316c8a1dec7e8924a13aac37ad25c9a 100644 (file)
 #endif
 
 #define OSALIGN(RWORD, WIDTH) __declspec(align(WIDTH)) RWORD
+
+#if defined(_DEBUG)
+// We compile Debug builds with inline function expansion enabled.  This allows
+// functions compiled with __forceinline to be inlined even in Debug builds.
+// The inline_depth(0) pragma below will disable inline function expansion for
+// normal INLINE / inline functions, but not for __forceinline functions.
+// Our SIMD function wrappers (see simdlib.hpp) use __forceinline even in
+// Debug builds.
+#define INLINE inline
+#pragma inline_depth(0)
+#else
 #define INLINE __forceinline
+#endif
 #define DEBUGBREAK __debugbreak()
 
 #define PRAGMA_WARNING_PUSH_DISABLE(...) \