From b18acc26b706115b6416e73b5bb763e0b1f211ab Mon Sep 17 00:00:00 2001 From: "Dunajski, Bartosz" Date: Thu, 14 Dec 2023 11:29:10 +0000 Subject: [PATCH] feature: new API to create and export counter-based Event Related-To: NEO-8145 Signed-off-by: Dunajski, Bartosz --- .../driver_experimental/public/CMakeLists.txt | 4 ++- .../api/driver_experimental/public/zex_api.h | 3 +- .../driver_experimental/public/zex_event.cpp | 22 ++++++++++++++ .../driver_experimental/public/zex_event.h | 30 +++++++++++++++++++ .../get_extension_function_lookup_map.cpp | 3 ++ 5 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 level_zero/api/driver_experimental/public/zex_event.cpp create mode 100644 level_zero/api/driver_experimental/public/zex_event.h diff --git a/level_zero/api/driver_experimental/public/CMakeLists.txt b/level_zero/api/driver_experimental/public/CMakeLists.txt index d1c0fcadfd..e098b7a70c 100644 --- a/level_zero/api/driver_experimental/public/CMakeLists.txt +++ b/level_zero/api/driver_experimental/public/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2020-2023 Intel Corporation +# Copyright (C) 2020-2024 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -13,6 +13,8 @@ target_sources(${L0_STATIC_LIB_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/zex_common.h ${CMAKE_CURRENT_SOURCE_DIR}/zex_driver.cpp ${CMAKE_CURRENT_SOURCE_DIR}/zex_driver.h + ${CMAKE_CURRENT_SOURCE_DIR}/zex_event.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/zex_event.h ${CMAKE_CURRENT_SOURCE_DIR}/zex_memory.cpp ${CMAKE_CURRENT_SOURCE_DIR}/zex_memory.h ${CMAKE_CURRENT_SOURCE_DIR}/zex_module.cpp diff --git a/level_zero/api/driver_experimental/public/zex_api.h b/level_zero/api/driver_experimental/public/zex_api.h index d6e9d38519..27f7391a3e 100644 --- a/level_zero/api/driver_experimental/public/zex_api.h +++ b/level_zero/api/driver_experimental/public/zex_api.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022-2023 Intel Corporation + * Copyright (C) 2022-2024 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -20,6 +20,7 @@ #include "level_zero/api/driver_experimental/public/zex_cmdlist.h" #include "zex_driver.h" +#include "zex_event.h" #include "zex_memory.h" #include "zex_module.h" diff --git a/level_zero/api/driver_experimental/public/zex_event.cpp b/level_zero/api/driver_experimental/public/zex_event.cpp new file mode 100644 index 0000000000..1c50f508cc --- /dev/null +++ b/level_zero/api/driver_experimental/public/zex_event.cpp @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2023-2024 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "level_zero/api/driver_experimental/public/zex_event.h" + +namespace L0 { + +ZE_APIEXPORT ze_result_t ZE_APICALL +zexEventGetDeviceAddress(ze_event_handle_t event, uint64_t *completionValue, uint64_t *address) { + return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE; +} + +ZE_APIEXPORT ze_result_t ZE_APICALL +zexCounterBasedEventCreate(ze_context_handle_t hContext, ze_device_handle_t hDevice, uint64_t *deviceAddress, uint64_t *hostAddress, uint64_t completionValue, const ze_event_desc_t *desc, ze_event_handle_t *phEvent) { + return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE; +} + +} // namespace L0 diff --git a/level_zero/api/driver_experimental/public/zex_event.h b/level_zero/api/driver_experimental/public/zex_event.h new file mode 100644 index 0000000000..86611a9305 --- /dev/null +++ b/level_zero/api/driver_experimental/public/zex_event.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2023-2024 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#pragma once +#include "level_zero/api/driver_experimental/public/zex_common.h" +#include + +namespace L0 { + +ZE_APIEXPORT ze_result_t ZE_APICALL +zexEventGetDeviceAddress( + ze_event_handle_t event, + uint64_t *completionValue, + uint64_t *address); + +ZE_APIEXPORT ze_result_t ZE_APICALL +zexCounterBasedEventCreate( + ze_context_handle_t hContext, + ze_device_handle_t hDevice, + uint64_t *deviceAddress, + uint64_t *hostAddress, + uint64_t completionValue, + const ze_event_desc_t *desc, + ze_event_handle_t *phEvent); + +} // namespace L0 diff --git a/level_zero/core/source/get_extension_function_lookup_map.cpp b/level_zero/core/source/get_extension_function_lookup_map.cpp index 04ea7ec39d..0c6043d8c9 100644 --- a/level_zero/core/source/get_extension_function_lookup_map.cpp +++ b/level_zero/core/source/get_extension_function_lookup_map.cpp @@ -26,6 +26,9 @@ std::unordered_map getExtensionFunctionsLookupMap() { addToMap(lookupMap, zexCommandListAppendWaitOnMemory); addToMap(lookupMap, zexCommandListAppendWaitOnMemory64); addToMap(lookupMap, zexCommandListAppendWriteToMemory); + + addToMap(lookupMap, zexCounterBasedEventCreate); + addToMap(lookupMap, zexEventGetDeviceAddress); #undef addToMap return lookupMap;