Skip to content

Commit 9c8d1d7

Browse files
nrspruitAlexeySachkov
authored andcommitted
[UR][L0] Remove Driver Exp Implementation of External Semaphore (#19835)
- Intel L0 GPU Driver no longer supports the Driver Exp Implementation of External Semaphore and the code has been removed from the codebase, therefore the support needs to be removed from the adapter to allow compiling with newer ze_intel_gpu.h headers. - L0 Spec implementation is the only version required for customer support. Signed-off-by: Neil R. Spruit <[email protected]>
1 parent 4851b0b commit 9c8d1d7

File tree

5 files changed

+73
-269
lines changed

5 files changed

+73
-269
lines changed

unified-runtime/source/adapters/level_zero/image.cpp

Lines changed: 19 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -136,44 +136,15 @@ ur_result_t urBindlessImagesWaitExternalSemaphoreExp(
136136
const auto &ZeCommandList = CommandList->first;
137137
const auto &WaitList = (*Event)->WaitList;
138138

139-
if (UrPlatform->ZeExternalSemaphoreExt.LoaderExtension) {
140-
ze_external_semaphore_wait_params_ext_t WaitParams = {
141-
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WAIT_PARAMS_EXT, nullptr, 0};
142-
WaitParams.value = hasValue ? waitValue : 0;
143-
ze_external_semaphore_ext_handle_t hExtSemaphore =
144-
reinterpret_cast<ze_external_semaphore_ext_handle_t>(hSemaphore);
145-
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt
146-
.zexCommandListAppendWaitExternalSemaphoresExp,
147-
(ZeCommandList, 1, &hExtSemaphore, &WaitParams, ZeEvent,
148-
WaitList.Length, WaitList.ZeEventList));
149-
} else {
150-
ze_command_list_handle_t translatedCommandList;
151-
ZE2UR_CALL(zelLoaderTranslateHandle,
152-
(ZEL_HANDLE_COMMAND_LIST, ZeCommandList,
153-
(void **)&translatedCommandList));
154-
ze_event_handle_t translatedEvent = ZeEvent;
155-
if (ZeEvent) {
156-
ZE2UR_CALL(zelLoaderTranslateHandle,
157-
(ZEL_HANDLE_EVENT, ZeEvent, (void **)&translatedEvent));
158-
}
159-
std::vector<ze_event_handle_t> EventHandles(WaitList.Length + 1, nullptr);
160-
if (WaitList.Length > 0) {
161-
for (size_t i = 0; i < WaitList.Length; i++) {
162-
ze_event_handle_t ZeEvent = WaitList.ZeEventList[i];
163-
ZE2UR_CALL(zelLoaderTranslateHandle,
164-
(ZEL_HANDLE_EVENT, ZeEvent, (void **)&EventHandles[i + 1]));
165-
}
166-
}
167-
ze_intel_external_semaphore_wait_params_exp_t WaitParams = {
168-
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WAIT_PARAMS_EXP, nullptr, 0};
169-
WaitParams.value = hasValue ? waitValue : 0;
170-
const ze_intel_external_semaphore_exp_handle_t hExtSemaphore =
171-
reinterpret_cast<ze_intel_external_semaphore_exp_handle_t>(hSemaphore);
172-
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt
173-
.zexExpCommandListAppendWaitExternalSemaphoresExp,
174-
(translatedCommandList, 1, &hExtSemaphore, &WaitParams,
175-
translatedEvent, WaitList.Length, EventHandles.data()));
176-
}
139+
ze_external_semaphore_wait_params_ext_t WaitParams = {
140+
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WAIT_PARAMS_EXT, nullptr, 0};
141+
WaitParams.value = hasValue ? waitValue : 0;
142+
ze_external_semaphore_ext_handle_t hExtSemaphore =
143+
reinterpret_cast<ze_external_semaphore_ext_handle_t>(hSemaphore);
144+
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt
145+
.zexCommandListAppendWaitExternalSemaphoresExp,
146+
(ZeCommandList, 1, &hExtSemaphore, &WaitParams, ZeEvent,
147+
WaitList.Length, WaitList.ZeEventList));
177148

