aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/swr/rasterizer
diff options
context:
space:
mode:
authorGeorge Kyriazis <[email protected]>2018-03-16 10:26:25 -0500
committerGeorge Kyriazis <[email protected]>2018-04-18 10:51:38 -0500
commitf36026ce2e5dfb5ea010e0d0988f140f50b666dd (patch)
tree31e5519f666f169614eb08d3576bda2845eff578 /src/gallium/drivers/swr/rasterizer
parent67c8bb4db7e2d5a294a1e362d8b242f38767da1e (diff)
swr/rast: Move CallPrint() to a separate file
Needed work for jit code debug. Reviewed-by: Bruce Cherniak <[email protected]>
Diffstat (limited to 'src/gallium/drivers/swr/rasterizer')
-rw-r--r--src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp22
-rw-r--r--src/gallium/drivers/swr/rasterizer/jitter/shader_lib/DebugOutput.cpp51
2 files changed, 53 insertions, 20 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp b/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp
index c2660181fdc..54987c77246 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 00000000000..54d45e6bc4c
--- /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);
+}
+