Skip to content

Commit 80168b1

Browse files
refactor: Set external semaphore version in L0
Related-To: NEO-14295 Signed-off-by: Raiyan Latif <raiyan.latif@intel.com>
1 parent 570e057 commit 80168b1

22 files changed

+222
-438
lines changed

level_zero/api/core/ze_cmdlist_api_entrypoints.h

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2020-2024 Intel Corporation
2+
* Copyright (C) 2020-2025 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -106,6 +106,28 @@ ze_result_t zeCommandListImmediateAppendCommandListsExp(
106106
return L0::CommandList::fromHandle(hCommandListImmediate)->appendCommandLists(numCommandLists, phCommandLists, hSignalEvent, numWaitEvents, phWaitEvents);
107107
}
108108

109+
ze_result_t zeCommandListAppendSignalExternalSemaphoreExt(
110+
ze_command_list_handle_t hCommandList,
111+
uint32_t numSemaphores,
112+
ze_external_semaphore_ext_handle_t *phSemaphores,
113+
ze_external_semaphore_signal_params_ext_t *signalParams,
114+
ze_event_handle_t hSignalEvent,
115+
uint32_t numWaitEvents,
116+
ze_event_handle_t *phWaitEvents) {
117+
return L0::CommandList::fromHandle(hCommandList)->appendSignalExternalSemaphores(numSemaphores, phSemaphores, signalParams, hSignalEvent, numWaitEvents, phWaitEvents);
118+
}
119+
120+
ze_result_t zeCommandListAppendWaitExternalSemaphoreExt(
121+
ze_command_list_handle_t hCommandList,
122+
uint32_t numSemaphores,
123+
ze_external_semaphore_ext_handle_t *phSemaphores,
124+
ze_external_semaphore_wait_params_ext_t *waitParams,
125+
ze_event_handle_t hSignalEvent,
126+
uint32_t numWaitEvents,
127+
ze_event_handle_t *phWaitEvents) {
128+
return L0::CommandList::fromHandle(hCommandList)->appendWaitExternalSemaphores(numSemaphores, phSemaphores, waitParams, hSignalEvent, numWaitEvents, phWaitEvents);
129+
}
130+
109131
} // namespace L0
110132

111133
extern "C" {
@@ -220,4 +242,26 @@ ZE_APIEXPORT ze_result_t ZE_APICALL zeCommandListImmediateAppendCommandListsExp(
220242
numWaitEvents,
221243
phWaitEvents);
222244
}
245+
246+
ZE_APIEXPORT ze_result_t ZE_APICALL zeCommandListAppendSignalExternalSemaphoreExt(
247+
ze_command_list_handle_t hCommandList,
248+
uint32_t numSemaphores,
249+
ze_external_semaphore_ext_handle_t *phSemaphores,
250+
ze_external_semaphore_signal_params_ext_t *signalParams,
251+
ze_event_handle_t hSignalEvent,
252+
uint32_t numWaitEvents,
253+
ze_event_handle_t *phWaitEvents) {
254+
return L0::CommandList::fromHandle(hCommandList)->appendSignalExternalSemaphores(numSemaphores, phSemaphores, signalParams, hSignalEvent, numWaitEvents, phWaitEvents);
255+
}
256+
257+
ZE_APIEXPORT ze_result_t ZE_APICALL zeCommandListAppendWaitExternalSemaphoreExt(
258+
ze_command_list_handle_t hCommandList,
259+
uint32_t numSemaphores,
260+
ze_external_semaphore_ext_handle_t *phSemaphores,
261+
ze_external_semaphore_wait_params_ext_t *waitParams,
262+
ze_event_handle_t hSignalEvent,
263+
uint32_t numWaitEvents,
264+
ze_event_handle_t *phWaitEvents) {
265+
return L0::CommandList::fromHandle(hCommandList)->appendWaitExternalSemaphores(numSemaphores, phSemaphores, waitParams, hSignalEvent, numWaitEvents, phWaitEvents);
266+
}
223267
}

