swr/rast: Move CallPrint() to a separate file
authorGeorge Kyriazis <george.kyriazis@intel.com>
Fri, 16 Mar 2018 15:26:25 +0000 (10:26 -0500)
committerGeorge Kyriazis <george.kyriazis@intel.com>
Wed, 18 Apr 2018 15:51:38 +0000 (10:51 -0500)
Needed work for jit code debug.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
src/gallium/drivers/swr/Makefile.sources
src/gallium/drivers/swr/meson.build
src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
src/gallium/drivers/swr/rasterizer/jitter/shader_lib/DebugOutput.cpp [new file with mode: 0644]

index cbf73953911eea52bd90b3eedcfc136475bf0d5b..4924da1f778d755ad8a54837cfbe8c9c14166713 100644 (file)
@@ -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 \
index 91e03abbebc274f6bae66147784dab6056b7bc9b..6c0f7ae7a5108fa8541c03441673fa601f7ba64e 100644 (file)
@@ -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(
index c2660181fdcfefa151b91abd3f819b233e79aa8f..54987c77246f49fd45cf3a47f4b3abc0269382b5 100644 (file)
 
 #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 (file)
index 0000000..54d45e6
--- /dev/null
@@ -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);
+}
+