178149
return UR_RESULT_SUCCESS;
179150
}
@@ -221,47 +192,16 @@ ur_result_t urBindlessImagesSignalExternalSemaphoreExp(
221192
const auto &ZeCommandList = CommandList->first;
222193
const auto &WaitList = (*Event)->WaitList;
223194

224-
if (UrPlatform->ZeExternalSemaphoreExt.LoaderExtension) {
225-
ze_external_semaphore_signal_params_ext_t SignalParams = {
226-
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_EXT, nullptr, 0};
227-
SignalParams.value = hasValue ? signalValue : 0;
228-
ze_external_semaphore_ext_handle_t hExtSemaphore =
229-
reinterpret_cast<ze_external_semaphore_ext_handle_t>(hSemaphore);
230-
231-
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt
232-
.zexCommandListAppendSignalExternalSemaphoresExp,
233-
(ZeCommandList, 1, &hExtSemaphore, &SignalParams, ZeEvent,
234-
WaitList.Length, WaitList.ZeEventList));
235-
} else {
236-
ze_intel_external_semaphore_signal_params_exp_t SignalParams = {
237-
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_EXP, nullptr,
238-
0};
239-
SignalParams.value = hasValue ? signalValue : 0;
240-
const ze_intel_external_semaphore_exp_handle_t hExtSemaphore =
241-
reinterpret_cast<ze_intel_external_semaphore_exp_handle_t>(hSemaphore);
242-
243-
ze_command_list_handle_t translatedCommandList;
244-
ZE2UR_CALL(zelLoaderTranslateHandle,
245-
(ZEL_HANDLE_COMMAND_LIST, ZeCommandList,
246-
(void **)&translatedCommandList));
247-
ze_event_handle_t translatedEvent = ZeEvent;
248-
if (ZeEvent) {
249-
ZE2UR_CALL(zelLoaderTranslateHandle,
250-
(ZEL_HANDLE_EVENT, ZeEvent, (void **)&translatedEvent));
251-
}
252-
std::vector<ze_event_handle_t> EventHandles(WaitList.Length + 1, nullptr);
253-
if (WaitList.Length > 0) {
254-
for (size_t i = 0; i < WaitList.Length; i++) {
255-
ze_event_handle_t ZeEvent = WaitList.ZeEventList[i];
256-
ZE2UR_CALL(zelLoaderTranslateHandle,
257-
(ZEL_HANDLE_EVENT, ZeEvent, (void **)&EventHandles[i + 1]));
258-
}
259-
}
260-
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt
261-
.zexExpCommandListAppendSignalExternalSemaphoresExp,
262-
(translatedCommandList, 1, &hExtSemaphore, &SignalParams,
263-
translatedEvent, WaitList.Length, EventHandles.data()));
264-
}
195+
ze_external_semaphore_signal_params_ext_t SignalParams = {
196+
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_EXT, nullptr, 0};
197+
SignalParams.value = hasValue ? signalValue : 0;
198+
ze_external_semaphore_ext_handle_t hExtSemaphore =
199+
reinterpret_cast<ze_external_semaphore_ext_handle_t>(hSemaphore);
200+
201+
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt
202+
.zexCommandListAppendSignalExternalSemaphoresExp,
203+
(ZeCommandList, 1, &hExtSemaphore, &SignalParams, ZeEvent,
204+
WaitList.Length, WaitList.ZeEventList));
265205

266206
return UR_RESULT_SUCCESS;
267207
}

unified-runtime/source/adapters/level_zero/image_common.cpp

