3 #define KOMPUTE_LOG_LEVEL_TRACE 0
4 #define KOMPUTE_LOG_LEVEL_DEBUG 1
5 #define KOMPUTE_LOG_LEVEL_INFO 2
6 #define KOMPUTE_LOG_LEVEL_WARN 3
7 #define KOMPUTE_LOG_LEVEL_ERROR 4
8 #define KOMPUTE_LOG_LEVEL_CRITICAL 5
9 #define KOMPUTE_LOG_LEVEL_OFF 6
12 #if KOMPUTE_OPT_LOG_LEVEL_DISABLED
13 #define KP_LOG_TRACE(...)
14 #define KP_LOG_DEBUG(...)
15 #define KP_LOG_INFO(...)
16 #define KP_LOG_WARN(...)
17 #define KP_LOG_ERROR(...)
20 #if !KOMPUTE_OPT_USE_SPDLOG
21 #if VK_USE_PLATFORM_ANDROID_KHR
22 #include <android/log.h>
24 static const char* KOMPUTE_LOG_TAG =
"KomputeLog";
26 #if KOMPUTE_BUILD_PYTHON
27 #include <pybind11/pybind11.h>
28 namespace py = pybind11;
30 extern py::object kp_trace, kp_debug, kp_info, kp_warning, kp_error;
36 #include <spdlog/spdlog.h>
49 #if !KOMPUTE_OPT_USE_SPDLOG
52 #if KOMPUTE_OPT_ACTIVE_LOG_LEVEL <= KOMPUTE_LOG_LEVEL_TRACE
53 #if VK_USE_PLATFORM_ANDROID_KHR
54 #define KP_LOG_TRACE(...) \
55 ((void)__android_log_write( \
56 ANDROID_LOG_VERBOSE, KOMPUTE_LOG_TAG, fmt::format(__VA_ARGS__).c_str()))
58 #if KOMPUTE_BUILD_PYTHON
59 #define KP_LOG_DEBUG(...) kp_trace(fmt::format(__VA_ARGS__))
61 #define KP_LOG_TRACE(...) \
62 fmt::print("[{} {}] [trace] [{}:{}] {}\n", \
67 fmt::format(__VA_ARGS__))
71 #define KP_LOG_TRACE(...)
76 #if KOMPUTE_OPT_ACTIVE_LOG_LEVEL <= KOMPUTE_LOG_LEVEL_DEBUG
77 #if VK_USE_PLATFORM_ANDROID_KHR
78 #define KP_LOG_DEBUG(...) \
79 ((void)__android_log_write( \
80 ANDROID_LOG_DEBUG, KOMPUTE_LOG_TAG, fmt::format(__VA_ARGS__).c_str()))
82 #if KOMPUTE_BUILD_PYTHON
83 #define KP_LOG_DEBUG(...) kp_debug(fmt::format(__VA_ARGS__))
86 #define KP_LOG_DEBUG(...) \
87 fmt::print("[{} {}] [debug] [{}:{}] {}\n", \
92 fmt::format(__VA_ARGS__))
94 #define KP_LOG_DEBUG(...) \
95 fmt::print("[{} {}] [debug] [{}:{}] {}\n", \
100 fmt::format(__VA_ARGS__))
105 #define KP_LOG_DEBUG(...)
110 #if KOMPUTE_OPT_ACTIVE_LOG_LEVEL <= KOMPUTE_LOG_LEVEL_INFO
111 #if VK_USE_PLATFORM_ANDROID_KHR
112 #define KP_LOG_INFO(...) \
113 ((void)__android_log_write( \
114 ANDROID_LOG_INFO, KOMPUTE_LOG_TAG, fmt::format(__VA_ARGS__).c_str()))
116 #if KOMPUTE_BUILD_PYTHON
117 #define KP_LOG_DEBUG(...) kp_info(fmt::format(__VA_ARGS__))
119 #define KP_LOG_INFO(...) \
120 fmt::print("[{} {}] [info] [{}:{}] {}\n", \
125 fmt::format(__VA_ARGS__))
129 #define KP_LOG_INFO(...)
134 #if KOMPUTE_OPT_ACTIVE_LOG_LEVEL <= KOMPUTE_LOG_LEVEL_WARN
135 #if VK_USE_PLATFORM_ANDROID_KHR
136 #define KP_LOG_WARN(...) \
137 ((void)__android_log_write( \
138 ANDROID_LOG_WARN, KOMPUTE_LOG_TAG, fmt::format(__VA_ARGS__).c_str()))
140 #if KOMPUTE_BUILD_PYTHON
141 #define KP_LOG_DEBUG(...) kp_warning(fmt::format(__VA_ARGS__))
143 #define KP_LOG_WARN(...) \
144 fmt::print("[{} {}] [warn] [{}:{}] {}\n", \
149 fmt::format(__VA_ARGS__))
153 #define KP_LOG_WARN(...)
158 #if KOMPUTE_OPT_ACTIVE_LOG_LEVEL <= KOMPUTE_LOG_LEVEL_ERROR
159 #if VK_USE_PLATFORM_ANDROID_KHR
160 #define KP_LOG_ERROR(...) \
161 ((void)__android_log_write( \
162 ANDROID_LOG_ERROR, KOMPUTE_LOG_TAG, fmt::format(__VA_ARGS__).c_str()))
164 #if KOMPUTE_BUILD_PYTHON
165 #define KP_LOG_DEBUG(...) kp_error(fmt::format(__VA_ARGS__))
167 #define KP_LOG_ERROR(...) \
168 fmt::print("[{} {}] [error] [{}:{}] {}\n", \
173 fmt::format(__VA_ARGS__))
177 #define KP_LOG_ERROR(...)
182 #define KP_LOG_TRACE(...) SPDLOG_TRACE(__VA_ARGS__)
183 #define KP_LOG_DEBUG(...) SPDLOG_DEBUG(__VA_ARGS__)
184 #define KP_LOG_INFO(...) SPDLOG_INFO(__VA_ARGS__)
185 #define KP_LOG_WARN(...) SPDLOG_WARN(__VA_ARGS__)
186 #define KP_LOG_ERROR(...) SPDLOG_ERROR(__VA_ARGS__)
189 setLogLevel(spdlog::level::level_enum level);
191 spdlog::level::level_enum