mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 15:53:45 +08:00
refactor: Set external semaphore version in L0
Related-To: NEO-14295 Signed-off-by: Raiyan Latif <raiyan.latif@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
570e05774d
commit
80168b194f
@@ -173,11 +173,11 @@ struct CommandList : _ze_command_list_handle_t {
|
||||
virtual ze_result_t appendWaitOnMemory(void *desc, void *ptr, uint64_t data, ze_event_handle_t signalEventHandle, bool useQwordData) = 0;
|
||||
virtual ze_result_t appendWriteToMemory(void *desc, void *ptr,
|
||||
uint64_t data) = 0;
|
||||
virtual ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
virtual ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) = 0;
|
||||
virtual ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
virtual ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) = 0;
|
||||
virtual ze_result_t hostSynchronize(uint64_t timeout) = 0;
|
||||
|
||||
|
||||
@@ -174,11 +174,11 @@ struct CommandListCoreFamily : public CommandListImp {
|
||||
ze_result_t appendWriteToMemory(void *desc, void *ptr,
|
||||
uint64_t data) override;
|
||||
|
||||
ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) override;
|
||||
ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) override;
|
||||
|
||||
ze_result_t appendQueryKernelTimestamps(uint32_t numEvents, ze_event_handle_t *phEvents, void *dstptr,
|
||||
|
||||
@@ -3898,15 +3898,15 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWriteToMemory(void *desc
|
||||
}
|
||||
|
||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
|
||||
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
|
||||
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
@@ -176,11 +176,11 @@ struct CommandListCoreFamilyImmediate : public CommandListCoreFamily<gfxCoreFami
|
||||
ze_result_t appendWriteToMemory(void *desc, void *ptr,
|
||||
uint64_t data) override;
|
||||
|
||||
ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
ze_result_t appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) override;
|
||||
ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
ze_result_t appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) override;
|
||||
|
||||
ze_result_t hostSynchronize(uint64_t timeout) override;
|
||||
|
||||
@@ -1006,8 +1006,8 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWriteToMemory(v
|
||||
}
|
||||
|
||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWaitExternalSemaphores(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
|
||||
|
||||
checkAvailableSpace(0, false, commonImmediateCommandSize, false);
|
||||
@@ -1051,8 +1051,8 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendWaitExternalSem
|
||||
}
|
||||
|
||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendSignalExternalSemaphores(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents) {
|
||||
|
||||
checkAvailableSpace(0, false, commonImmediateCommandSize, false);
|
||||
|
||||
@@ -35,6 +35,7 @@ const std::vector<std::pair<std::string, uint32_t>> DriverHandleImp::extensionsS
|
||||
{ZE_LINKAGE_INSPECTION_EXT_NAME, ZE_LINKAGE_INSPECTION_EXT_VERSION_CURRENT},
|
||||
{ZE_IMMEDIATE_COMMAND_LIST_APPEND_EXP_NAME, ZE_IMMEDIATE_COMMAND_LIST_APPEND_EXP_VERSION_1_0},
|
||||
{ZE_GET_KERNEL_BINARY_EXP_NAME, ZE_KERNEL_GET_BINARY_EXP_VERSION_1_0},
|
||||
{ZE_EXTERNAL_SEMAPHORES_EXTENSION_NAME, ZE_EXTERNAL_SEMAPHORE_EXT_VERSION_1_0},
|
||||
|
||||
// Driver experimental extensions
|
||||
{ZE_INTEL_DEVICE_MODULE_DP_PROPERTIES_EXP_NAME, ZE_INTEL_DEVICE_MODULE_DP_PROPERTIES_EXP_VERSION_CURRENT},
|
||||
|
||||
@@ -58,10 +58,6 @@ void *ExtensionFunctionAddressHelper::getExtensionFunctionAddress(const std::str
|
||||
RETURN_FUNC_PTR_IF_EXIST(zexIntelAllocateNetworkInterrupt);
|
||||
RETURN_FUNC_PTR_IF_EXIST(zexIntelReleaseNetworkInterrupt);
|
||||
|
||||
RETURN_FUNC_PTR_IF_EXIST(zeIntelDeviceImportExternalSemaphoreExp);
|
||||
RETURN_FUNC_PTR_IF_EXIST(zeIntelCommandListAppendWaitExternalSemaphoresExp);
|
||||
RETURN_FUNC_PTR_IF_EXIST(zeIntelCommandListAppendSignalExternalSemaphoresExp);
|
||||
RETURN_FUNC_PTR_IF_EXIST(zeIntelDeviceReleaseExternalSemaphoreExp);
|
||||
RETURN_FUNC_PTR_IF_EXIST(zetIntelCommandListAppendMarkerExp);
|
||||
RETURN_FUNC_PTR_IF_EXIST(zetIntelMetricTracerCreateExp);
|
||||
RETURN_FUNC_PTR_IF_EXIST(zetIntelMetricTracerDestroyExp);
|
||||
|
||||
@@ -19,23 +19,23 @@
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
|
||||
struct _ze_intel_external_semaphore_exp_handle_t {
|
||||
struct _ze_external_semaphore_ext_handle_t {
|
||||
const uint64_t objMagic = objMagicValue;
|
||||
};
|
||||
|
||||
namespace L0 {
|
||||
|
||||
struct ExternalSemaphore : _ze_intel_external_semaphore_exp_handle_t {
|
||||
struct ExternalSemaphore : _ze_external_semaphore_ext_handle_t {
|
||||
virtual ~ExternalSemaphore() = default;
|
||||
|
||||
static ze_result_t importExternalSemaphore(ze_device_handle_t device, const ze_intel_external_semaphore_exp_desc_t *semaphoreDesc, ze_intel_external_semaphore_exp_handle_t *phSemaphore);
|
||||
static ze_result_t importExternalSemaphore(ze_device_handle_t device, const ze_external_semaphore_ext_desc_t *semaphoreDesc, ze_external_semaphore_ext_handle_t *phSemaphore);
|
||||
virtual ze_result_t releaseExternalSemaphore() = 0;
|
||||
|
||||
static ExternalSemaphore *fromHandle(ze_intel_external_semaphore_exp_handle_t handle) { return static_cast<ExternalSemaphore *>(handle); }
|
||||
inline ze_intel_external_semaphore_exp_handle_t toHandle() { return this; }
|
||||
static ExternalSemaphore *fromHandle(ze_external_semaphore_ext_handle_t handle) { return static_cast<ExternalSemaphore *>(handle); }
|
||||
inline ze_external_semaphore_ext_handle_t toHandle() { return this; }
|
||||
|
||||
protected:
|
||||
ze_intel_external_semaphore_exp_desc_t desc;
|
||||
ze_external_semaphore_ext_desc_t desc;
|
||||
};
|
||||
|
||||
} // namespace L0
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
namespace L0 {
|
||||
|
||||
ze_result_t
|
||||
ExternalSemaphore::importExternalSemaphore(ze_device_handle_t device, const ze_intel_external_semaphore_exp_desc_t *semaphoreDesc, ze_intel_external_semaphore_exp_handle_t *phSemaphore) {
|
||||
ExternalSemaphore::importExternalSemaphore(ze_device_handle_t device, const ze_external_semaphore_ext_desc_t *semaphoreDesc, ze_external_semaphore_ext_handle_t *phSemaphore) {
|
||||
auto externalSemaphore = new ExternalSemaphoreImp();
|
||||
if (externalSemaphore == nullptr) {
|
||||
return ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY;
|
||||
@@ -42,7 +42,7 @@ ExternalSemaphore::importExternalSemaphore(ze_device_handle_t device, const ze_i
|
||||
return result;
|
||||
}
|
||||
|
||||
ze_result_t ExternalSemaphoreImp::initialize(ze_device_handle_t device, const ze_intel_external_semaphore_exp_desc_t *semaphoreDesc) {
|
||||
ze_result_t ExternalSemaphoreImp::initialize(ze_device_handle_t device, const ze_external_semaphore_ext_desc_t *semaphoreDesc) {
|
||||
this->device = Device::fromHandle(device);
|
||||
auto deviceImp = static_cast<DeviceImp *>(this->device);
|
||||
this->desc = semaphoreDesc;
|
||||
@@ -53,13 +53,13 @@ ze_result_t ExternalSemaphoreImp::initialize(ze_device_handle_t device, const ze
|
||||
if (semaphoreDesc->pNext != nullptr) {
|
||||
const ze_base_desc_t *extendedDesc =
|
||||
reinterpret_cast<const ze_base_desc_t *>(semaphoreDesc->pNext);
|
||||
if (extendedDesc->stype == ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC) { // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
const ze_intel_external_semaphore_win32_exp_desc_t *extendedSemaphoreDesc =
|
||||
reinterpret_cast<const ze_intel_external_semaphore_win32_exp_desc_t *>(extendedDesc);
|
||||
if (extendedDesc->stype == ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC) { // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
const ze_external_semaphore_win32_ext_desc_t *extendedSemaphoreDesc =
|
||||
reinterpret_cast<const ze_external_semaphore_win32_ext_desc_t *>(extendedDesc);
|
||||
handle = extendedSemaphoreDesc->handle;
|
||||
} else if (extendedDesc->stype == ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_FD_EXP_DESC) { // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
const ze_intel_external_semaphore_desc_fd_exp_desc_t *extendedSemaphoreDesc =
|
||||
reinterpret_cast<const ze_intel_external_semaphore_desc_fd_exp_desc_t *>(extendedDesc);
|
||||
} else if (extendedDesc->stype == ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_FD_EXT_DESC) { // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
const ze_external_semaphore_fd_ext_desc_t *extendedSemaphoreDesc =
|
||||
reinterpret_cast<const ze_external_semaphore_fd_ext_desc_t *>(extendedDesc);
|
||||
fd = extendedSemaphoreDesc->fd;
|
||||
} else {
|
||||
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
||||
@@ -69,31 +69,31 @@ ze_result_t ExternalSemaphoreImp::initialize(ze_device_handle_t device, const ze
|
||||
}
|
||||
|
||||
switch (semaphoreDesc->flags) {
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_FD:
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_FD:
|
||||
externalSemaphoreType = NEO::ExternalSemaphore::Type::OpaqueFd;
|
||||
break;
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32:
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32:
|
||||
externalSemaphoreType = NEO::ExternalSemaphore::Type::OpaqueWin32;
|
||||
break;
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32_KMT:
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32_KMT:
|
||||
externalSemaphoreType = NEO::ExternalSemaphore::Type::OpaqueWin32Kmt;
|
||||
break;
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_D3D12_FENCE:
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_D3D12_FENCE:
|
||||
externalSemaphoreType = NEO::ExternalSemaphore::Type::D3d12Fence;
|
||||
break;
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_D3D11_FENCE:
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_D3D11_FENCE:
|
||||
externalSemaphoreType = NEO::ExternalSemaphore::Type::D3d11Fence;
|
||||
break;
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_KEYED_MUTEX:
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_KEYED_MUTEX:
|
||||
externalSemaphoreType = NEO::ExternalSemaphore::Type::KeyedMutex;
|
||||
break;
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_KEYED_MUTEX_KMT:
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_KEYED_MUTEX_KMT:
|
||||
externalSemaphoreType = NEO::ExternalSemaphore::Type::KeyedMutexKmt;
|
||||
break;
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_TIMELINE_SEMAPHORE_FD:
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_VK_TIMELINE_SEMAPHORE_FD:
|
||||
externalSemaphoreType = NEO::ExternalSemaphore::Type::TimelineSemaphoreFd;
|
||||
break;
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_TIMELINE_SEMAPHORE_WIN32:
|
||||
case ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_VK_TIMELINE_SEMAPHORE_WIN32:
|
||||
externalSemaphoreType = NEO::ExternalSemaphore::Type::TimelineSemaphoreWin32;
|
||||
break;
|
||||
default:
|
||||
@@ -118,7 +118,7 @@ std::unique_ptr<ExternalSemaphoreController> ExternalSemaphoreController::create
|
||||
return std::make_unique<ExternalSemaphoreController>();
|
||||
}
|
||||
|
||||
ze_result_t ExternalSemaphoreController::allocateProxyEvent(ze_intel_external_semaphore_exp_handle_t hExtSemaphore, ze_device_handle_t hDevice, ze_context_handle_t hContext, uint64_t fenceValue, ze_event_handle_t *phEvent, ExternalSemaphoreController::SemaphoreOperation operation) {
|
||||
ze_result_t ExternalSemaphoreController::allocateProxyEvent(ze_external_semaphore_ext_handle_t hExtSemaphore, ze_device_handle_t hDevice, ze_context_handle_t hContext, uint64_t fenceValue, ze_event_handle_t *phEvent, ExternalSemaphoreController::SemaphoreOperation operation) {
|
||||
std::lock_guard<std::mutex> lock(this->semControllerMutex);
|
||||
|
||||
if (this->eventPoolsMap.find(hDevice) == this->eventPoolsMap.end()) {
|
||||
|
||||
@@ -25,14 +25,14 @@ namespace L0 {
|
||||
|
||||
class ExternalSemaphoreImp : public ExternalSemaphore {
|
||||
public:
|
||||
ze_result_t initialize(ze_device_handle_t device, const ze_intel_external_semaphore_exp_desc_t *semaphoreDesc);
|
||||
ze_result_t initialize(ze_device_handle_t device, const ze_external_semaphore_ext_desc_t *semaphoreDesc);
|
||||
ze_result_t releaseExternalSemaphore() override;
|
||||
|
||||
std::unique_ptr<NEO::ExternalSemaphore> neoExternalSemaphore;
|
||||
|
||||
protected:
|
||||
Device *device = nullptr;
|
||||
const ze_intel_external_semaphore_exp_desc_t *desc;
|
||||
const ze_external_semaphore_ext_desc_t *desc;
|
||||
};
|
||||
|
||||
class ExternalSemaphoreController : NEO::NonCopyableAndNonMovableClass {
|
||||
@@ -81,7 +81,7 @@ class ExternalSemaphoreController : NEO::NonCopyableAndNonMovableClass {
|
||||
}
|
||||
}
|
||||
|
||||
ze_result_t allocateProxyEvent(ze_intel_external_semaphore_exp_handle_t hExtSemaphore, ze_device_handle_t hDevice, ze_context_handle_t hContext, uint64_t fenceValue, ze_event_handle_t *phEvent, SemaphoreOperation operation);
|
||||
ze_result_t allocateProxyEvent(ze_external_semaphore_ext_handle_t hExtSemaphore, ze_device_handle_t hDevice, ze_context_handle_t hContext, uint64_t fenceValue, ze_event_handle_t *phEvent, SemaphoreOperation operation);
|
||||
void processProxyEvents();
|
||||
|
||||
std::mutex semControllerMutex;
|
||||
|
||||
@@ -572,12 +572,12 @@ struct MockCommandList : public CommandList {
|
||||
(void *desc, void *ptr, uint64_t data, ze_event_handle_t signalEventHandle, bool useQwordData));
|
||||
|
||||
ADDMETHOD_NOBASE(appendWaitExternalSemaphores, ze_result_t, ZE_RESULT_SUCCESS,
|
||||
(uint32_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_wait_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
(uint32_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_wait_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents));
|
||||
ADDMETHOD_NOBASE(appendSignalExternalSemaphores, ze_result_t, ZE_RESULT_SUCCESS,
|
||||
(size_t numExternalSemaphores, const ze_intel_external_semaphore_exp_handle_t *hSemaphores,
|
||||
const ze_intel_external_semaphore_signal_params_exp_t *params, ze_event_handle_t hSignalEvent,
|
||||
(size_t numExternalSemaphores, const ze_external_semaphore_ext_handle_t *hSemaphores,
|
||||
const ze_external_semaphore_signal_params_ext_t *params, ze_event_handle_t hSignalEvent,
|
||||
uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents));
|
||||
|
||||
ADDMETHOD_NOBASE(appendWriteToMemory, ze_result_t, ZE_RESULT_SUCCESS,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2024 Intel Corporation
|
||||
* Copyright (C) 2024-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -47,20 +47,20 @@ using DrmExternalSemaphoreTest = Test<DrmSemaphoreFixture>;
|
||||
|
||||
HWTEST_F(DrmExternalSemaphoreTest, givenDriverModelDrmWhenImportExternalSemaphoreExpIsCalledThenUnsupportedFeatureIsReturned) {
|
||||
MockDeviceImp l0Device(neoDevice, neoDevice->getExecutionEnvironment());
|
||||
ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
int fd = 0;
|
||||
|
||||
ze_intel_external_semaphore_desc_fd_exp_desc_t fdDesc = {};
|
||||
ze_external_semaphore_fd_ext_desc_t fdDesc = {};
|
||||
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_FD;
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_FD;
|
||||
|
||||
fdDesc.stype = ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_FD_EXP_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
fdDesc.stype = ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_FD_EXT_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
fdDesc.fd = fd;
|
||||
|
||||
desc.pNext = &fdDesc;
|
||||
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(l0Device.toHandle(), &desc, &hSemaphore);
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(l0Device.toHandle(), &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,9 +28,9 @@ namespace ult {
|
||||
using ExternalSemaphoreTest = Test<DeviceFixture>;
|
||||
HWTEST_F(ExternalSemaphoreTest, givenInvalidDescriptorAndImportExternalSemaphoreExpIsCalledThenInvalidArgumentsIsReturned) {
|
||||
ze_device_handle_t hDevice = device->toHandle();
|
||||
const ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(hDevice, &desc, &hSemaphore);
|
||||
const ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(hDevice, &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_ERROR_INVALID_ARGUMENT);
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ HWTEST_F(ExternalSemaphoreTest, givenValidParametersWhenReleaseExternalSemaphore
|
||||
|
||||
HWTEST_F(ExternalSemaphoreTest, givenInvalidDescriptorWhenInitializeIsCalledThenInvalidArgumentIsReturned) {
|
||||
ze_device_handle_t hDevice = device->toHandle();
|
||||
const ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
const ze_external_semaphore_ext_desc_t desc = {};
|
||||
auto externalSemaphoreImp = new ExternalSemaphoreImp();
|
||||
ze_result_t result = externalSemaphoreImp->initialize(hDevice, &desc);
|
||||
EXPECT_EQ(result, ZE_RESULT_ERROR_INVALID_ARGUMENT);
|
||||
@@ -69,8 +69,8 @@ HWTEST2_F(ExternalSemaphoreTest, givenRegularCommandListWhenAppendWaitExternalSe
|
||||
MockCommandListCoreFamily<gfxCoreFamily> cmdList;
|
||||
cmdList.initialize(device, NEO::EngineGroupType::renderCompute, 0u);
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = reinterpret_cast<ze_intel_external_semaphore_exp_handle_t>(0x1);
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = reinterpret_cast<ze_external_semaphore_ext_handle_t>(0x1);
|
||||
ze_result_t result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 0, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_ERROR_INVALID_ARGUMENT);
|
||||
}
|
||||
@@ -79,8 +79,8 @@ HWTEST2_F(ExternalSemaphoreTest, givenRegularCommandListWhenAppendSignalExternal
|
||||
MockCommandListCoreFamily<gfxCoreFamily> cmdList;
|
||||
cmdList.initialize(device, NEO::EngineGroupType::renderCompute, 0u);
|
||||
|
||||
ze_intel_external_semaphore_signal_params_exp_t signalParams = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = reinterpret_cast<ze_intel_external_semaphore_exp_handle_t>(0x1);
|
||||
ze_external_semaphore_signal_params_ext_t signalParams = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = reinterpret_cast<ze_external_semaphore_ext_handle_t>(0x1);
|
||||
ze_result_t result = cmdList.appendSignalExternalSemaphores(1, &hSemaphore, &signalParams, nullptr, 0, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_ERROR_INVALID_ARGUMENT);
|
||||
}
|
||||
@@ -142,10 +142,10 @@ HWTEST2_F(ExternalSemaphoreTest, givenImmediateCommandListWhenAppendSignalExtern
|
||||
cmdList.initialize(l0Device.get(), NEO::EngineGroupType::renderCompute, 0u);
|
||||
cmdList.setCmdListContext(context);
|
||||
|
||||
ze_intel_external_semaphore_signal_params_exp_t signalParams = {};
|
||||
ze_external_semaphore_signal_params_ext_t signalParams = {};
|
||||
signalParams.value = 1u;
|
||||
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_result_t result = cmdList.appendSignalExternalSemaphores(1, &hSemaphore, &signalParams, nullptr, 0, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(cmdList.appendWaitOnEventsCalledTimes, 0u);
|
||||
@@ -174,11 +174,11 @@ HWTEST2_F(ExternalSemaphoreTest, givenAppendWaitOnEventFailsWhenAppendSignalExte
|
||||
cmdList.setCmdListContext(context);
|
||||
cmdList.failingWaitOnEvents = true;
|
||||
|
||||
ze_intel_external_semaphore_signal_params_exp_t signalParams = {};
|
||||
ze_external_semaphore_signal_params_ext_t signalParams = {};
|
||||
signalParams.value = 1u;
|
||||
ze_event_handle_t event;
|
||||
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_result_t result = cmdList.appendSignalExternalSemaphores(1, &hSemaphore, &signalParams, nullptr, 1, &event);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(cmdList.appendWaitOnEventsCalledTimes, 1u);
|
||||
@@ -205,10 +205,10 @@ HWTEST2_F(ExternalSemaphoreTest, givenAppendSignalInternalProxyEventFailsWhenApp
|
||||
cmdList.setCmdListContext(context);
|
||||
cmdList.failingSignalEvent = true;
|
||||
|
||||
ze_intel_external_semaphore_signal_params_exp_t signalParams = {};
|
||||
ze_external_semaphore_signal_params_ext_t signalParams = {};
|
||||
signalParams.value = 1u;
|
||||
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_result_t result = cmdList.appendSignalExternalSemaphores(1, &hSemaphore, &signalParams, nullptr, 0, nullptr);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(cmdList.appendWaitOnEventsCalledTimes, 0u);
|
||||
@@ -236,12 +236,12 @@ HWTEST2_F(ExternalSemaphoreTest, givenAppendSignalEventFailsWhenAppendSignalExte
|
||||
cmdList.setCmdListContext(context);
|
||||
cmdList.failOnSecondSignalEvent = true;
|
||||
|
||||
ze_intel_external_semaphore_signal_params_exp_t signalParams = {};
|
||||
ze_external_semaphore_signal_params_ext_t signalParams = {};
|
||||
signalParams.value = 1u;
|
||||
ze_event_handle_t waitEvent = {};
|
||||
MockEvent signalEvent;
|
||||
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_event_handle_t hSignalEvent = signalEvent.toHandle();
|
||||
ze_result_t result = cmdList.appendSignalExternalSemaphores(1, &hSemaphore, &signalParams, hSignalEvent, 1, &waitEvent);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
@@ -269,8 +269,8 @@ HWTEST2_F(ExternalSemaphoreTest, givenFailingMemoryManagerWhenAppendSignalExtern
|
||||
cmdList.initialize(l0Device.get(), NEO::EngineGroupType::renderCompute, 0u);
|
||||
cmdList.setCmdListContext(context);
|
||||
|
||||
ze_intel_external_semaphore_signal_params_exp_t signalParams = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_signal_params_ext_t signalParams = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_result_t result = cmdList.appendSignalExternalSemaphores(1, &hSemaphore, &signalParams, nullptr, 0, nullptr);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(cmdList.appendWaitOnEventsCalledTimes, 0u);
|
||||
@@ -297,9 +297,9 @@ HWTEST2_F(ExternalSemaphoreTest, givenImmediateCommandListWhenAppendWaitExternal
|
||||
cmdList.initialize(l0Device.get(), NEO::EngineGroupType::renderCompute, 0u);
|
||||
cmdList.setCmdListContext(context);
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_result_t result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 0, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(cmdList.appendWaitOnEventsCalledTimes, 1u);
|
||||
@@ -327,10 +327,10 @@ HWTEST2_F(ExternalSemaphoreTest, givenAppendWaitOnEventFailsWhenAppendWaitExtern
|
||||
cmdList.setCmdListContext(context);
|
||||
cmdList.failingWaitOnEvents = true;
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
ze_event_handle_t event;
|
||||
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_result_t result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 1, &event);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(cmdList.appendWaitOnEventsCalledTimes, 1u);
|
||||
@@ -357,9 +357,9 @@ HWTEST2_F(ExternalSemaphoreTest, givenAppendWaitOnInternalProxyEventFailsWhenApp
|
||||
cmdList.setCmdListContext(context);
|
||||
cmdList.failingWaitOnEvents = true;
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_result_t result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 0, nullptr);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(cmdList.appendWaitOnEventsCalledTimes, 1u);
|
||||
@@ -387,11 +387,11 @@ HWTEST2_F(ExternalSemaphoreTest, givenAppendSignalEventFailsWhenAppendWaitExtern
|
||||
cmdList.setCmdListContext(context);
|
||||
cmdList.failingSignalEvent = true;
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
ze_event_handle_t waitEvent = {};
|
||||
MockEvent signalEvent;
|
||||
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_event_handle_t hSignalEvent = signalEvent.toHandle();
|
||||
ze_result_t result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, hSignalEvent, 1, &waitEvent);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
@@ -419,8 +419,8 @@ HWTEST2_F(ExternalSemaphoreTest, givenFailingMemoryManagerWhenAppendWaitExternal
|
||||
cmdList.initialize(l0Device.get(), NEO::EngineGroupType::renderCompute, 0u);
|
||||
cmdList.setCmdListContext(context);
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_result_t result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 0, nullptr);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(cmdList.appendWaitOnEventsCalledTimes, 0u);
|
||||
@@ -601,9 +601,9 @@ HWTEST2_F(ExternalSemaphoreTest, DISABLED_givenNEOExternalSemaphoreWhenAppendWai
|
||||
auto mockNEOExternalSemaphore = static_cast<MockNEOExternalSemaphore *>(externalSemaphore->neoExternalSemaphore.get());
|
||||
EXPECT_EQ(mockNEOExternalSemaphore->getState(), NEO::ExternalSemaphore::SemaphoreState::Initial);
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_external_semaphore_ext_handle_t hSemaphore = externalSemaphore->toHandle();
|
||||
ze_result_t result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 0, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(cmdList.appendWaitOnEventsCalledTimes, 1u);
|
||||
|
||||
@@ -50,24 +50,24 @@ using MockDriverHandleImp = Mock<L0::DriverHandleImp>;
|
||||
HWTEST_F(WddmExternalSemaphoreTest, DISABLED_givenValidExternalSemaphoreWhenImportExternalSemaphoreExpIsCalledThenSuccessIsReturned) {
|
||||
auto l0Device = std::make_unique<MockDeviceImp>(neoDevice, neoDevice->getExecutionEnvironment());
|
||||
auto driverHandleImp = std::make_unique<MockDriverHandleImp>();
|
||||
ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
HANDLE extSemaphoreHandle = 0;
|
||||
|
||||
l0Device->setDriverHandle(driverHandleImp.get());
|
||||
|
||||
ze_intel_external_semaphore_win32_exp_desc_t win32Desc = {};
|
||||
ze_external_semaphore_win32_ext_desc_t win32Desc = {};
|
||||
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
|
||||
|
||||
win32Desc.stype = ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.stype = ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.handle = reinterpret_cast<void *>(extSemaphoreHandle);
|
||||
|
||||
desc.pNext = &win32Desc;
|
||||
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
result = zeIntelDeviceReleaseExternalSemaphoreExp(hSemaphore);
|
||||
result = zeDeviceReleaseExternalSemaphoreExt(hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -108,19 +108,19 @@ HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenEnqueueSignalFailsWhenExterna
|
||||
|
||||
static_cast<OsEnvironmentWin *>(l0Device->neoDevice->getExecutionEnvironment()->osEnvironment.get())->gdi.reset(mockGdi);
|
||||
|
||||
ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
HANDLE extSemaphoreHandle = 0;
|
||||
ze_intel_external_semaphore_win32_exp_desc_t win32Desc = {};
|
||||
ze_external_semaphore_win32_ext_desc_t win32Desc = {};
|
||||
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
|
||||
|
||||
win32Desc.stype = ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.stype = ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.handle = reinterpret_cast<void *>(extSemaphoreHandle);
|
||||
|
||||
desc.pNext = &win32Desc;
|
||||
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
driverHandleImp->externalSemaphoreController = ExternalSemaphoreController::create();
|
||||
@@ -141,7 +141,7 @@ HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenEnqueueSignalFailsWhenExterna
|
||||
EXPECT_EQ(neoExternalSemaphore->getState(), NEO::ExternalSemaphore::SemaphoreState::Initial);
|
||||
lock.unlock();
|
||||
|
||||
result = zeIntelDeviceReleaseExternalSemaphoreExp(hSemaphore);
|
||||
result = zeDeviceReleaseExternalSemaphoreExt(hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -152,19 +152,19 @@ HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenSemaphoreSignalOperationEvent
|
||||
driverHandleImp->setMemoryManager(mockMemoryManager.get());
|
||||
l0Device->setDriverHandle(driverHandleImp.get());
|
||||
|
||||
ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
HANDLE extSemaphoreHandle = 0;
|
||||
ze_intel_external_semaphore_win32_exp_desc_t win32Desc = {};
|
||||
ze_external_semaphore_win32_ext_desc_t win32Desc = {};
|
||||
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
|
||||
|
||||
win32Desc.stype = ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.stype = ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.handle = reinterpret_cast<void *>(extSemaphoreHandle);
|
||||
|
||||
desc.pNext = &win32Desc;
|
||||
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
driverHandleImp->externalSemaphoreController = ExternalSemaphoreController::create();
|
||||
@@ -185,13 +185,13 @@ HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenSemaphoreSignalOperationEvent
|
||||
EXPECT_EQ(neoExternalSemaphore->getState(), NEO::ExternalSemaphore::SemaphoreState::Signaled);
|
||||
lock.unlock();
|
||||
|
||||
result = zeIntelDeviceReleaseExternalSemaphoreExp(hSemaphore);
|
||||
result = zeDeviceReleaseExternalSemaphoreExt(hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenImmediateCommandListWhenAppendWaitExternalSemaphoresExpIsCalledThenSuccessIsReturned, MatchAny) {
|
||||
ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
HANDLE extSemaphoreHandle = 0;
|
||||
|
||||
auto mockMemoryManager = std::make_unique<MockMemoryManager>();
|
||||
@@ -210,29 +210,29 @@ HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenImmediateCommandListWhenAppen
|
||||
commandList->setCmdListContext(context);
|
||||
auto &cmdList = static_cast<MockCommandListImmediate<gfxCoreFamily> &>(*commandList);
|
||||
|
||||
ze_intel_external_semaphore_win32_exp_desc_t win32Desc = {};
|
||||
ze_external_semaphore_win32_ext_desc_t win32Desc = {};
|
||||
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
|
||||
|
||||
win32Desc.stype = ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.stype = ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.handle = reinterpret_cast<void *>(extSemaphoreHandle);
|
||||
|
||||
desc.pNext = &win32Desc;
|
||||
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 0, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
result = zeIntelDeviceReleaseExternalSemaphoreExp(hSemaphore);
|
||||
result = zeDeviceReleaseExternalSemaphoreExt(hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenRegularCommandListWhenAppendWaitExternalSemaphoresExpIsCalledThenInvalidArgumentIsReturned, MatchAny) {
|
||||
ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
HANDLE extSemaphoreHandle = 0;
|
||||
|
||||
auto mockMemoryManager = std::make_unique<MockMemoryManager>();
|
||||
@@ -244,23 +244,23 @@ HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenRegularCommandListWhenAppendW
|
||||
MockCommandListCoreFamily<gfxCoreFamily> cmdList;
|
||||
cmdList.initialize(device, NEO::EngineGroupType::renderCompute, 0u);
|
||||
|
||||
ze_intel_external_semaphore_win32_exp_desc_t win32Desc = {};
|
||||
ze_external_semaphore_win32_ext_desc_t win32Desc = {};
|
||||
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
|
||||
|
||||
win32Desc.stype = ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.stype = ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.handle = reinterpret_cast<void *>(extSemaphoreHandle);
|
||||
|
||||
desc.pNext = &win32Desc;
|
||||
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 0, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_ERROR_INVALID_ARGUMENT);
|
||||
|
||||
result = zeIntelDeviceReleaseExternalSemaphoreExp(hSemaphore);
|
||||
result = zeDeviceReleaseExternalSemaphoreExt(hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -293,8 +293,8 @@ struct MockCommandListImmediateExtSem : public WhiteBox<::L0::CommandListCoreFam
|
||||
};
|
||||
|
||||
HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenInternalProxyEventFailsToAppendWhenAppendWaitExternalSemaphoresExpIsCalledThenErrorIsReturned, MatchAny) {
|
||||
ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
HANDLE extSemaphoreHandle = 0;
|
||||
|
||||
auto mockMemoryManager = std::make_unique<MockMemoryManager>();
|
||||
@@ -313,29 +313,29 @@ HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenInternalProxyEventFailsToAppe
|
||||
cmdList.setCmdListContext(context);
|
||||
cmdList.failingWaitOnEvents = true;
|
||||
|
||||
ze_intel_external_semaphore_win32_exp_desc_t win32Desc = {};
|
||||
ze_external_semaphore_win32_ext_desc_t win32Desc = {};
|
||||
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
|
||||
|
||||
win32Desc.stype = ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.stype = ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.handle = reinterpret_cast<void *>(extSemaphoreHandle);
|
||||
|
||||
desc.pNext = &win32Desc;
|
||||
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 0, nullptr);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
result = zeIntelDeviceReleaseExternalSemaphoreExp(hSemaphore);
|
||||
result = zeDeviceReleaseExternalSemaphoreExt(hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenWaitEventFailsToAppendWhenAppendWaitExternalSemaphoresExpIsCalledThenErrorIsReturned, MatchAny) {
|
||||
ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
HANDLE extSemaphoreHandle = 0;
|
||||
|
||||
auto mockMemoryManager = std::make_unique<MockMemoryManager>();
|
||||
@@ -354,30 +354,30 @@ HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenWaitEventFailsToAppendWhenApp
|
||||
cmdList.setCmdListContext(context);
|
||||
cmdList.failingWaitOnEvents = true;
|
||||
|
||||
ze_intel_external_semaphore_win32_exp_desc_t win32Desc = {};
|
||||
ze_external_semaphore_win32_ext_desc_t win32Desc = {};
|
||||
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
|
||||
|
||||
win32Desc.stype = ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.stype = ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.handle = reinterpret_cast<void *>(extSemaphoreHandle);
|
||||
|
||||
desc.pNext = &win32Desc;
|
||||
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
ze_event_handle_t waitEvent;
|
||||
result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, nullptr, 1, &waitEvent);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
result = zeIntelDeviceReleaseExternalSemaphoreExp(hSemaphore);
|
||||
result = zeDeviceReleaseExternalSemaphoreExt(hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenSignalEventFailsWhenAppendWaitExternalSemaphoresExpIsCalledThenErrorIsReturned, MatchAny) {
|
||||
ze_intel_external_semaphore_exp_desc_t desc = {};
|
||||
ze_intel_external_semaphore_exp_handle_t hSemaphore;
|
||||
ze_external_semaphore_ext_desc_t desc = {};
|
||||
ze_external_semaphore_ext_handle_t hSemaphore;
|
||||
HANDLE extSemaphoreHandle = 0;
|
||||
|
||||
auto mockMemoryManager = std::make_unique<MockMemoryManager>();
|
||||
@@ -396,25 +396,25 @@ HWTEST2_F(WddmExternalSemaphoreTest, DISABLED_givenSignalEventFailsWhenAppendWai
|
||||
cmdList.setCmdListContext(context);
|
||||
cmdList.failingSignalEvent = true;
|
||||
|
||||
ze_intel_external_semaphore_win32_exp_desc_t win32Desc = {};
|
||||
ze_external_semaphore_win32_ext_desc_t win32Desc = {};
|
||||
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXP_FLAGS_OPAQUE_WIN32;
|
||||
desc.flags = ZE_EXTERNAL_SEMAPHORE_EXT_FLAG_OPAQUE_WIN32;
|
||||
|
||||
win32Desc.stype = ZE_INTEL_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXP_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.stype = ZE_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_WIN32_EXT_DESC; // NOLINT(clang-analyzer-optin.core.EnumCastOutOfRange)
|
||||
win32Desc.handle = reinterpret_cast<void *>(extSemaphoreHandle);
|
||||
|
||||
desc.pNext = &win32Desc;
|
||||
|
||||
ze_result_t result = zeIntelDeviceImportExternalSemaphoreExp(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
ze_result_t result = zeDeviceImportExternalSemaphoreExt(l0Device->toHandle(), &desc, &hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
ze_intel_external_semaphore_wait_params_exp_t waitParams = {};
|
||||
ze_external_semaphore_wait_params_ext_t waitParams = {};
|
||||
MockEvent signalEvent;
|
||||
|
||||
result = cmdList.appendWaitExternalSemaphores(1, &hSemaphore, &waitParams, signalEvent.toHandle(), 0, nullptr);
|
||||
EXPECT_NE(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
result = zeIntelDeviceReleaseExternalSemaphoreExp(hSemaphore);
|
||||
result = zeDeviceReleaseExternalSemaphoreExt(hSemaphore);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user