fix: propagate error createInternalHandle wddm

Unify with linux implementation, return -1 on error and 0 on success.

Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
This commit is contained in:
Dominik Dabek 2025-05-15 12:22:11 +00:00 committed by Compute-Runtime-Automation
parent 10ed5fd804
commit eeddd779f0
5 changed files with 9 additions and 9 deletions

View File

@ -770,7 +770,7 @@ ze_result_t ContextImp::getIpcMemHandlesImpl(const void *ptr,
for (uint32_t i = 0u; i < loopCount; i++) {
uint64_t handle = 0;
int ret = alloc->createInternalHandle(memoryManager, i, handle);
if (ret < 0) {
if (ret != 0) {
return ZE_RESULT_ERROR_OUT_OF_HOST_MEMORY;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2023 Intel Corporation
* Copyright (C) 2023-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -16,12 +16,12 @@ int WddmAllocation::createInternalHandle(MemoryManager *memoryManager, uint32_t
WddmMemoryManager *wddmMemoryManager = reinterpret_cast<WddmMemoryManager *>(memoryManager);
auto status = wddmMemoryManager->createInternalNTHandle(&resourceHandle, &ntSharedHandle, this->getRootDeviceIndex());
if (status != STATUS_SUCCESS) {
return handle == 0;
return -1;
}
ntSecureHandle = castToUint64(ntSharedHandle);
handle = ntSecureHandle;
}
return handle == 0;
return handle == 0 ? -1 : 0;
}
void WddmAllocation::clearInternalHandle(uint32_t handleId) {
ntSecureHandle = 0u;

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2024 Intel Corporation
* Copyright (C) 2018-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -247,7 +247,7 @@ TEST(GraphicsAllocationTest, givenDefaultGraphicsAllocationWhenInternalHandleIsB
TEST(GraphicsAllocationTest, givenDefaultGraphicsAllocationWhenInternalHandleIsBeingObtainedOrCreatedThenZeroIsReturned) {
MockGraphicsAllocation graphicsAllocation;
uint64_t handle = 0;
graphicsAllocation.createInternalHandle(nullptr, 0u, handle);
EXPECT_EQ(0, graphicsAllocation.createInternalHandle(nullptr, 0u, handle));
EXPECT_EQ(0ull, handle);
graphicsAllocation.clearInternalHandle(0u);
}

View File

@ -734,7 +734,7 @@ TEST_F(WddmLinuxTest, givenAllocatedMemoryAndCloseInternalHandleWithoutAllocatio
memoryManager.freeGraphicsMemoryImpl(alloc);
}
TEST_F(WddmLinuxTest, givenAllocatedMemoryAndCreateInternalHandleFailedThenEmpyHandleReturned) {
TEST_F(WddmLinuxTest, givenAllocatedMemoryAndCreateInternalHandleFailedThenEmptyHandleReturned) {
osEnvironment->gdi->reserveGpuVirtualAddress = reserveDeviceAddressSpaceMock;
osEnvironment->gdi->createAllocation2 = createAllocation2Mock;
osEnvironment->gdi->mapGpuVirtualAddress = mapGpuVirtualAddressMock;
@ -756,7 +756,7 @@ TEST_F(WddmLinuxTest, givenAllocatedMemoryAndCreateInternalHandleFailedThenEmpyH
memoryManager.closeInternalHandle(handle, 0u, alloc);
memoryManager.failCreateInternalNTHandle = true;
EXPECT_EQ(1, alloc->createInternalHandle(&memoryManager, 0u, handle));
EXPECT_EQ(-1, alloc->createInternalHandle(&memoryManager, 0u, handle));
memoryManager.freeGraphicsMemoryImpl(alloc);
}

View File

@ -397,7 +397,7 @@ TEST_F(WddmMemoryManagerAllocPathTests, GivenValidAllocationWithFailingCreateInt
memoryManager->closeInternalHandle(handle, 0u, graphicsAllocation);
memoryManager->failCreateInternalNTHandle = true;
EXPECT_EQ(1, graphicsAllocation->createInternalHandle(memoryManager, 0u, handle));
EXPECT_EQ(-1, graphicsAllocation->createInternalHandle(memoryManager, 0u, handle));
memoryManager->freeGraphicsMemory(graphicsAllocation);
}