[Mesa-dev] [PATCH v2 18/45] swr/rast: Move CallPrint() to a separate file
George Kyriazis
george.kyriazis at intel.com
Wed Apr 18 01:31: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