diff --git a/.github/intel-llvm-mirror-base-commit b/.github/intel-llvm-mirror-base-commit index c704e24c48..c5fb88b0da 100644 --- a/.github/intel-llvm-mirror-base-commit +++ b/.github/intel-llvm-mirror-base-commit @@ -1 +1 @@ -571454167c03e22a43cba257d7937b188a681de6 +093fcb0d5171566ff5218962b841256412a329a8 diff --git a/source/adapters/level_zero/v2/common.hpp b/source/adapters/level_zero/v2/common.hpp index fc3dcd93ca..c54f7159c9 100644 --- a/source/adapters/level_zero/v2/common.hpp +++ b/source/adapters/level_zero/v2/common.hpp @@ -19,7 +19,8 @@ namespace v2 { namespace raii { -template +template struct ze_handle_wrapper { ze_handle_wrapper(bool ownZeHandle = true) : handle(nullptr), ownZeHandle(ownZeHandle) {} @@ -64,7 +65,8 @@ struct ze_handle_wrapper { } if (ownZeHandle && checkL0LoaderTeardown()) { - auto zeResult = destroy(handle); + ze_result_t zeResult = + ZE_CALL_NOCHECK_NAME(destroy, (handle), destroyName); // Gracefully handle the case that L0 was already unloaded. if (zeResult && (zeResult != ZE_RESULT_ERROR_UNINITIALIZED && zeResult != ZE_RESULT_ERROR_UNKNOWN)) @@ -92,23 +94,17 @@ struct ze_handle_wrapper { bool ownZeHandle; }; -using ze_kernel_handle_t = - ze_handle_wrapper<::ze_kernel_handle_t, zeKernelDestroy>; - -using ze_event_handle_t = - ze_handle_wrapper<::ze_event_handle_t, zeEventDestroy>; - -using ze_event_pool_handle_t = - ze_handle_wrapper<::ze_event_pool_handle_t, zeEventPoolDestroy>; - -using ze_context_handle_t = - ze_handle_wrapper<::ze_context_handle_t, zeContextDestroy>; - -using ze_command_list_handle_t = - ze_handle_wrapper<::ze_command_list_handle_t, zeCommandListDestroy>; - -using ze_image_handle_t = - ze_handle_wrapper<::ze_image_handle_t, zeImageDestroy>; +#define HANDLE_WRAPPER_TYPE(ZeHandleT, DestroyFunc) \ + inline constexpr char ZeHandleT##_destroyName[] = #DestroyFunc; \ + using ZeHandleT = \ + ze_handle_wrapper<::ZeHandleT, DestroyFunc, ZeHandleT##_destroyName>; + +HANDLE_WRAPPER_TYPE(ze_kernel_handle_t, zeKernelDestroy) +HANDLE_WRAPPER_TYPE(ze_event_handle_t, zeEventDestroy) +HANDLE_WRAPPER_TYPE(ze_event_pool_handle_t, zeEventPoolDestroy) +HANDLE_WRAPPER_TYPE(ze_context_handle_t, zeContextDestroy) +HANDLE_WRAPPER_TYPE(ze_command_list_handle_t, zeCommandListDestroy) +HANDLE_WRAPPER_TYPE(ze_image_handle_t, zeImageDestroy) } // namespace raii } // namespace v2 diff --git a/source/adapters/offload/adapter.cpp b/source/adapters/offload/adapter.cpp index 41fc4f5b44..6eb9cd7239 100644 --- a/source/adapters/offload/adapter.cpp +++ b/source/adapters/offload/adapter.cpp @@ -117,3 +117,20 @@ UR_APIEXPORT ur_result_t UR_APICALL urAdapterGetLastError(ur_adapter_handle_t, // "ADAPTER_SPECIFIC", which we never do return UR_RESULT_SUCCESS; } + +UR_APIEXPORT ur_result_t UR_APICALL urAdapterSetLoggerCallback( + ur_adapter_handle_t, ur_logger_callback_t pfnLoggerCallback, + void *pUserData, ur_logger_level_t level = UR_LOGGER_LEVEL_QUIET) { + + Adapter.Logger.setCallbackSink(pfnLoggerCallback, pUserData, level); + + return UR_RESULT_SUCCESS; +} + +UR_APIEXPORT ur_result_t UR_APICALL +urAdapterSetLoggerCallbackLevel(ur_adapter_handle_t, ur_logger_level_t level) { + + Adapter.Logger.setCallbackLevel(level); + + return UR_RESULT_SUCCESS; +} diff --git a/source/adapters/offload/ur_interface_loader.cpp b/source/adapters/offload/ur_interface_loader.cpp index c64dbfec06..87c7b67800 100644 --- a/source/adapters/offload/ur_interface_loader.cpp +++ b/source/adapters/offload/ur_interface_loader.cpp @@ -207,8 +207,8 @@ UR_DLLEXPORT ur_result_t UR_APICALL urGetAdapterProcAddrTable( pDdiTable->pfnRelease = urAdapterRelease; pDdiTable->pfnRetain = urAdapterRetain; pDdiTable->pfnGetLastError = urAdapterGetLastError; - pDdiTable->pfnSetLoggerCallback = nullptr; - pDdiTable->pfnSetLoggerCallbackLevel = nullptr; + pDdiTable->pfnSetLoggerCallback = urAdapterSetLoggerCallback; + pDdiTable->pfnSetLoggerCallbackLevel = urAdapterSetLoggerCallbackLevel; return UR_RESULT_SUCCESS; }