|
18 | 18 | #include <mutex>
|
19 | 19 | #include <optional>
|
20 | 20 | #include <shared_mutex>
|
| 21 | +#include <sstream> |
21 | 22 | #include <string>
|
22 | 23 | #include <thread>
|
23 | 24 | #include <variant>
|
|
40 | 41 | UR_LOG(QUIET, "UR ---> {}", #Call); \
|
41 | 42 | ur_result_t Result = (Call); \
|
42 | 43 | if (PrintTrace) \
|
43 |
| - UR_LOG(QUIET, "UR <--- {}({})", #Call, getUrResultString(Result)); \ |
| 44 | + UR_LOG(QUIET, "UR <--- {}({})", #Call, Result); \ |
44 | 45 | if (Result != UR_RESULT_SUCCESS) \
|
45 | 46 | return Result; \
|
46 | 47 | }
|
|
52 | 53 | UR_LOG(QUIET, "UR ---> {}", #Call); \
|
53 | 54 | ur_result_t Result = (Call); \
|
54 | 55 | if (PrintTrace) \
|
55 |
| - UR_LOG(QUIET, "UR <--- {}({})", #Call, getUrResultString(Result)); \ |
| 56 | + UR_LOG(QUIET, "UR <--- {}({})", #Call, Result); \ |
56 | 57 | if (Result != UR_RESULT_SUCCESS) \
|
57 | 58 | throw Result; \
|
58 | 59 | }
|
|
67 | 68 | UR_LOG(QUIET, "UR <--- {}", #Call); \
|
68 | 69 | }
|
69 | 70 |
|
70 |
| -static auto getUrResultString = [](ur_result_t Result) { |
71 |
| - switch (Result) { |
72 |
| - case UR_RESULT_SUCCESS: |
73 |
| - return "UR_RESULT_SUCCESS"; |
74 |
| - case UR_RESULT_ERROR_INVALID_OPERATION: |
75 |
| - return "UR_RESULT_ERROR_INVALID_OPERATION"; |
76 |
| - case UR_RESULT_ERROR_INVALID_QUEUE_PROPERTIES: |
77 |
| - return "UR_RESULT_ERROR_INVALID_QUEUE_PROPERTIES"; |
78 |
| - case UR_RESULT_ERROR_INVALID_QUEUE: |
79 |
| - return "UR_RESULT_ERROR_INVALID_QUEUE"; |
80 |
| - case UR_RESULT_ERROR_INVALID_VALUE: |
81 |
| - return "UR_RESULT_ERROR_INVALID_VALUE"; |
82 |
| - case UR_RESULT_ERROR_INVALID_CONTEXT: |
83 |
| - return "UR_RESULT_ERROR_INVALID_CONTEXT"; |
84 |
| - case UR_RESULT_ERROR_INVALID_PLATFORM: |
85 |
| - return "UR_RESULT_ERROR_INVALID_PLATFORM"; |
86 |
| - case UR_RESULT_ERROR_INVALID_BINARY: |
87 |
| - return "UR_RESULT_ERROR_INVALID_BINARY"; |
88 |
| - case UR_RESULT_ERROR_INVALID_PROGRAM: |
89 |
| - return "UR_RESULT_ERROR_INVALID_PROGRAM"; |
90 |
| - case UR_RESULT_ERROR_INVALID_SAMPLER: |
91 |
| - return "UR_RESULT_ERROR_INVALID_SAMPLER"; |
92 |
| - case UR_RESULT_ERROR_INVALID_BUFFER_SIZE: |
93 |
| - return "UR_RESULT_ERROR_INVALID_BUFFER_SIZE"; |
94 |
| - case UR_RESULT_ERROR_INVALID_MEM_OBJECT: |
95 |
| - return "UR_RESULT_ERROR_INVALID_MEM_OBJECT"; |
96 |
| - case UR_RESULT_ERROR_INVALID_EVENT: |
97 |
| - return "UR_RESULT_ERROR_INVALID_EVENT"; |
98 |
| - case UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST: |
99 |
| - return "UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST"; |
100 |
| - case UR_RESULT_ERROR_MISALIGNED_SUB_BUFFER_OFFSET: |
101 |
| - return "UR_RESULT_ERROR_MISALIGNED_SUB_BUFFER_OFFSET"; |
102 |
| - case UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE: |
103 |
| - return "UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE"; |
104 |
| - case UR_RESULT_ERROR_COMPILER_NOT_AVAILABLE: |
105 |
| - return "UR_RESULT_ERROR_COMPILER_NOT_AVAILABLE"; |
106 |
| - case UR_RESULT_ERROR_PROFILING_INFO_NOT_AVAILABLE: |
107 |
| - return "UR_RESULT_ERROR_PROFILING_INFO_NOT_AVAILABLE"; |
108 |
| - case UR_RESULT_ERROR_DEVICE_NOT_FOUND: |
109 |
| - return "UR_RESULT_ERROR_DEVICE_NOT_FOUND"; |
110 |
| - case UR_RESULT_ERROR_INVALID_DEVICE: |
111 |
| - return "UR_RESULT_ERROR_INVALID_DEVICE"; |
112 |
| - case UR_RESULT_ERROR_DEVICE_LOST: |
113 |
| - return "UR_RESULT_ERROR_DEVICE_LOST"; |
114 |
| - case UR_RESULT_ERROR_DEVICE_REQUIRES_RESET: |
115 |
| - return "UR_RESULT_ERROR_DEVICE_REQUIRES_RESET"; |
116 |
| - case UR_RESULT_ERROR_DEVICE_IN_LOW_POWER_STATE: |
117 |
| - return "UR_RESULT_ERROR_DEVICE_IN_LOW_POWER_STATE"; |
118 |
| - case UR_RESULT_ERROR_DEVICE_PARTITION_FAILED: |
119 |
| - return "UR_RESULT_ERROR_DEVICE_PARTITION_FAILED"; |
120 |
| - case UR_RESULT_ERROR_INVALID_DEVICE_PARTITION_COUNT: |
121 |
| - return "UR_RESULT_ERROR_INVALID_DEVICE_PARTITION_COUNT"; |
122 |
| - case UR_RESULT_ERROR_INVALID_WORK_ITEM_SIZE: |
123 |
| - return "UR_RESULT_ERROR_INVALID_WORK_ITEM_SIZE"; |
124 |
| - case UR_RESULT_ERROR_INVALID_WORK_DIMENSION: |
125 |
| - return "UR_RESULT_ERROR_INVALID_WORK_DIMENSION"; |
126 |
| - case UR_RESULT_ERROR_INVALID_KERNEL: |
127 |
| - return "UR_RESULT_ERROR_INVALID_KERNEL"; |
128 |
| - case UR_RESULT_ERROR_INVALID_KERNEL_NAME: |
129 |
| - return "UR_RESULT_ERROR_INVALID_KERNEL_NAME"; |
130 |
| - case UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX: |
131 |
| - return "UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX"; |
132 |
| - case UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_SIZE: |
133 |
| - return "UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_SIZE"; |
134 |
| - case UR_RESULT_ERROR_INVALID_KERNEL_ATTRIBUTE_VALUE: |
135 |
| - return "UR_RESULT_ERROR_INVALID_KERNEL_ATTRIBUTE_VALUE"; |
136 |
| - case UR_RESULT_ERROR_INVALID_IMAGE_SIZE: |
137 |
| - return "UR_RESULT_ERROR_INVALID_IMAGE_SIZE"; |
138 |
| - case UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR: |
139 |
| - return "UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR"; |
140 |
| - case UR_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT: |
141 |
| - return "UR_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT"; |
142 |
| - case UR_RESULT_ERROR_MEM_OBJECT_ALLOCATION_FAILURE: |
143 |
| - return "UR_RESULT_ERROR_MEM_OBJECT_ALLOCATION_FAILURE"; |
144 |
| - case UR_RESULT_ERROR_INVALID_PROGRAM_EXECUTABLE: |
145 |
| - return "UR_RESULT_ERROR_INVALID_PROGRAM_EXECUTABLE"; |
146 |
| - case UR_RESULT_ERROR_UNINITIALIZED: |
147 |
| - return "UR_RESULT_ERROR_UNINITIALIZED"; |
148 |
| - case UR_RESULT_ERROR_OUT_OF_HOST_MEMORY: |
149 |
| - return "UR_RESULT_ERROR_OUT_OF_HOST_MEMORY"; |
150 |
| - case UR_RESULT_ERROR_OUT_OF_DEVICE_MEMORY: |
151 |
| - return "UR_RESULT_ERROR_OUT_OF_DEVICE_MEMORY"; |
152 |
| - case UR_RESULT_ERROR_OUT_OF_RESOURCES: |
153 |
| - return "UR_RESULT_ERROR_OUT_OF_RESOURCES"; |
154 |
| - case UR_RESULT_ERROR_PROGRAM_BUILD_FAILURE: |
155 |
| - return "UR_RESULT_ERROR_PROGRAM_BUILD_FAILURE"; |
156 |
| - case UR_RESULT_ERROR_PROGRAM_LINK_FAILURE: |
157 |
| - return "UR_RESULT_ERROR_PROGRAM_LINK_FAILURE"; |
158 |
| - case UR_RESULT_ERROR_UNSUPPORTED_VERSION: |
159 |
| - return "UR_RESULT_ERROR_UNSUPPORTED_VERSION"; |
160 |
| - case UR_RESULT_ERROR_UNSUPPORTED_FEATURE: |
161 |
| - return "UR_RESULT_ERROR_UNSUPPORTED_FEATURE"; |
162 |
| - case UR_RESULT_ERROR_INVALID_ARGUMENT: |
163 |
| - return "UR_RESULT_ERROR_INVALID_ARGUMENT"; |
164 |
| - case UR_RESULT_ERROR_INVALID_NULL_HANDLE: |
165 |
| - return "UR_RESULT_ERROR_INVALID_NULL_HANDLE"; |
166 |
| - case UR_RESULT_ERROR_HANDLE_OBJECT_IN_USE: |
167 |
| - return "UR_RESULT_ERROR_HANDLE_OBJECT_IN_USE"; |
168 |
| - case UR_RESULT_ERROR_INVALID_NULL_POINTER: |
169 |
| - return "UR_RESULT_ERROR_INVALID_NULL_POINTER"; |
170 |
| - case UR_RESULT_ERROR_INVALID_SIZE: |
171 |
| - return "UR_RESULT_ERROR_INVALID_SIZE"; |
172 |
| - case UR_RESULT_ERROR_UNSUPPORTED_SIZE: |
173 |
| - return "UR_RESULT_ERROR_UNSUPPORTED_SIZE"; |
174 |
| - case UR_RESULT_ERROR_UNSUPPORTED_ALIGNMENT: |
175 |
| - return "UR_RESULT_ERROR_UNSUPPORTED_ALIGNMENT"; |
176 |
| - case UR_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT: |
177 |
| - return "UR_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT"; |
178 |
| - case UR_RESULT_ERROR_INVALID_ENUMERATION: |
179 |
| - return "UR_RESULT_ERROR_INVALID_ENUMERATION"; |
180 |
| - case UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION: |
181 |
| - return "UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION"; |
182 |
| - case UR_RESULT_ERROR_INVALID_NATIVE_BINARY: |
183 |
| - return "UR_RESULT_ERROR_INVALID_NATIVE_BINARY"; |
184 |
| - case UR_RESULT_ERROR_INVALID_GLOBAL_NAME: |
185 |
| - return "UR_RESULT_ERROR_INVALID_GLOBAL_NAME"; |
186 |
| - case UR_RESULT_ERROR_FUNCTION_ADDRESS_NOT_AVAILABLE: |
187 |
| - return "UR_RESULT_ERROR_FUNCTION_ADDRESS_NOT_AVAILABLE"; |
188 |
| - case UR_RESULT_ERROR_INVALID_GROUP_SIZE_DIMENSION: |
189 |
| - return "UR_RESULT_ERROR_INVALID_GROUP_SIZE_DIMENSION"; |
190 |
| - case UR_RESULT_ERROR_INVALID_GLOBAL_WIDTH_DIMENSION: |
191 |
| - return "UR_RESULT_ERROR_INVALID_GLOBAL_WIDTH_DIMENSION"; |
192 |
| - case UR_RESULT_ERROR_PROGRAM_UNLINKED: |
193 |
| - return "UR_RESULT_ERROR_PROGRAM_UNLINKED"; |
194 |
| - case UR_RESULT_ERROR_OVERLAPPING_REGIONS: |
195 |
| - return "UR_RESULT_ERROR_OVERLAPPING_REGIONS"; |
196 |
| - case UR_RESULT_ERROR_INVALID_HOST_PTR: |
197 |
| - return "UR_RESULT_ERROR_INVALID_HOST_PTR"; |
198 |
| - case UR_RESULT_ERROR_INVALID_USM_SIZE: |
199 |
| - return "UR_RESULT_ERROR_INVALID_USM_SIZE"; |
200 |
| - case UR_RESULT_ERROR_OBJECT_ALLOCATION_FAILURE: |
201 |
| - return "UR_RESULT_ERROR_OBJECT_ALLOCATION_FAILURE"; |
202 |
| - case UR_RESULT_ERROR_ADAPTER_SPECIFIC: |
203 |
| - return "UR_RESULT_ERROR_ADAPTER_SPECIFIC"; |
204 |
| - default: |
205 |
| - return "UR_RESULT_ERROR_UNKNOWN"; |
206 |
| - } |
207 |
| -}; |
208 |
| - |
209 | 71 | template <class To, class From> To ur_cast(From Value) {
|
210 | 72 | // TODO: see if more sanity checks are possible.
|
211 | 73 | assert(sizeof(From) == sizeof(To));
|
|
0 commit comments