mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-07 21:27:04 +08:00
fix: using releaseHelper to determine MTP enablement
Related-To: NEO-12466 Signed-off-by: Andrzej Koska <andrzej.koska@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
e4be88dff0
commit
6abc5eb1a1
@@ -19,6 +19,7 @@
|
||||
#include "shared/source/kernel/kernel_descriptor.h"
|
||||
#include "shared/source/program/kernel_info.h"
|
||||
#include "shared/source/program/kernel_info_from_patchtokens.h"
|
||||
#include "shared/source/release_helper/release_helper.h"
|
||||
#include "shared/source/utilities/stackvec.h"
|
||||
#include "shared/test/common/compiler_interface/linker_mock.h"
|
||||
#include "shared/test/common/device_binary_format/patchtokens_tests.h"
|
||||
@@ -29,6 +30,7 @@
|
||||
#include "shared/test/common/mocks/mock_bindless_heaps_helper.h"
|
||||
#include "shared/test/common/mocks/mock_device.h"
|
||||
#include "shared/test/common/mocks/mock_graphics_allocation.h"
|
||||
#include "shared/test/common/mocks/mock_release_helper.h"
|
||||
#include "shared/test/common/test_macros/hw_test.h"
|
||||
#include "shared/test/common/test_macros/test_checks_shared.h"
|
||||
|
||||
@@ -104,7 +106,60 @@ TEST_F(KernelInitTest, givenKernelToInitWhenItHasUnknownArgThenUnknowKernelArgHa
|
||||
kernel->initialize(&desc);
|
||||
EXPECT_EQ(kernel->kernelArgHandlers[0], &KernelImp::setArgUnknown);
|
||||
EXPECT_EQ(mockKernelImmData->getDescriptor().payloadMappings.explicitArgs[0].type, NEO::ArgDescriptor::argTUnknown);
|
||||
EXPECT_EQ(getHelper<ProductHelper>().isMidThreadPreemptionDisallowedForRayTracingKernels(), kernel->isMidThreadPreemptionDisallowedForRayTracingKernels());
|
||||
auto releaseHelper = neoDevice->getRootDeviceEnvironment().getReleaseHelper();
|
||||
if (releaseHelper) {
|
||||
EXPECT_EQ(releaseHelper->isMidThreadPreemptionDisallowedForRayTracingKernels(), kernel->isMidThreadPreemptionDisallowedForRayTracingKernels());
|
||||
} else {
|
||||
EXPECT_FALSE(kernel->isMidThreadPreemptionDisallowedForRayTracingKernels());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(KernelInitTest, givenKernelToInitAndPreemptionEnabledWhenItHasUnknownArgThenUnknowKernelArgHandlerAssigned) {
|
||||
uint32_t perHwThreadPrivateMemorySizeRequested = 32u;
|
||||
|
||||
std::unique_ptr<MockImmutableData> mockKernelImmData =
|
||||
std::make_unique<MockImmutableData>(perHwThreadPrivateMemorySizeRequested);
|
||||
|
||||
createModuleFromMockBinary(perHwThreadPrivateMemorySizeRequested, false, mockKernelImmData.get());
|
||||
std::unique_ptr<ModuleImmutableDataFixture::MockKernel> kernel;
|
||||
kernel = std::make_unique<ModuleImmutableDataFixture::MockKernel>(module.get());
|
||||
|
||||
auto releaseHelper = std::make_unique<MockReleaseHelper>();
|
||||
releaseHelper->isMidThreadPreemptionDisallowedForRayTracingKernelsResult = true;
|
||||
module.get()->getDevice()->getNEODevice()->getRootDeviceEnvironmentRef().releaseHelper = std::move(releaseHelper);
|
||||
|
||||
ze_kernel_desc_t desc = {};
|
||||
desc.pKernelName = kernelName.c_str();
|
||||
mockKernelImmData->resizeExplicitArgs(1);
|
||||
|
||||
kernel->initialize(&desc);
|
||||
EXPECT_EQ(kernel->kernelArgHandlers[0], &KernelImp::setArgUnknown);
|
||||
EXPECT_EQ(mockKernelImmData->getDescriptor().payloadMappings.explicitArgs[0].type, NEO::ArgDescriptor::argTUnknown);
|
||||
EXPECT_TRUE(kernel->isMidThreadPreemptionDisallowedForRayTracingKernels());
|
||||
}
|
||||
|
||||
TEST_F(KernelInitTest, givenKernelToInitAndPreemptionDisabledWhenItHasUnknownArgThenUnknowKernelArgHandlerAssigned) {
|
||||
uint32_t perHwThreadPrivateMemorySizeRequested = 32u;
|
||||
|
||||
std::unique_ptr<MockImmutableData> mockKernelImmData =
|
||||
std::make_unique<MockImmutableData>(perHwThreadPrivateMemorySizeRequested);
|
||||
|
||||
createModuleFromMockBinary(perHwThreadPrivateMemorySizeRequested, false, mockKernelImmData.get());
|
||||
std::unique_ptr<ModuleImmutableDataFixture::MockKernel> kernel;
|
||||
kernel = std::make_unique<ModuleImmutableDataFixture::MockKernel>(module.get());
|
||||
|
||||
auto releaseHelper = std::make_unique<MockReleaseHelper>();
|
||||
releaseHelper->isMidThreadPreemptionDisallowedForRayTracingKernelsResult = false;
|
||||
module.get()->getDevice()->getNEODevice()->getRootDeviceEnvironmentRef().releaseHelper = std::move(releaseHelper);
|
||||
|
||||
ze_kernel_desc_t desc = {};
|
||||
desc.pKernelName = kernelName.c_str();
|
||||
mockKernelImmData->resizeExplicitArgs(1);
|
||||
|
||||
kernel->initialize(&desc);
|
||||
EXPECT_EQ(kernel->kernelArgHandlers[0], &KernelImp::setArgUnknown);
|
||||
EXPECT_EQ(mockKernelImmData->getDescriptor().payloadMappings.explicitArgs[0].type, NEO::ArgDescriptor::argTUnknown);
|
||||
EXPECT_FALSE(kernel->isMidThreadPreemptionDisallowedForRayTracingKernels());
|
||||
}
|
||||
|
||||
TEST_F(KernelInitTest, givenKernelToInitWhenItHasTooBigPrivateSizeThenOutOfMemoryIsRetutned) {
|
||||
|
||||
Reference in New Issue
Block a user