refactor: add residency parameter to command list append kernel call
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
parent
cccd9a3703
commit
186e3d2b83
|
@ -97,7 +97,7 @@ struct CommandList : _ze_command_list_handle_t {
|
||||||
ze_event_handle_t *phWaitEvents, bool relaxedOrderingDispatch) = 0;
|
ze_event_handle_t *phWaitEvents, bool relaxedOrderingDispatch) = 0;
|
||||||
virtual ze_result_t appendLaunchKernel(ze_kernel_handle_t kernelHandle, const ze_group_count_t &threadGroupDimensions,
|
virtual ze_result_t appendLaunchKernel(ze_kernel_handle_t kernelHandle, const ze_group_count_t &threadGroupDimensions,
|
||||||
ze_event_handle_t hEvent, uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents,
|
ze_event_handle_t hEvent, uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents,
|
||||||
const CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) = 0;
|
CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) = 0;
|
||||||
virtual ze_result_t appendLaunchCooperativeKernel(ze_kernel_handle_t kernelHandle,
|
virtual ze_result_t appendLaunchCooperativeKernel(ze_kernel_handle_t kernelHandle,
|
||||||
const ze_group_count_t &launchKernelArgs,
|
const ze_group_count_t &launchKernelArgs,
|
||||||
ze_event_handle_t hSignalEvent,
|
ze_event_handle_t hSignalEvent,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020-2023 Intel Corporation
|
* Copyright (C) 2020-2024 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -105,7 +105,7 @@ struct CommandListCoreFamily : public CommandListImp {
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
ze_event_handle_t hEvent, uint32_t numWaitEvents,
|
ze_event_handle_t hEvent, uint32_t numWaitEvents,
|
||||||
ze_event_handle_t *phWaitEvents,
|
ze_event_handle_t *phWaitEvents,
|
||||||
const CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) override;
|
CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) override;
|
||||||
ze_result_t appendLaunchCooperativeKernel(ze_kernel_handle_t kernelHandle,
|
ze_result_t appendLaunchCooperativeKernel(ze_kernel_handle_t kernelHandle,
|
||||||
const ze_group_count_t &launchKernelArgs,
|
const ze_group_count_t &launchKernelArgs,
|
||||||
ze_event_handle_t hSignalEvent,
|
ze_event_handle_t hSignalEvent,
|
||||||
|
@ -253,18 +253,18 @@ struct CommandListCoreFamily : public CommandListImp {
|
||||||
virtual ze_result_t appendLaunchKernelWithParams(Kernel *kernel,
|
virtual ze_result_t appendLaunchKernelWithParams(Kernel *kernel,
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
Event *event,
|
Event *event,
|
||||||
const CmdListKernelLaunchParams &launchParams);
|
CmdListKernelLaunchParams &launchParams);
|
||||||
MOCKABLE_VIRTUAL ze_result_t appendLaunchKernelSplit(Kernel *kernel,
|
MOCKABLE_VIRTUAL ze_result_t appendLaunchKernelSplit(Kernel *kernel,
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
Event *event,
|
Event *event,
|
||||||
const CmdListKernelLaunchParams &launchParams);
|
CmdListKernelLaunchParams &launchParams);
|
||||||
|
|
||||||
ze_result_t appendUnalignedFillKernel(bool isStateless,
|
ze_result_t appendUnalignedFillKernel(bool isStateless,
|
||||||
uint32_t unalignedSize,
|
uint32_t unalignedSize,
|
||||||
const AlignedAllocationData &dstAllocation,
|
const AlignedAllocationData &dstAllocation,
|
||||||
const void *pattern,
|
const void *pattern,
|
||||||
Event *signalEvent,
|
Event *signalEvent,
|
||||||
const CmdListKernelLaunchParams &launchParams);
|
CmdListKernelLaunchParams &launchParams);
|
||||||
|
|
||||||
void appendWaitOnSingleEvent(Event *event, bool relaxedOrderingAllowed);
|
void appendWaitOnSingleEvent(Event *event, bool relaxedOrderingAllowed);
|
||||||
|
|
||||||
|
|
|
@ -348,7 +348,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernel(ze_kernel_h
|
||||||
ze_event_handle_t hEvent,
|
ze_event_handle_t hEvent,
|
||||||
uint32_t numWaitEvents,
|
uint32_t numWaitEvents,
|
||||||
ze_event_handle_t *phWaitEvents,
|
ze_event_handle_t *phWaitEvents,
|
||||||
const CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) {
|
CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) {
|
||||||
|
|
||||||
NEO::Device *neoDevice = device->getNEODevice();
|
NEO::Device *neoDevice = device->getNEODevice();
|
||||||
uint32_t callId = 0;
|
uint32_t callId = 0;
|
||||||
|
@ -1804,7 +1804,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendMemoryPrefetch(const voi
|
||||||
}
|
}
|
||||||
|
|
||||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||||
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendUnalignedFillKernel(bool isStateless, uint32_t unalignedSize, const AlignedAllocationData &dstAllocation, const void *pattern, Event *signalEvent, const CmdListKernelLaunchParams &launchParams) {
|
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendUnalignedFillKernel(bool isStateless, uint32_t unalignedSize, const AlignedAllocationData &dstAllocation, const void *pattern, Event *signalEvent, CmdListKernelLaunchParams &launchParams) {
|
||||||
|
|
||||||
const bool isHeapless = this->isHeaplessModeEnabled();
|
const bool isHeapless = this->isHeaplessModeEnabled();
|
||||||
auto builtin = BuiltinTypeHelper::adjustBuiltinType<Builtin::fillBufferImmediateLeftOver>(isStateless, isHeapless);
|
auto builtin = BuiltinTypeHelper::adjustBuiltinType<Builtin::fillBufferImmediateLeftOver>(isStateless, isHeapless);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020-2023 Intel Corporation
|
* Copyright (C) 2020-2024 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -56,7 +56,7 @@ struct CommandListCoreFamilyImmediate : public CommandListCoreFamily<gfxCoreFami
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
ze_event_handle_t hEvent, uint32_t numWaitEvents,
|
ze_event_handle_t hEvent, uint32_t numWaitEvents,
|
||||||
ze_event_handle_t *phWaitEvents,
|
ze_event_handle_t *phWaitEvents,
|
||||||
const CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) override;
|
CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) override;
|
||||||
|
|
||||||
ze_result_t appendLaunchKernelIndirect(ze_kernel_handle_t kernelHandle,
|
ze_result_t appendLaunchKernelIndirect(ze_kernel_handle_t kernelHandle,
|
||||||
const ze_group_count_t &pDispatchArgumentsBuffer,
|
const ze_group_count_t &pDispatchArgumentsBuffer,
|
||||||
|
|
|
@ -433,7 +433,7 @@ template <GFXCORE_FAMILY gfxCoreFamily>
|
||||||
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendLaunchKernel(
|
ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendLaunchKernel(
|
||||||
ze_kernel_handle_t kernelHandle, const ze_group_count_t &threadGroupDimensions,
|
ze_kernel_handle_t kernelHandle, const ze_group_count_t &threadGroupDimensions,
|
||||||
ze_event_handle_t hSignalEvent, uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents,
|
ze_event_handle_t hSignalEvent, uint32_t numWaitEvents, ze_event_handle_t *phWaitEvents,
|
||||||
const CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) {
|
CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) {
|
||||||
|
|
||||||
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(numWaitEvents);
|
relaxedOrderingDispatch = isRelaxedOrderingDispatchAllowed(numWaitEvents);
|
||||||
bool stallingCmdsForRelaxedOrdering = hasStallingCmdsForRelaxedOrdering(numWaitEvents, relaxedOrderingDispatch);
|
bool stallingCmdsForRelaxedOrdering = hasStallingCmdsForRelaxedOrdering(numWaitEvents, relaxedOrderingDispatch);
|
||||||
|
|
|
@ -49,7 +49,7 @@ template <GFXCORE_FAMILY gfxCoreFamily>
|
||||||
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(Kernel *kernel,
|
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(Kernel *kernel,
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
Event *event,
|
Event *event,
|
||||||
const CmdListKernelLaunchParams &launchParams) {
|
CmdListKernelLaunchParams &launchParams) {
|
||||||
UNRECOVERABLE_IF(kernel == nullptr);
|
UNRECOVERABLE_IF(kernel == nullptr);
|
||||||
UNRECOVERABLE_IF(launchParams.skipInOrderNonWalkerSignaling);
|
UNRECOVERABLE_IF(launchParams.skipInOrderNonWalkerSignaling);
|
||||||
const auto driverHandle = static_cast<DriverHandleImp *>(device->getDriverHandle());
|
const auto driverHandle = static_cast<DriverHandleImp *>(device->getDriverHandle());
|
||||||
|
@ -324,7 +324,7 @@ template <GFXCORE_FAMILY gfxCoreFamily>
|
||||||
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelSplit(Kernel *kernel,
|
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelSplit(Kernel *kernel,
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
Event *event,
|
Event *event,
|
||||||
const CmdListKernelLaunchParams &launchParams) {
|
CmdListKernelLaunchParams &launchParams) {
|
||||||
return appendLaunchKernelWithParams(kernel, threadGroupDimensions, nullptr, launchParams);
|
return appendLaunchKernelWithParams(kernel, threadGroupDimensions, nullptr, launchParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ bool CommandListCoreFamily<gfxCoreFamily>::isInOrderNonWalkerSignalingRequired(c
|
||||||
|
|
||||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||||
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(Kernel *kernel, const ze_group_count_t &threadGroupDimensions, Event *event,
|
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(Kernel *kernel, const ze_group_count_t &threadGroupDimensions, Event *event,
|
||||||
const CmdListKernelLaunchParams &launchParams) {
|
CmdListKernelLaunchParams &launchParams) {
|
||||||
|
|
||||||
if (NEO::debugManager.flags.ForcePipeControlPriorToWalker.get()) {
|
if (NEO::debugManager.flags.ForcePipeControlPriorToWalker.get()) {
|
||||||
NEO::PipeControlArgs args;
|
NEO::PipeControlArgs args;
|
||||||
|
@ -388,9 +388,11 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(K
|
||||||
// Attach kernel residency to our CommandList residency
|
// Attach kernel residency to our CommandList residency
|
||||||
{
|
{
|
||||||
commandContainer.addToResidencyContainer(kernelImmutableData->getIsaGraphicsAllocation());
|
commandContainer.addToResidencyContainer(kernelImmutableData->getIsaGraphicsAllocation());
|
||||||
auto &residencyContainer = kernel->getResidencyContainer();
|
if (!launchParams.omitAddingKernelResidency) {
|
||||||
for (auto resource : residencyContainer) {
|
auto &residencyContainer = kernel->getResidencyContainer();
|
||||||
commandContainer.addToResidencyContainer(resource);
|
for (auto resource : residencyContainer) {
|
||||||
|
commandContainer.addToResidencyContainer(resource);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -485,7 +487,7 @@ template <GFXCORE_FAMILY gfxCoreFamily>
|
||||||
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelSplit(Kernel *kernel,
|
ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelSplit(Kernel *kernel,
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
Event *event,
|
Event *event,
|
||||||
const CmdListKernelLaunchParams &launchParams) {
|
CmdListKernelLaunchParams &launchParams) {
|
||||||
if (event) {
|
if (event) {
|
||||||
if (eventSignalPipeControl(launchParams.isKernelSplitOperation, getDcFlushRequired(event->isSignalScope()))) {
|
if (eventSignalPipeControl(launchParams.isKernelSplitOperation, getDcFlushRequired(event->isSignalScope()))) {
|
||||||
event = nullptr;
|
event = nullptr;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2023 Intel Corporation
|
* Copyright (C) 2023-2024 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -27,5 +27,6 @@ struct CmdListKernelLaunchParams {
|
||||||
bool isHostSignalScopeEvent = false;
|
bool isHostSignalScopeEvent = false;
|
||||||
bool skipInOrderNonWalkerSignaling = false;
|
bool skipInOrderNonWalkerSignaling = false;
|
||||||
bool pipeControlSignalling = false;
|
bool pipeControlSignalling = false;
|
||||||
|
bool omitAddingKernelResidency = false;
|
||||||
};
|
};
|
||||||
} // namespace L0
|
} // namespace L0
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020-2023 Intel Corporation
|
* Copyright (C) 2020-2024 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -216,7 +216,7 @@ class AppendFillFixture : public DeviceFixture {
|
||||||
ze_result_t appendLaunchKernelWithParams(Kernel *kernel,
|
ze_result_t appendLaunchKernelWithParams(Kernel *kernel,
|
||||||
const ze_group_count_t &pThreadGroupDimensions,
|
const ze_group_count_t &pThreadGroupDimensions,
|
||||||
L0::Event *event,
|
L0::Event *event,
|
||||||
const CmdListKernelLaunchParams &launchParams) override {
|
CmdListKernelLaunchParams &launchParams) override {
|
||||||
if (numberOfCallsToAppendLaunchKernelWithParams == thresholdOfCallsToAppendLaunchKernelWithParamsToFail) {
|
if (numberOfCallsToAppendLaunchKernelWithParams == thresholdOfCallsToAppendLaunchKernelWithParamsToFail) {
|
||||||
return ZE_RESULT_ERROR_UNKNOWN;
|
return ZE_RESULT_ERROR_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,6 +92,7 @@ struct ModuleImmutableDataFixture : public DeviceFixture {
|
||||||
using KernelImp::printfBuffer;
|
using KernelImp::printfBuffer;
|
||||||
using KernelImp::privateMemoryGraphicsAllocation;
|
using KernelImp::privateMemoryGraphicsAllocation;
|
||||||
using KernelImp::requiredWorkgroupOrder;
|
using KernelImp::requiredWorkgroupOrder;
|
||||||
|
using KernelImp::residencyContainer;
|
||||||
using KernelImp::surfaceStateHeapData;
|
using KernelImp::surfaceStateHeapData;
|
||||||
using KernelImp::surfaceStateHeapDataSize;
|
using KernelImp::surfaceStateHeapDataSize;
|
||||||
using KernelImp::unifiedMemoryControls;
|
using KernelImp::unifiedMemoryControls;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020-2023 Intel Corporation
|
* Copyright (C) 2020-2024 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -111,7 +111,7 @@ struct WhiteBox<::L0::CommandListCoreFamily<gfxCoreFamily>>
|
||||||
ze_result_t appendLaunchKernelWithParams(::L0::Kernel *kernel,
|
ze_result_t appendLaunchKernelWithParams(::L0::Kernel *kernel,
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
::L0::Event *event,
|
::L0::Event *event,
|
||||||
const CmdListKernelLaunchParams &launchParams) override {
|
CmdListKernelLaunchParams &launchParams) override {
|
||||||
|
|
||||||
usedKernelLaunchParams = launchParams;
|
usedKernelLaunchParams = launchParams;
|
||||||
if (launchParams.isKernelSplitOperation && (launchParams.numKernelsExecutedInSplitLaunch == 0)) {
|
if (launchParams.isKernelSplitOperation && (launchParams.numKernelsExecutedInSplitLaunch == 0)) {
|
||||||
|
@ -301,7 +301,7 @@ struct MockCommandList : public CommandList {
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
ze_event_handle_t hEvent, uint32_t numWaitEvents,
|
ze_event_handle_t hEvent, uint32_t numWaitEvents,
|
||||||
ze_event_handle_t *phWaitEvents,
|
ze_event_handle_t *phWaitEvents,
|
||||||
const CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch));
|
CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch));
|
||||||
|
|
||||||
ADDMETHOD_NOBASE(appendLaunchCooperativeKernel, ze_result_t, ZE_RESULT_SUCCESS,
|
ADDMETHOD_NOBASE(appendLaunchCooperativeKernel, ze_result_t, ZE_RESULT_SUCCESS,
|
||||||
(ze_kernel_handle_t kernelHandle,
|
(ze_kernel_handle_t kernelHandle,
|
||||||
|
@ -699,7 +699,7 @@ class MockCommandListForAppendLaunchKernel : public WhiteBox<::L0::CommandListCo
|
||||||
ze_event_handle_t hEvent,
|
ze_event_handle_t hEvent,
|
||||||
uint32_t numWaitEvents,
|
uint32_t numWaitEvents,
|
||||||
ze_event_handle_t *phWaitEvents,
|
ze_event_handle_t *phWaitEvents,
|
||||||
const CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) override {
|
CmdListKernelLaunchParams &launchParams, bool relaxedOrderingDispatch) override {
|
||||||
|
|
||||||
const auto kernel = Kernel::fromHandle(kernelHandle);
|
const auto kernel = Kernel::fromHandle(kernelHandle);
|
||||||
cmdListHelper.isaAllocation = kernel->getIsaAllocation();
|
cmdListHelper.isaAllocation = kernel->getIsaAllocation();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2023 Intel Corporation
|
* Copyright (C) 2023-2024 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -1273,7 +1273,7 @@ class MockCommandListHwKernelSplit : public WhiteBox<::L0::CommandListCoreFamily
|
||||||
ze_result_t appendLaunchKernelSplit(::L0::Kernel *kernel,
|
ze_result_t appendLaunchKernelSplit(::L0::Kernel *kernel,
|
||||||
const ze_group_count_t &threadGroupDimensions,
|
const ze_group_count_t &threadGroupDimensions,
|
||||||
::L0::Event *event,
|
::L0::Event *event,
|
||||||
const CmdListKernelLaunchParams &launchParams) override {
|
CmdListKernelLaunchParams &launchParams) override {
|
||||||
passedKernel = kernel;
|
passedKernel = kernel;
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020-2023 Intel Corporation
|
* Copyright (C) 2020-2024 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -17,6 +17,7 @@
|
||||||
#include "shared/test/common/helpers/unit_test_helper.h"
|
#include "shared/test/common/helpers/unit_test_helper.h"
|
||||||
#include "shared/test/common/libult/ult_command_stream_receiver.h"
|
#include "shared/test/common/libult/ult_command_stream_receiver.h"
|
||||||
#include "shared/test/common/mocks/mock_device.h"
|
#include "shared/test/common/mocks/mock_device.h"
|
||||||
|
#include "shared/test/common/mocks/mock_graphics_allocation.h"
|
||||||
#include "shared/test/common/test_macros/hw_test.h"
|
#include "shared/test/common/test_macros/hw_test.h"
|
||||||
|
|
||||||
#include "level_zero/core/source/cmdlist/cmdlist_hw_immediate.h"
|
#include "level_zero/core/source/cmdlist/cmdlist_hw_immediate.h"
|
||||||
|
@ -1455,5 +1456,32 @@ HWTEST2_F(CommandListAppendLaunchKernel, whenUpdateStreamPropertiesIsCalledThenC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HWTEST2_F(CommandListAppendLaunchKernelMockModule,
|
||||||
|
givenFlagOmitKernelResourcePassToCmdlistResidencyWhenAppendingKernelThenExpectNoKernelArgumentsInCmdlistResidency,
|
||||||
|
IsAtLeastXeHpCore) {
|
||||||
|
NEO::MockGraphicsAllocation mockAllocation;
|
||||||
|
NEO::GraphicsAllocation *allocation = &mockAllocation;
|
||||||
|
kernel->residencyContainer.push_back(allocation);
|
||||||
|
|
||||||
|
ze_group_count_t groupCount{1, 1, 1};
|
||||||
|
ze_result_t returnValue;
|
||||||
|
CmdListKernelLaunchParams launchParams = {};
|
||||||
|
launchParams.omitAddingKernelResidency = true;
|
||||||
|
returnValue = commandList->appendLaunchKernel(kernel->toHandle(), groupCount, nullptr, 0, nullptr, launchParams, false);
|
||||||
|
ASSERT_EQ(ZE_RESULT_SUCCESS, returnValue);
|
||||||
|
|
||||||
|
auto &cmdlistResidency = commandList->getCmdContainer().getResidencyContainer();
|
||||||
|
|
||||||
|
auto kernelAllocationIt = std::find(cmdlistResidency.begin(), cmdlistResidency.end(), allocation);
|
||||||
|
EXPECT_EQ(kernelAllocationIt, cmdlistResidency.end());
|
||||||
|
|
||||||
|
launchParams.omitAddingKernelResidency = false;
|
||||||
|
returnValue = commandList->appendLaunchKernel(kernel->toHandle(), groupCount, nullptr, 0, nullptr, launchParams, false);
|
||||||
|
ASSERT_EQ(ZE_RESULT_SUCCESS, returnValue);
|
||||||
|
|
||||||
|
kernelAllocationIt = std::find(cmdlistResidency.begin(), cmdlistResidency.end(), allocation);
|
||||||
|
EXPECT_NE(kernelAllocationIt, cmdlistResidency.end());
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ult
|
} // namespace ult
|
||||||
} // namespace L0
|
} // namespace L0
|
||||||
|
|
Loading…
Reference in New Issue