Skip to content

Commit cf906bf

Browse files
committed
all functions implemented in v1 enabled in v2
1 parent cbdeab0 commit cf906bf

File tree

3 files changed

+214
-279
lines changed

3 files changed

+214
-279
lines changed

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

Lines changed: 0 additions & 211 deletions
Original file line numberDiff line numberDiff line change
@@ -117,101 +117,6 @@ ur_result_t urBindlessImagesImageCopyExp(
117117
return res;
118118
}
119119

120-
ur_result_t urBindlessImagesImportExternalMemoryExp(
121-
ur_context_handle_t hContext, ur_device_handle_t hDevice, size_t size,
122-
ur_exp_external_mem_type_t memHandleType,
123-
ur_exp_external_mem_desc_t *pExternalMemDesc,
124-
ur_exp_external_mem_handle_t *phExternalMem) {
125-
126-
UR_ASSERT(hContext && hDevice, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
127-
UR_ASSERT(pExternalMemDesc && phExternalMem,
128-
UR_RESULT_ERROR_INVALID_NULL_POINTER);
129-
130-
struct ur_ze_external_memory_data *externalMemoryData =
131-
new struct ur_ze_external_memory_data;
132-
133-
void *pNext = const_cast<void *>(pExternalMemDesc->pNext);
134-
while (pNext != nullptr) {
135-
const ur_base_desc_t *BaseDesc = static_cast<const ur_base_desc_t *>(pNext);
136-
if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR) {
137-
ze_external_memory_import_fd_t *importFd =
138-
new ze_external_memory_import_fd_t;
139-
importFd->stype = ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMPORT_FD;
140-
importFd->pNext = nullptr;
141-
auto FileDescriptor =
142-
static_cast<const ur_exp_file_descriptor_t *>(pNext);
143-
importFd->fd = FileDescriptor->fd;
144-
importFd->flags = ZE_EXTERNAL_MEMORY_TYPE_FLAG_OPAQUE_FD;
145-
externalMemoryData->importExtensionDesc = importFd;
146-
externalMemoryData->type = UR_ZE_EXTERNAL_OPAQUE_FD;
147-
} else if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE) {
148-
ze_external_memory_import_win32_handle_t *importWin32 =
149-
new ze_external_memory_import_win32_handle_t;
150-
importWin32->stype = ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMPORT_WIN32;
151-
importWin32->pNext = nullptr;
152-
auto Win32Handle = static_cast<const ur_exp_win32_handle_t *>(pNext);
153-
154-
switch (memHandleType) {
155-
case UR_EXP_EXTERNAL_MEM_TYPE_WIN32_NT:
156-
importWin32->flags = ZE_EXTERNAL_MEMORY_TYPE_FLAG_OPAQUE_WIN32;
157-
break;
158-
case UR_EXP_EXTERNAL_MEM_TYPE_WIN32_NT_DX12_RESOURCE:
159-
importWin32->flags = ZE_EXTERNAL_MEMORY_TYPE_FLAG_D3D12_RESOURCE;
160-
break;
161-
case UR_EXP_EXTERNAL_MEM_TYPE_OPAQUE_FD:
162-
default:
163-
delete importWin32;
164-
delete externalMemoryData;
165-
return UR_RESULT_ERROR_INVALID_VALUE;
166-
}
167-
importWin32->handle = Win32Handle->handle;
168-
externalMemoryData->importExtensionDesc = importWin32;
169-
externalMemoryData->type = UR_ZE_EXTERNAL_WIN32;
170-
}
171-
pNext = const_cast<void *>(BaseDesc->pNext);
172-
}
173-
externalMemoryData->size = size;
174-
175-
*phExternalMem =
176-
reinterpret_cast<ur_exp_external_mem_handle_t>(externalMemoryData);
177-
return UR_RESULT_SUCCESS;
178-
}
179-
180-
ur_result_t urBindlessImagesMapExternalArrayExp(
181-
ur_context_handle_t hContext, ur_device_handle_t hDevice,
182-
const ur_image_format_t *pImageFormat, const ur_image_desc_t *pImageDesc,
183-
ur_exp_external_mem_handle_t hExternalMem,
184-
ur_exp_image_mem_native_handle_t *phImageMem) {
185-
186-
UR_ASSERT(hContext && hDevice && hExternalMem,
187-
UR_RESULT_ERROR_INVALID_NULL_HANDLE);
188-
UR_ASSERT(pImageFormat && pImageDesc, UR_RESULT_ERROR_INVALID_NULL_POINTER);
189-
190-
struct ur_ze_external_memory_data *externalMemoryData =
191-
reinterpret_cast<ur_ze_external_memory_data *>(hExternalMem);
192-
193-
ze_image_bindless_exp_desc_t ZeImageBindlessDesc = {};
194-
ZeImageBindlessDesc.stype = ZE_STRUCTURE_TYPE_BINDLESS_IMAGE_EXP_DESC;
195-
196-
ZeStruct<ze_image_desc_t> ZeImageDesc;
197-
UR_CALL(ur2zeImageDesc(pImageFormat, pImageDesc, ZeImageDesc));
198-
199-
ZeImageBindlessDesc.pNext = externalMemoryData->importExtensionDesc;
200-
ZeImageBindlessDesc.flags = ZE_IMAGE_BINDLESS_EXP_FLAG_BINDLESS;
201-
ZeImageDesc.pNext = &ZeImageBindlessDesc;
202-
203-
ze_image_handle_t ZeImage;
204-
ZE2UR_CALL(zeImageCreate,
205-
(hContext->ZeContext, hDevice->ZeDevice, &ZeImageDesc, &ZeImage));
206-
ZE2UR_CALL(zeContextMakeImageResident,
207-
(hContext->ZeContext, hDevice->ZeDevice, ZeImage));
208-
UR_CALL(
209-
createUrMemFromZeImage(hContext, ZeImage, true, ZeImageDesc, phImageMem));
210-
externalMemoryData->urMemoryHandle =
211-
reinterpret_cast<ur_mem_handle_t>(*phImageMem);
212-
return UR_RESULT_SUCCESS;
213-
}
214-
215120
ur_result_t urBindlessImagesMapExternalLinearMemoryExp(
216121
ur_context_handle_t hContext, ur_device_handle_t hDevice, uint64_t offset,
217122
uint64_t size, ur_exp_external_mem_handle_t hExternalMem, void **phRetMem) {
@@ -226,122 +131,6 @@ ur_result_t urBindlessImagesMapExternalLinearMemoryExp(
226131
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
227132
}
228133

229-
ur_result_t urBindlessImagesReleaseExternalMemoryExp(
230-
ur_context_handle_t hContext, ur_device_handle_t hDevice,
231-
ur_exp_external_mem_handle_t hExternalMem) {
232-
233-
UR_ASSERT(hContext && hDevice && hExternalMem,
234-
UR_RESULT_ERROR_INVALID_NULL_HANDLE);
235-
236-
struct ur_ze_external_memory_data *externalMemoryData =
237-
reinterpret_cast<ur_ze_external_memory_data *>(hExternalMem);
238-
239-
UR_CALL(ur::level_zero::urMemRelease(externalMemoryData->urMemoryHandle));
240-
241-
switch (externalMemoryData->type) {
242-
case UR_ZE_EXTERNAL_OPAQUE_FD:
243-
delete (reinterpret_cast<ze_external_memory_import_fd_t *>(
244-
externalMemoryData->importExtensionDesc));
245-
break;
246-
case UR_ZE_EXTERNAL_WIN32:
247-
delete (reinterpret_cast<ze_external_memory_import_win32_handle_t *>(
248-
externalMemoryData->importExtensionDesc));
249-
break;
250-
default:
251-
return UR_RESULT_ERROR_INVALID_VALUE;
252-
}
253-
254-
delete (externalMemoryData);
255-
256-
return UR_RESULT_SUCCESS;
257-
}
258-
259-
ur_result_t urBindlessImagesImportExternalSemaphoreExp(
260-
ur_context_handle_t hContext, ur_device_handle_t hDevice,
261-
ur_exp_external_semaphore_type_t semHandleType,
262-
ur_exp_external_semaphore_desc_t *pExternalSemaphoreDesc,
263-
ur_exp_external_semaphore_handle_t *phExternalSemaphoreHandle) {
264-
265-
auto UrPlatform = hContext->getPlatform();
266-
if (UrPlatform->ZeExternalSemaphoreExt.Supported == false) {
267-
logger::error(logger::LegacyMessage("[UR][L0] "),
268-
" {} function not supported!", __FUNCTION__);
269-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
270-
}
271-
ze_intel_external_semaphore_exp_desc_t SemDesc = {
272-
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_EXP_DESC, nullptr,
273-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_FD};
274-
ze_intel_external_semaphore_exp_handle_t ExtSemaphoreHandle;
275-
ze_intel_external_semaphore_desc_fd_exp_desc_t FDExpDesc = {
276-
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_FD_EXP_DESC, nullptr, 0};
277-
_ze_intel_external_semaphore_win32_exp_desc_t Win32ExpDesc = {
278-
ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC, nullptr,
279-
nullptr, nullptr};
280-
void *pNext = const_cast<void *>(pExternalSemaphoreDesc->pNext);
281-
while (pNext != nullptr) {
282-
const ur_base_desc_t *BaseDesc = static_cast<const ur_base_desc_t *>(pNext);
283-
if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR) {
284-
auto FileDescriptor =
285-
static_cast<const ur_exp_file_descriptor_t *>(pNext);
286-
FDExpDesc.fd = FileDescriptor->fd;
287-
SemDesc.pNext = &FDExpDesc;
288-
switch (semHandleType) {
289-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_OPAQUE_FD:
290-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_FD;
291-
break;
292-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_TIMELINE_FD:
293-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_TIMELINE_SEMAPHORE_FD;
294-
break;
295-
default:
296-
return UR_RESULT_ERROR_INVALID_VALUE;
297-
}
298-
} else if (BaseDesc->stype == UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE) {
299-
SemDesc.pNext = &Win32ExpDesc;
300-
auto Win32Handle = static_cast<const ur_exp_win32_handle_t *>(pNext);
301-
switch (semHandleType) {
302-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_WIN32_NT:
303-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
304-
break;
305-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_WIN32_NT_DX12_FENCE:
306-
SemDesc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_D3D12_FENCE;
307-
break;
308-
case UR_EXP_EXTERNAL_SEMAPHORE_TYPE_TIMELINE_WIN32_NT:
309-
SemDesc.flags =
310-
ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_TIMELINE_SEMAPHORE_WIN32;
311-
break;
312-
default:
313-
return UR_RESULT_ERROR_INVALID_VALUE;
314-
}
315-
Win32ExpDesc.handle = Win32Handle->handle;
316-
}
317-
pNext = const_cast<void *>(BaseDesc->pNext);
318-
}
319-
320-
ZE2UR_CALL(UrPlatform->ZeExternalSemaphoreExt.zexImportExternalSemaphoreExp,
321-
(hDevice->ZeDevice, &SemDesc, &ExtSemaphoreHandle));
322-
*phExternalSemaphoreHandle =
323-
(ur_exp_external_semaphore_handle_t)ExtSemaphoreHandle;
324-
325-
return UR_RESULT_SUCCESS;
326-
}
327-
328-
ur_result_t urBindlessImagesReleaseExternalSemaphoreExp(
329-
ur_context_handle_t hContext, ur_device_handle_t hDevice,
330-
ur_exp_external_semaphore_handle_t hExternalSemaphore) {
331-
std::ignore = hDevice;
332-
auto UrPlatform = hContext->getPlatform();
333-
if (UrPlatform->ZeExternalSemaphoreExt.Supported == false) {
334-
logger::error(logger::LegacyMessage("[UR][L0] "),
335-
" {} function not supported!", __FUNCTION__);
336-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
337-
}
338-
ZE2UR_CALL(
339-
UrPlatform->ZeExternalSemaphoreExt.zexDeviceReleaseExternalSemaphoreExp,
340-
((ze_intel_external_semaphore_exp_handle_t)hExternalSemaphore));
341-
342-
return UR_RESULT_SUCCESS;
343-
}
344-
345134
ur_result_t urBindlessImagesWaitExternalSemaphoreExp(
346135
ur_queue_handle_t hQueue, ur_exp_external_semaphore_handle_t hSemaphore,
347136
bool hasValue, uint64_t waitValue, uint32_t numEventsInWaitList,

0 commit comments

Comments
 (0)