level_zero/api/core/ze_device_api_entrypoints.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "level_zero/core/source/device/device.h"
1111
#include "level_zero/core/source/driver/driver.h"
1212
#include "level_zero/core/source/driver/driver_handle.h"
13+
#include "level_zero/core/source/semaphore/external_semaphore_imp.h"
1314
#include <level_zero/ze_api.h>
1415
#include <level_zero/ze_ddi.h>
1516

@@ -138,6 +139,18 @@ ze_result_t zeDeviceGetRootDevice(
138139
return L0::Device::fromHandle(hDevice)->getRootDevice(phRootDevice);
139140
}
140141

142+
ze_result_t zeDeviceImportExternalSemaphoreExt(
143+
ze_device_handle_t hDevice,
144+
const ze_external_semaphore_ext_desc_t *desc,
145+
ze_external_semaphore_ext_handle_t *phSemaphore) {
146+
return L0::ExternalSemaphore::importExternalSemaphore(hDevice, desc, phSemaphore);
147+
}
148+
149+
ze_result_t zeDeviceReleaseExternalSemaphoreExt(
150+
ze_external_semaphore_ext_handle_t hSemaphore) {
151+
return L0::ExternalSemaphoreImp::fromHandle(hSemaphore)->releaseExternalSemaphore();
152+
}
153+
141154
} // namespace L0
142155

143156
extern "C" {
@@ -295,4 +308,16 @@ ze_result_t zeDevicePciGetPropertiesExt(
295308
ze_pci_ext_properties_t *pPciProperties) {
296309
return L0::zeDevicePciGetPropertiesExt(hDevice, pPciProperties);
297310
}
311+
312+
ZE_APIEXPORT ze_result_t ZE_APICALL zeDeviceImportExternalSemaphoreExt(
313+
ze_device_handle_t hDevice,
314+
const ze_external_semaphore_ext_desc_t *desc,
315+
ze_external_semaphore_ext_handle_t *phSemaphore) {
316+
return L0::ExternalSemaphore::importExternalSemaphore(hDevice, desc, phSemaphore);
317+
}
318+
319+
ZE_APIEXPORT ze_result_t ZE_APICALL zeDeviceReleaseExternalSemaphoreExt(
320+
ze_external_semaphore_ext_handle_t hSemaphore) {
321+
return L0::ExternalSemaphoreImp::fromHandle(hSemaphore)->releaseExternalSemaphore();
322+
}
298323
}

level_zero/api/driver_experimental/public/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ target_sources(${L0_STATIC_LIB_NAME}
99
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
1010
${CMAKE_CURRENT_SOURCE_DIR}/zex_cmdlist.cpp
1111
${CMAKE_CURRENT_SOURCE_DIR}/zex_context.cpp
12-
${CMAKE_CURRENT_SOURCE_DIR}/zex_device.cpp
1312
${CMAKE_CURRENT_SOURCE_DIR}/zex_driver.cpp
1413
${CMAKE_CURRENT_SOURCE_DIR}/zex_event.cpp
1514
${CMAKE_CURRENT_SOURCE_DIR}/zex_memory.cpp

level_zero/api/driver_experimental/public/zex_cmdlist.cpp

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -71,28 +71,4 @@ zexCommandListAppendWriteToMemory(
7171
return ZE_RESULT_ERROR_UNKNOWN;
7272
}
7373
}
74-
} // namespace L0
75-
76-
ze_result_t ZE_APICALL
77-
zeIntelCommandListAppendWaitExternalSemaphoresExp(
78-
ze_command_list_handle_t hCmdList,
79-
unsigned int numExternalSemaphores,
80-
const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
81-
const ze_intel_external_semaphore_wait_params_exp_t *params,
82-
ze_event_handle_t hSignalEvent,
83-
uint32_t numWaitEvents,
84-
ze_event_handle_t *phWaitEvents) {
85-
return L0::CommandList::fromHandle(hCmdList)->appendWaitExternalSemaphores(numExternalSemaphores, hSemaphores, params, hSignalEvent, numWaitEvents, phWaitEvents);
86-
}
87-
88-
ze_result_t ZE_APICALL
89-
zeIntelCommandListAppendSignalExternalSemaphoresExp(
90-
ze_command_list_handle_t hCmdList,
91-
size_t numExternalSemaphores,
92-
const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
93-
const ze_intel_external_semaphore_signal_params_exp_t *params,
94-
ze_event_handle_t hSignalEvent,
95-
uint32_t numWaitEvents,
96-
ze_event_handle_t *phWaitEvents) {
97-
return L0::CommandList::fromHandle(hCmdList)->appendSignalExternalSemaphores(numExternalSemaphores, hSemaphores, params, hSignalEvent, numWaitEvents, phWaitEvents);
98-
}
74+
} // namespace L0

