|
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