Lines changed: 52 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,126 +1358,60 @@ ur_result_t urBindlessImagesImportExternalSemaphoreExp(
13581358
" {} function not supported!", __FUNCTION__);
13591359
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
13601360
}
1361-
if (UrPlatform->ZeExternalSemaphoreExt.LoaderExtension) {
1362-
ze_external_semaphore_ext_desc_t SemDesc = {
1363-
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_EXT_DESC, nullptr,
1364-
ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_FD};
1365-
ze_external_semaphore_ext_handle_t ExtSemaphoreHandle;
1366-
ze_external_semaphore_fd_ext_desc_t FDExpDesc = {
1367-
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_FD_EXT_DESC, nullptr, 0};
1368-
ze_external_semaphore_win32_ext_desc_t Win32ExpDesc = {
1369-
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC, nullptr, nullptr,
1370-
nullptr};
1371-
void *pNext = const_cast<void *>(pExternalSemaphoreDesc->pNext);
1372-
while (pNext != nullptr) {
1373-
const ur_base_desc_t *BaseDesc =
1374-
static_cast<const ur_base_desc_t *>(pNext);
1375-
if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR) {
1376-
auto FileDescriptor =
1377-
static_cast<const ur_exp_file_descriptor_t *>(pNext);
1378-
FDExpDesc.fd = FileDescriptor->fd;
1379-
SemDesc.pNext = &FDExpDesc;
1380-
switch (semHandleType) {
1381-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_OPAQUE_FD:
1382-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_FD;
1383-
break;
1384-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_TIMELINE_FD:
1385-
SemDesc.flags =
1386-
ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_VK_TIMELINE_SEMAPHORE_FD;
1387-
break;
1388-
default:
1389-
return UR_RESULT_ERROR_INVALID_VALUE;
1390-
}
1391-
} else if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE) {
1392-
SemDesc.pNext = &Win32ExpDesc;
1393-
auto Win32Handle = static_cast<const ur_exp_win32_handle_t *>(pNext);
1394-
switch (semHandleType) {
1395-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_WIN32_NT:
1396-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
1397-
break;
1398-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_WIN32_NT_DX12_FENCE:
1399-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_D3D12_FENCE;
1400-
break;
1401-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_TIMELINE_WIN32_NT:
1402-
SemDesc.flags =
1403-
ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_VK_TIMELINE_SEMAPHORE_WIN32;
1404-
break;
1405-
default:
1406-
return UR_RESULT_ERROR_INVALID_VALUE;
1407-
}
1408-
Win32ExpDesc.handle = Win32Handle->handle;
1361+
ze_external_semaphore_ext_desc_t SemDesc = {
1362+
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_EXT_DESC, nullptr,
1363+
ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_FD};
1364+
ze_external_semaphore_ext_handle_t ExtSemaphoreHandle;
1365+
ze_external_semaphore_fd_ext_desc_t FDExpDesc = {
1366+
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_FD_EXT_DESC, nullptr, 0};
1367+
ze_external_semaphore_win32_ext_desc_t Win32ExpDesc = {
1368+
ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC, nullptr, nullptr,
1369+
nullptr};
1370+
void *pNext = const_cast<void *>(pExternalSemaphoreDesc->pNext);
1371+
while (pNext != nullptr) {
1372+
const ur_base_desc_t *BaseDesc = static_cast<const ur_base_desc_t *>(pNext);
1373+
if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR) {
1374+
auto FileDescriptor =
1375+
static_cast<const ur_exp_file_descriptor_t *>(pNext);
1376+
FDExpDesc.fd = FileDescriptor->fd;
1377+
SemDesc.pNext = &FDExpDesc;
1378+
switch (semHandleType) {
1379+
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_OPAQUE_FD:
1380+
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_FD;
1381+
break;
1382+
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_TIMELINE_FD:
1383+
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_VK_TIMELINE_SEMAPHORE_FD;
1384+
break;
1385+
default:
1386+
return UR_RESULT_ERROR_INVALID_VALUE;
14091387
}
1410-
pNext = const_cast<void *>(BaseDesc->pNext);
1411-
}
1412-
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt.zexImportExternalSemaphoreExp,
1413-
(hDevice->ZeDevice, &SemDesc, &ExtSemaphoreHandle));
1414-
*phExternalSemaphoreHandle =
1415-
(ur_exp_external_semaphore_handle_t)ExtSemaphoreHandle;
1416-
1417-
} else {
1418-
ze_intel_external_semaphore_exp_desc_t SemDesc = {
1419-
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_EXP_DESC, nullptr,
1420-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_FD};
1421-
ze_intel_external_semaphore_exp_handle_t ExtSemaphoreHandle;
1422-
ze_intel_external_semaphore_desc_fd_exp_desc_t FDExpDesc = {
1423-
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_FD_EXP_DESC, nullptr, 0};
1424-
_ze_intel_external_semaphore_win32_exp_desc_t Win32ExpDesc = {
1425-
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC, nullptr,
1426-
nullptr, nullptr};
1427-
void *pNext = const_cast<void *>(pExternalSemaphoreDesc->pNext);
1428-
while (pNext != nullptr) {
1429-
const ur_base_desc_t *BaseDesc =
1430-
static_cast<const ur_base_desc_t *>(pNext);
1431-
if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR) {
1432-
auto FileDescriptor =
1433-
static_cast<const ur_exp_file_descriptor_t *>(pNext);
1434-
FDExpDesc.fd = FileDescriptor->fd;
1435-
SemDesc.pNext = &FDExpDesc;
1436-
switch (semHandleType) {
1437-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_OPAQUE_FD:
1438-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_FD;
1439-
break;
1440-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_TIMELINE_FD:
1441-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_TIMELINE_SEMAPHORE_FD;
1442-
break;
1443-
default:
1444-
return UR_RESULT_ERROR_INVALID_VALUE;
1445-
}
1446-
} else if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE) {
1447-
SemDesc.pNext = &Win32ExpDesc;
1448-
auto Win32Handle = static_cast<const ur_exp_win32_handle_t *>(pNext);
1449-
switch (semHandleType) {
1450-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_WIN32_NT:
1451-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
1452-
break;
1453-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_WIN32_NT_DX12_FENCE:
1454-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_D3D12_FENCE;
1455-
break;
1456-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_TIMELINE_WIN32_NT:
1457-
SemDesc.flags =
1458-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_TIMELINE_SEMAPHORE_WIN32;
1459-
break;
1460-
default:
1461-
return UR_RESULT_ERROR_INVALID_VALUE;
1462-
}
1463-
Win32ExpDesc.handle = Win32Handle->handle;
1388+
} else if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE) {
1389+
SemDesc.pNext = &Win32ExpDesc;
1390+
auto Win32Handle = static_cast<const ur_exp_win32_handle_t *>(pNext);
1391+
switch (semHandleType) {
1392+
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_WIN32_NT:
1393+
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
1394+
break;
1395+
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_WIN32_NT_DX12_FENCE:
1396+
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_D3D12_FENCE;
1397+
break;
1398+
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_TIMELINE_WIN32_NT:
1399+
SemDesc.flags =
1400+
ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_VK_TIMELINE_SEMAPHORE_WIN32;
1401+
break;
1402+
default:
1403+
return UR_RESULT_ERROR_INVALID_VALUE;
14641404
}
1465-
pNext = const_cast<void *>(BaseDesc->pNext);
1405+
Win32ExpDesc.handle = Win32Handle->handle;
14661406
}
1467-
1468-
ze_device_handle_t translatedDevice;
1469-
ZE2UR_CALL(zelLoaderTranslateHandle, (ZEL_HANDLE_DEVICE, hDevice->ZeDevice,
1470-
(void **)&translatedDevice));
1471-
// If the L0 loader is not aware of the extension, the handles need to be
1472-
// translated
1473-
ZE2UR_CALL(
1474-
UrPlatform->ZeExternalSemaphoreExt.zexExpImportExternalSemaphoreExp,
1475-
(translatedDevice, &SemDesc, &ExtSemaphoreHandle));
1476-
1477-
*phExternalSemaphoreHandle =
1478-
(ur_exp_external_semaphore_handle_t)ExtSemaphoreHandle;
1407+
pNext = const_cast<void *>(BaseDesc->pNext);
14791408
}
14801409