level_zero/api/driver_experimental/public/zex_device.cpp

Lines changed: 0 additions & 23 deletions
This file was deleted.

level_zero/core/source/cmdlist/cmdlist.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,11 @@ struct CommandList : _ze_command_list_handle_t {
173173
virtual ze_result_t appendWaitOnMemory(void *desc, void *ptr, uint64_t data, ze_event_handle_t signalEventHandle, bool useQwordData) = 0;
174174
virtual ze_result_t appendWriteToMemory(void *desc, void *ptr,
175175
uint64_t data) = 0;
176-
virtual ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
177-
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
176+
virtual ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
177+
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
178178
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) = 0;
179-
virtual ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
180-
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
179+
virtual ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
180+
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
181181
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) = 0;
182182
virtual ze_result_t hostSynchronize(uint64_t timeout) = 0;
183183

level_zero/core/source/cmdlist/cmdlist_hw.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,11 @@ struct CommandListCoreFamily : public CommandListImp {
174174
ze_result_t appendWriteToMemory(void *desc, void *ptr,
175175
uint64_t data) override;
176176

177-
ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
178-
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
177+
ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
178+
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
179179
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) override;
180-
ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
181-
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
180+
ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
181+
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
182182
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) override;
183183

184184
ze_result_t appendQueryKernelTimestamps(uint32_t numEvents, ze_event_handle_t *phEvents, void *dstptr,

level_zero/core/source/cmdlist/cmdlist_hw.inl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3898,15 +3898,15 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWriteToMemory(void *desc
38983898
}
38993899

39003900
template <GFXCORE_FAMILY gfxCoreFamily>
3901-
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
3902-
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
3901+
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
3902+
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
39033903
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
39043904
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
39053905
}
39063906

39073907
template <GFXCORE_FAMILY gfxCoreFamily>
3908-
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
3909-
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
3908+
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
3909+
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
39103910
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
39113911
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
39123912
}

level_zero/core/source/cmdlist/cmdlist_hw_immediate.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,11 @@ struct CommandListCoreFamilyImmediate : public CommandListCoreFamily<gfxCoreFami
176176
ze_result_t appendWriteToMemory(void *desc, void *ptr,
177177
uint64_t data) override;
178178

179-
ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
180-
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
179+
ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
180+
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
181181
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) override;
182-
ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
183-
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
182+
ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
183+
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
184184
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) override;
185185

186186
ze_result_t hostSynchronize(uint64_t timeout) override;

level_zero/core/source/cmdlist/cmdlist_hw_immediate.inl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,8 +1006,8 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWriteToMemory(v
10061006
}
10071007

10081008
template <GFXCORE_FAMILY gfxCoreFamily>
1009-
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
1010-
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
1009+
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
1010+
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
10111011
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
10121012

10131013
checkAvailableSpace(0, false, commonImmediateCommandSize, false);
@@ -1051,8 +1051,8 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWaitExternalSem
10511051
}
10521052

10531053
template <GFXCORE_FAMILY gfxCoreFamily>
1054-
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
1055-
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
1054+
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
1055+
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
10561056
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
10571057

10581058
checkAvailableSpace(0, false, commonImmediateCommandSize, false);

0 commit comments

Comments
 (0)