Mesa (master): swr: [rasterizer core] Disable inline function expansion

Tim Rowley torowley at kemper.freedesktop.org
Tue Mar 28 16:39:44 UTC 2017


Module: Mesa
Branch: master
Commit: 3974cfea2531b86fb394d8501b106e69f00c5f89
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3974cfea2531b86fb394d8501b106e69f00c5f89

Author: Tim Rowley <timothy.o.rowley at intel.com>
Date:   Wed Mar 22 19:20:42 2017 -0500

swr: [rasterizer core] Disable inline function expansion

Disable expansion in windows Debug builds.

Reviewed-by: George Kyriazis <george.kyriazis at intel.com>

---

 src/gallium/drivers/swr/rasterizer/common/os.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/gallium/drivers/swr/rasterizer/common/os.h b/src/gallium/drivers/swr/rasterizer/common/os.h
index 71c4da3a59..ef00a255d3 100644
--- a/src/gallium/drivers/swr/rasterizer/common/os.h
+++ b/src/gallium/drivers/swr/rasterizer/common/os.h
@@ -47,7 +47,19 @@
 #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(...) \




More information about the mesa-commit mailing list