1410+
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt.zexImportExternalSemaphoreExp,
1411+
(hDevice->ZeDevice, &SemDesc, &ExtSemaphoreHandle));
1412+
*phExternalSemaphoreHandle =
1413+
(ur_exp_external_semaphore_handle_t)ExtSemaphoreHandle;
1414+
14811415
return UR_RESULT_SUCCESS;
14821416
}
14831417

@@ -1490,15 +1424,9 @@ ur_result_t urBindlessImagesReleaseExternalSemaphoreExp(
14901424
" {} function not supported!", __FUNCTION__);
14911425
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
14921426
}
1493-
if (UrPlatform->ZeExternalSemaphoreExt.LoaderExtension) {
1494-
ZE2UR_CALL(
1495-
UrPlatform->ZeExternalSemaphoreExt.zexDeviceReleaseExternalSemaphoreExp,
1496-
((ze_external_semaphore_ext_handle_t)hExternalSemaphore));
1497-
} else {
1498-
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt
1499-
.zexExpDeviceReleaseExternalSemaphoreExp,
1500-
((ze_intel_external_semaphore_exp_handle_t)hExternalSemaphore));
1501-
}
1427+
ZE2UR_CALL(
1428+
UrPlatform->ZeExternalSemaphoreExt.zexDeviceReleaseExternalSemaphoreExp,
1429+
((ze_external_semaphore_ext_handle_t)hExternalSemaphore));
15021430

