[Mesa-dev] [PATCH 18/45] swr/rast: Move CallPrint() to a separate file

George Kyriazis george.kyriazis at intel.com
Fri Apr 13 19:01:58 UTC 2018


Needed work for jit code debug.
---
 src/gallium/drivers/swr/Makefile.sources           |  3 +-
 src/gallium/drivers/swr/meson.build                |  1 +
 .../drivers/swr/rasterizer/jitter/builder_misc.cpp | 22 +---------
 .../rasterizer/jitter/shader_lib/DebugOutput.cpp   | 51 ++++++++++++++++++++++
 4 files changed, 56 insertions(+), 21 deletions(-)
 create mode 100644 src/gallium/drivers/swr/rasterizer/jitter/shader_lib/DebugOutput.cpp

diff --git a/src/gallium/drivers/swr/Makefile.sources b/src/gallium/drivers/swr/Makefile.sources
index cbf7395..4924da1 100644
--- a/src/gallium/drivers/swr/Makefile.sources
+++ b/src/gallium/drivers/swr/Makefile.sources
@@ -151,7 +151,8 @@ JITTER_CXX_SOURCES := \
 	rasterizer/jitter/JitManager.cpp \
 	rasterizer/jitter/JitManager.h \
 	rasterizer/jitter/streamout_jit.cpp \
-	rasterizer/jitter/streamout_jit.h
+	rasterizer/jitter/streamout_jit.h \
+	rasterizer/jitter/shader_lib/DebugOutput.cpp
 
 MEMORY_CXX_SOURCES := \
 	rasterizer/memory/ClearTile.cpp \
diff --git a/src/gallium/drivers/swr/meson.build b/src/gallium/drivers/swr/meson.build
index b28abd6..3848232 100644
--- a/src/gallium/drivers/swr/meson.build
+++ b/src/gallium/drivers/swr/meson.build
@@ -79,6 +79,7 @@ files_swr_mesa = files(
   'rasterizer/jitter/JitManager.h',
   'rasterizer/jitter/streamout_jit.cpp',
   'rasterizer/jitter/streamout_jit.h',
+  'rasterizer/jitter/shader_lib/DebugOutput.cpp',
 )
 
 files_swr_arch = files(
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp b/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
index c266018..54987c7 100644
--- a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
+++ b/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
@@ -33,10 +33,10 @@
 
 #include <cstdarg>
 
+extern "C" void CallPrint(const char* fmt, ...);
+
 namespace SwrJit
 {
-    void __cdecl CallPrint(const char* fmt, ...);
-
     //////////////////////////////////////////////////////////////////////////
     /// @brief Convert an IEEE 754 32-bit single precision float to an
     ///        16 bit float with 5 exponent bits and a variable
@@ -846,24 +846,6 @@ namespace SwrJit
     /// @brief C functions called by LLVM IR
     //////////////////////////////////////////////////////////////////////////
 
-    //////////////////////////////////////////////////////////////////////////
-    /// @brief called in JIT code, inserted by PRINT
-    /// output to both stdout and visual studio debug console
-    void __cdecl CallPrint(const char* fmt, ...)
-    {
-        va_list args;
-        va_start(args, fmt);
-        vprintf(fmt, args);
-
-    #if defined( _WIN32 )
-        char strBuf[1024];
-        vsnprintf_s(strBuf, _TRUNCATE, fmt, args);
-        OutputDebugStringA(strBuf);
-    #endif
-
-        va_end(args);
-    }
-
     Value *Builder::VEXTRACTI128(Value* a, Constant* imm8)
     {
         bool flag = !imm8->isZeroValue();
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/shader_lib/DebugOutput.cpp b/src/gallium/drivers/swr/rasterizer/jitter/shader_lib/DebugOutput.cpp
new file mode 100644
index 0000000..54d45e6
--- /dev/null
+++ b/src/gallium/drivers/swr/rasterizer/jitter/shader_lib/DebugOutput.cpp
@@ -0,0 +1,51 @@
+/****************************************************************************
+* Copyright (C) 2014-2015 Intel Corporation.   All Rights Reserved.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice (including the next
+* paragraph) shall be included in all copies or substantial portions of the
+* Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+* IN THE SOFTWARE.
+*
+* @file DebugOutput.cpp
+*
+* @brief Shader support library implementation for printed Debug output
+*
+* Notes:
+*
+******************************************************************************/
+#include <stdarg.h>
+#include "common/os.h"
+
+
+//////////////////////////////////////////////////////////////////////////
+/// @brief called in JIT code, inserted by PRINT
+/// output to both stdout and visual studio debug console
+extern "C" void CallPrint(const char* fmt, ...)
+{
+    va_list args;
+    va_start(args, fmt);
+    vprintf(fmt, args);
+
+#if defined( _WIN32 )
+    char strBuf[1024];
+    vsnprintf_s(strBuf, _TRUNCATE, fmt, args);
+    OutputDebugStringA(strBuf);
+#endif
+
+    va_end(args);
+}
+
-- 
2.7.4



More information about the mesa-dev mailing list