15031431
return UR_RESULT_SUCCESS;
15041432
}

unified-runtime/source/adapters/level_zero/platform.cpp

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,6 @@ ur_result_t ur_platform_handle_t_::initialize() {
218218
(ZeDriver, &Count, ZeExtensions.data()));
219219

220220
bool MutableCommandListSpecExtensionSupported = false;
221-
bool ZeIntelExternalSemaphoreExtensionSupported = false;
222221
bool ZeExternalSemaphoreExtensionSupported = false;
223222
bool ZeImmediateCommandListAppendExtensionFound = false;
224223
for (auto &extension : ZeExtensions) {
@@ -260,13 +259,6 @@ ur_result_t ur_platform_handle_t_::initialize() {
260259
MutableCommandListSpecExtensionSupported = true;
261260
}
262261
}
263-
// Check if extension is available for Exp External Sempahores
264-
if (strncmp(extension.name, ZE_INTEL_EXTERNAL_SEMAPHORE_EXP_NAME,
265-
strlen(ZE_INTEL_EXTERNAL_SEMAPHORE_EXP_NAME) + 1) == 0) {
266-
if (extension.version == ZE_EXTERNAL_SEMAPHORE_EXP_VERSION_1_0) {
267-
ZeIntelExternalSemaphoreExtensionSupported = true;
268-
}
269-
}
270262
// Check if extension is available for Spec External Sempahores
271263
if (strncmp(extension.name, ZE_EXTERNAL_SEMAPHORES_EXTENSION_NAME,
272264
strlen(ZE_EXTERNAL_SEMAPHORES_EXTENSION_NAME) + 1) == 0) {
@@ -380,38 +372,6 @@ ur_result_t ur_platform_handle_t_::initialize() {
380372
.zexCommandListAppendSignalExternalSemaphoresExp != nullptr;
381373
ZeExternalSemaphoreExt.Supported |=
382374
ZeExternalSemaphoreExt.zexDeviceReleaseExternalSemaphoreExp != nullptr;
383-
ZeExternalSemaphoreExt.LoaderExtension = true;
384-
} else if (ZeIntelExternalSemaphoreExtensionSupported) {
385-
ZeExternalSemaphoreExt.Supported |=
386-
(ZE_CALL_NOCHECK(
387-
zeDriverGetExtensionFunctionAddress,
388-
(ZeDriver, "zeIntelDeviceImportExternalSemaphoreExp",
389-
reinterpret_cast<void **>(
390-
&ZeExternalSemaphoreExt.zexExpImportExternalSemaphoreExp))) ==
391-
0);
392-
ZeExternalSemaphoreExt.Supported |=
393-
(ZE_CALL_NOCHECK(
394-
zeDriverGetExtensionFunctionAddress,
395-
(ZeDriver, "zeIntelCommandListAppendWaitExternalSemaphoresExp",
396-
reinterpret_cast<void **>(
397-
&ZeExternalSemaphoreExt
398-
.zexExpCommandListAppendWaitExternalSemaphoresExp))) ==
399-
0);
400-
ZeExternalSemaphoreExt.Supported |=
401-
(ZE_CALL_NOCHECK(
402-
zeDriverGetExtensionFunctionAddress,
403-
(ZeDriver, "zeIntelCommandListAppendSignalExternalSemaphoresExp",
404-
reinterpret_cast<void **>(
405-
&ZeExternalSemaphoreExt
406-
.zexExpCommandListAppendSignalExternalSemaphoresExp))) ==
407-
0);
408-
ZeExternalSemaphoreExt.Supported |=
409-
(ZE_CALL_NOCHECK(
410-
zeDriverGetExtensionFunctionAddress,
411-
(ZeDriver, "zeIntelDeviceReleaseExternalSemaphoreExp",
412-
reinterpret_cast<void **>(
413-
&ZeExternalSemaphoreExt
414-
.zexExpDeviceReleaseExternalSemaphoreExp))) == 0);
415375
}
416376

417377
// Check if mutable command list extension is supported and initialize

0 commit comments

Comments
 (0)