From 0243004907c950a9f6e49ffde00709b5b390868e Mon Sep 17 00:00:00 2001 From: Damian Tomczak Date: Wed, 26 Mar 2025 15:15:46 +0000 Subject: [PATCH] feature: additional checkers to enable feature Resolves: NEO-13973 Signed-off-by: Damian Tomczak --- .../core/source/helpers/api_specific_config_l0.cpp | 5 +++++ .../sources/helper/api_specific_config_l0_tests.cpp | 3 ++- .../test/unit_tests/sources/module/test_module.cpp | 2 +- opencl/source/helpers/api_specific_config_ocl.cpp | 7 +++++++ opencl/source/program/program.cpp | 2 +- opencl/test/unit_test/built_ins/built_in_tests.cpp | 8 ++++---- .../create_command_stream_receiver_tests.cpp | 4 +++- opencl/test/unit_test/program/program_tests.cpp | 13 +++++-------- shared/source/helpers/compiler_product_helper.h | 2 ++ .../source/helpers/compiler_product_helper_base.inl | 5 +++++ .../common/mocks/mock_compiler_product_helper.h | 1 + .../os_interface/linux/drm_command_stream_fixture.h | 3 ++- .../linux/device_command_stream_tests.cpp | 10 ++++++++++ .../linux/drm_command_stream_mm_tests.cpp | 2 ++ .../os_interface/linux/drm_command_stream_tests.cpp | 6 ++++++ .../linux/drm_command_stream_tests_1.cpp | 2 ++ ...m_command_stream_xehp_and_later_prelim_tests.cpp | 13 +++++++++++++ 17 files changed, 71 insertions(+), 17 deletions(-) diff --git a/level_zero/core/source/helpers/api_specific_config_l0.cpp b/level_zero/core/source/helpers/api_specific_config_l0.cpp index 0df2f42647..c01ff91a8d 100644 --- a/level_zero/core/source/helpers/api_specific_config_l0.cpp +++ b/level_zero/core/source/helpers/api_specific_config_l0.cpp @@ -10,6 +10,7 @@ #include "shared/source/device/device.h" #include "shared/source/execution_environment/root_device_environment.h" #include "shared/source/helpers/api_specific_config.h" +#include "shared/source/helpers/compiler_product_helper.h" #include "shared/source/release_helper/release_helper.h" #include "level_zero/core/source/compiler_interface/l0_reg_path.h" @@ -33,6 +34,10 @@ bool ApiSpecificConfig::getGlobalBindlessHeapConfiguration(const ReleaseHelper * } bool ApiSpecificConfig::getBindlessMode(const Device &device) { + if (device.getCompilerProductHelper().isForceBindlessRequired()) { + return true; + } + if (debugManager.flags.UseBindlessMode.get() != -1) { return debugManager.flags.UseBindlessMode.get(); } diff --git a/level_zero/core/test/unit_tests/sources/helper/api_specific_config_l0_tests.cpp b/level_zero/core/test/unit_tests/sources/helper/api_specific_config_l0_tests.cpp index 0435102d98..eba1e3e3e4 100644 --- a/level_zero/core/test/unit_tests/sources/helper/api_specific_config_l0_tests.cpp +++ b/level_zero/core/test/unit_tests/sources/helper/api_specific_config_l0_tests.cpp @@ -7,6 +7,7 @@ #include "shared/source/command_container/implicit_scaling.h" #include "shared/source/helpers/api_specific_config.h" +#include "shared/source/helpers/compiler_product_helper.h" #include "shared/test/common/helpers/debug_manager_state_restore.h" #include "shared/test/common/mocks/mock_ail_configuration.h" #include "shared/test/common/mocks/mock_device.h" @@ -113,7 +114,7 @@ TEST(ApiSpecificConfigL0Tests, WhenCheckingIfBindlessAddressingIsEnabledThenRetu EXPECT_TRUE(ApiSpecificConfig::getBindlessMode(mockDevice)); mockAilConfigurationHelper.setDisableBindlessAddressing(true); - EXPECT_FALSE(ApiSpecificConfig::getBindlessMode(mockDevice)); + EXPECT_EQ(mockDevice.getCompilerProductHelper().isHeaplessModeEnabled(), ApiSpecificConfig::getBindlessMode(mockDevice)); } } // namespace NEO diff --git a/level_zero/core/test/unit_tests/sources/module/test_module.cpp b/level_zero/core/test/unit_tests/sources/module/test_module.cpp index a5d9febb6b..1b5f85b41b 100644 --- a/level_zero/core/test/unit_tests/sources/module/test_module.cpp +++ b/level_zero/core/test/unit_tests/sources/module/test_module.cpp @@ -3887,7 +3887,7 @@ TEST_F(ModuleTest, givenInternalOptionsWhenBindlessDisabledThenBindlesOptionsNot module->createBuildOptions("", buildOptions, internalBuildOptions); - EXPECT_FALSE(NEO::CompilerOptions::contains(internalBuildOptions, NEO::CompilerOptions::bindlessMode)); + EXPECT_EQ(device->getCompilerProductHelper().isHeaplessModeEnabled(), NEO::CompilerOptions::contains(internalBuildOptions, NEO::CompilerOptions::bindlessMode)); } TEST_F(ModuleTest, givenSrcOptLevelInSrcNamesWhenMovingBuildOptionsThenOptionIsRemovedFromSrcNamesAndTranslatedOptionsStoredInDstNames) { diff --git a/opencl/source/helpers/api_specific_config_ocl.cpp b/opencl/source/helpers/api_specific_config_ocl.cpp index f88742c036..f47fa44b3e 100644 --- a/opencl/source/helpers/api_specific_config_ocl.cpp +++ b/opencl/source/helpers/api_specific_config_ocl.cpp @@ -6,7 +6,10 @@ */ #include "shared/source/debug_settings/debug_settings_manager.h" +#include "shared/source/device/device.h" #include "shared/source/helpers/api_specific_config.h" +#include "shared/source/helpers/compiler_product_helper.h" +#include "shared/source/release_helper/release_helper.h" #include "opencl/source/os_interface/ocl_reg_path.h" @@ -25,6 +28,10 @@ bool ApiSpecificConfig::getGlobalBindlessHeapConfiguration(const ReleaseHelper * } bool ApiSpecificConfig::getBindlessMode(const Device &device) { + if (device.getCompilerProductHelper().isForceBindlessRequired()) { + return true; + } + if (debugManager.flags.UseBindlessMode.get() != -1) { return debugManager.flags.UseBindlessMode.get(); } else { diff --git a/opencl/source/program/program.cpp b/opencl/source/program/program.cpp index 012e2fee91..eea8b60c64 100644 --- a/opencl/source/program/program.cpp +++ b/opencl/source/program/program.cpp @@ -80,7 +80,7 @@ std::string Program::getInternalOptions() const { CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::greaterThan4gbBuffersRequired); } - if (debugManager.flags.UseBindlessMode.get() == 1) { + if (NEO::ApiSpecificConfig::getBindlessMode(pClDevice->getDevice())) { CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::bindlessMode); } diff --git a/opencl/test/unit_test/built_ins/built_in_tests.cpp b/opencl/test/unit_test/built_ins/built_in_tests.cpp index 3bbefedf3f..e348d70ed0 100644 --- a/opencl/test/unit_test/built_ins/built_in_tests.cpp +++ b/opencl/test/unit_test/built_ins/built_in_tests.cpp @@ -1653,7 +1653,7 @@ TEST_F(BuiltInTests, WhenBuiltinsLibIsCreatedThenAllStoragesSizeIsTwo) { TEST_F(BuiltInTests, GivenTypeAnyWhenGettingBuiltinCodeThenCorrectBuiltinReturned) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); - BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::copyBufferToBuffer, BuiltinCode::ECodeType::any, *pDevice); + BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::adjustBuiltinType(false, pDevice->getCompilerProductHelper().isHeaplessModeEnabled()), BuiltinCode::ECodeType::any, *pDevice); EXPECT_EQ(BuiltinCode::ECodeType::binary, code.type); EXPECT_NE(0u, code.resource.size()); EXPECT_EQ(pDevice, code.targetDevice); @@ -1661,7 +1661,7 @@ TEST_F(BuiltInTests, GivenTypeAnyWhenGettingBuiltinCodeThenCorrectBuiltinReturne TEST_F(BuiltInTests, GivenTypeBinaryWhenGettingBuiltinCodeThenCorrectBuiltinReturned) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); - BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::copyBufferToBuffer, BuiltinCode::ECodeType::binary, *pDevice); + BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::adjustBuiltinType(false, pDevice->getCompilerProductHelper().isHeaplessModeEnabled()), BuiltinCode::ECodeType::binary, *pDevice); EXPECT_EQ(BuiltinCode::ECodeType::binary, code.type); EXPECT_NE(0u, code.resource.size()); EXPECT_EQ(pDevice, code.targetDevice); @@ -1810,7 +1810,7 @@ TEST_F(BuiltInTests, GivenTypeIntermediateWhenCreatingProgramFromCodeThenNullPoi TEST_F(BuiltInTests, GivenTypeBinaryWhenCreatingProgramFromCodeThenValidPointerIsReturned) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); - const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::copyBufferToBuffer, BuiltinCode::ECodeType::binary, *pDevice); + const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::adjustBuiltinType(false, pDevice->getCompilerProductHelper().isHeaplessModeEnabled()), BuiltinCode::ECodeType::binary, *pDevice); EXPECT_NE(0u, bc.resource.size()); auto program = std::unique_ptr(BuiltinDispatchInfoBuilder::createProgramFromCode(bc, toClDeviceVector(*pClDevice))); EXPECT_NE(nullptr, program.get()); @@ -1898,7 +1898,7 @@ TEST_F(BuiltInTests, givenSipKernelWhenAllocationFailsThenItHasNullptrGraphicsAl TEST_F(BuiltInTests, givenDebugFlagForceUseSourceWhenArgIsBinaryThenReturnBuiltinCodeBinary) { debugManager.flags.RebuildPrecompiledKernels.set(true); auto builtinsLib = std::unique_ptr(new BuiltinsLib()); - BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::copyBufferToBuffer, BuiltinCode::ECodeType::binary, *pDevice); + BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::adjustBuiltinType(false, pDevice->getCompilerProductHelper().isHeaplessModeEnabled()), BuiltinCode::ECodeType::binary, *pDevice); EXPECT_EQ(BuiltinCode::ECodeType::binary, code.type); EXPECT_NE(0u, code.resource.size()); EXPECT_EQ(pDevice, code.targetDevice); diff --git a/opencl/test/unit_test/command_stream/create_command_stream_receiver_tests.cpp b/opencl/test/unit_test/command_stream/create_command_stream_receiver_tests.cpp index 529958ca58..3f7c6c15d1 100644 --- a/opencl/test/unit_test/command_stream/create_command_stream_receiver_tests.cpp +++ b/opencl/test/unit_test/command_stream/create_command_stream_receiver_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2024 Intel Corporation + * Copyright (C) 2018-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -22,6 +22,8 @@ struct CreateCommandStreamReceiverTest : public ::testing::TestWithParammemoryManager.get()); diff --git a/opencl/test/unit_test/program/program_tests.cpp b/opencl/test/unit_test/program/program_tests.cpp index dd711885bd..31b7107312 100644 --- a/opencl/test/unit_test/program/program_tests.cpp +++ b/opencl/test/unit_test/program/program_tests.cpp @@ -1680,20 +1680,17 @@ TEST_F(ProgramTests, WhenCreatingProgramThenBindlessIsEnabledOnlyIfDebugFlagIsEn using namespace testing; DebugManagerStateRestore restorer; - { - + if (!pDevice->getCompilerProductHelper().isHeaplessModeEnabled()) { debugManager.flags.UseBindlessMode.set(0); MockProgram programNoBindless(pContext, false, toClDeviceVector(*pClDevice)); auto internalOptionsNoBindless = programNoBindless.getInternalOptions(); EXPECT_FALSE(CompilerOptions::contains(internalOptionsNoBindless, CompilerOptions::bindlessMode)) << internalOptionsNoBindless; } - { - debugManager.flags.UseBindlessMode.set(1); - MockProgram programBindless(pContext, false, toClDeviceVector(*pClDevice)); - auto internalOptionsBindless = programBindless.getInternalOptions(); - EXPECT_TRUE(CompilerOptions::contains(internalOptionsBindless, CompilerOptions::bindlessMode)) << internalOptionsBindless; - } + debugManager.flags.UseBindlessMode.set(1); + MockProgram programBindless(pContext, false, toClDeviceVector(*pClDevice)); + auto internalOptionsBindless = programBindless.getInternalOptions(); + EXPECT_TRUE(CompilerOptions::contains(internalOptionsBindless, CompilerOptions::bindlessMode)) << internalOptionsBindless; } TEST_F(ProgramTests, GivenForce32BitAddressesWhenProgramIsCreatedThenGreaterThan4gbBuffersRequiredIsCorrectlySet) { diff --git a/shared/source/helpers/compiler_product_helper.h b/shared/source/helpers/compiler_product_helper.h index 1d6775629a..4026047589 100644 --- a/shared/source/helpers/compiler_product_helper.h +++ b/shared/source/helpers/compiler_product_helper.h @@ -86,6 +86,7 @@ class CompilerProductHelper { virtual void getKernelFp64AtomicCapabilities(uint32_t &fp64Caps) const = 0; virtual void getKernelCapabilitiesExtra(const ReleaseHelper *releaseHelper, uint32_t &extraCaps) const = 0; virtual bool isBindlessAddressingDisabled(const ReleaseHelper *releaseHelper) const = 0; + virtual bool isForceBindlessRequired() const = 0; virtual const char *getCustomIgcLibraryName() const = 0; virtual const char *getFinalizerLibraryName() const = 0; @@ -139,6 +140,7 @@ class CompilerProductHelperHw : public CompilerProductHelper { void getKernelFp64AtomicCapabilities(uint32_t &fp64Caps) const override; void getKernelCapabilitiesExtra(const ReleaseHelper *releaseHelper, uint32_t &extraCaps) const override; bool isBindlessAddressingDisabled(const ReleaseHelper *releaseHelper) const override; + bool isForceBindlessRequired() const override; const char *getCustomIgcLibraryName() const override; const char *getFinalizerLibraryName() const override; diff --git a/shared/source/helpers/compiler_product_helper_base.inl b/shared/source/helpers/compiler_product_helper_base.inl index 949edd10b4..6982b2fd35 100644 --- a/shared/source/helpers/compiler_product_helper_base.inl +++ b/shared/source/helpers/compiler_product_helper_base.inl @@ -306,6 +306,11 @@ bool CompilerProductHelperHw::isBindlessAddressingDisabled(const Rel return true; } +template +bool CompilerProductHelperHw::isForceBindlessRequired() const { + return this->isHeaplessModeEnabled(); +} + template const char *CompilerProductHelperHw::getCustomIgcLibraryName() const { return nullptr; diff --git a/shared/test/common/mocks/mock_compiler_product_helper.h b/shared/test/common/mocks/mock_compiler_product_helper.h index f6a6ec7817..7b549346b3 100644 --- a/shared/test/common/mocks/mock_compiler_product_helper.h +++ b/shared/test/common/mocks/mock_compiler_product_helper.h @@ -61,6 +61,7 @@ class MockCompilerProductHelper : public CompilerProductHelper { ADDMETHOD_CONST_NOBASE_VOIDRETURN(getKernelFp64AtomicCapabilities, (uint32_t & fp64Caps)); ADDMETHOD_CONST_NOBASE_VOIDRETURN(getKernelCapabilitiesExtra, (const ReleaseHelper *releaseHelper, uint32_t &extraCaps)); ADDMETHOD_CONST_NOBASE(isBindlessAddressingDisabled, bool, false, (const ReleaseHelper *releaseHelper)); + ADDMETHOD_CONST_NOBASE(isForceBindlessRequired, bool, false, ()); ADDMETHOD_CONST_NOBASE(getProductConfigFromHwInfo, uint32_t, 0, (const HardwareInfo &hwInfo)); ADDMETHOD_CONST_NOBASE(getCustomIgcLibraryName, const char *, nullptr, ()); ADDMETHOD_CONST_NOBASE(getFinalizerLibraryName, const char *, nullptr, ()); diff --git a/shared/test/common/os_interface/linux/drm_command_stream_fixture.h b/shared/test/common/os_interface/linux/drm_command_stream_fixture.h index 5027222111..58312667a6 100644 --- a/shared/test/common/os_interface/linux/drm_command_stream_fixture.h +++ b/shared/test/common/os_interface/linux/drm_command_stream_fixture.h @@ -38,8 +38,8 @@ class DrmCommandStreamTest : public ::testing::Test { public: template void setUpT() { - // make sure this is disabled, we don't want to test this now + debugManager.flags.ForceL3FlushAfterPostSync.set(0); debugManager.flags.EnableForcePin.set(false); mock = new DrmMock(mockFd, *executionEnvironment.rootDeviceEnvironments[0]); @@ -127,6 +127,7 @@ class DrmCommandStreamEnhancedTemplate : public ::testing::Test { this->dbgState = std::make_unique(); // make sure this is disabled, we don't want to test this now debugManager.flags.EnableForcePin.set(false); + debugManager.flags.ForceL3FlushAfterPostSync.set(0); mock = DrmType::create(*executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]).release(); executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->osInterface = std::make_unique(); diff --git a/shared/test/unit_test/os_interface/linux/device_command_stream_tests.cpp b/shared/test/unit_test/os_interface/linux/device_command_stream_tests.cpp index 55ffd1cc3c..cbee475039 100644 --- a/shared/test/unit_test/os_interface/linux/device_command_stream_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/device_command_stream_tests.cpp @@ -29,6 +29,7 @@ using namespace NEO; struct DeviceCommandStreamLeaksTest : ::testing::Test { void SetUp() override { + debugManager.flags.ForceL3FlushAfterPostSync.set(0); HardwareInfo *hwInfo = nullptr; executionEnvironment = getExecutionEnvironmentImpl(hwInfo, 1); executionEnvironment->incRefInternal(); @@ -40,9 +41,12 @@ struct DeviceCommandStreamLeaksTest : ::testing::Test { } ExecutionEnvironment *executionEnvironment; + DebugManagerStateRestore dbgState; }; HWTEST_F(DeviceCommandStreamLeaksTest, WhenCreatingDeviceCsrThenValidPointerIsReturned) { + DebugManagerStateRestore restorer; + debugManager.flags.ForceL3FlushAfterPostSync.set(0); std::unique_ptr ptr(DeviceCommandStreamReceiver::create(false, *executionEnvironment, 0, 1)); DrmMockSuccess mockDrm(mockFd, *executionEnvironment->rootDeviceEnvironments[0]); EXPECT_NE(nullptr, ptr); @@ -62,6 +66,8 @@ HWTEST_F(DeviceCommandStreamLeaksTest, givenDefaultDrmCsrWithAubDumWhenItIsCreat } HWTEST_F(DeviceCommandStreamLeaksTest, givenDefaultDrmCsrWhenOsInterfaceIsNullptrThenValidateDrm) { + DebugManagerStateRestore restorer; + debugManager.flags.ForceL3FlushAfterPostSync.set(0); std::unique_ptr ptr(DeviceCommandStreamReceiver::create(false, *executionEnvironment, 0, 1)); auto drmCsr = (DrmCommandStreamReceiver *)ptr.get(); EXPECT_NE(nullptr, executionEnvironment->rootDeviceEnvironments[0]->osInterface); @@ -89,6 +95,7 @@ HWTEST_F(DeviceCommandStreamLeaksTest, givenDisabledGemCloseWorkerWhenCsrIsCreat HWTEST_F(DeviceCommandStreamLeaksTest, givenEnabledGemCloseWorkerWhenCsrIsCreatedThenGemCloseWorkerActiveModeIsSelected) { DebugManagerStateRestore restorer; debugManager.flags.EnableGemCloseWorker.set(1u); + debugManager.flags.ForceL3FlushAfterPostSync.set(0); executionEnvironment->memoryManager = DrmMemoryManager::create(*executionEnvironment); @@ -103,6 +110,9 @@ HWTEST_F(DeviceCommandStreamLeaksTest, givenEnabledGemCloseWorkerWhenCsrIsCreate } HWTEST_F(DeviceCommandStreamLeaksTest, givenDefaultGemCloseWorkerWhenCsrIsCreatedThenGemCloseWorkerActiveModeIsSelected) { + DebugManagerStateRestore restorer; + debugManager.flags.ForceL3FlushAfterPostSync.set(0); + executionEnvironment->memoryManager = DrmMemoryManager::create(*executionEnvironment); std::unique_ptr ptr(DeviceCommandStreamReceiver::create(false, *executionEnvironment, 0, 1)); auto osContext = OsContext::create(executionEnvironment->rootDeviceEnvironments[0]->osInterface.get(), 0, 0, diff --git a/shared/test/unit_test/os_interface/linux/drm_command_stream_mm_tests.cpp b/shared/test/unit_test/os_interface/linux/drm_command_stream_mm_tests.cpp index 1b8429f3f8..cb96caa827 100644 --- a/shared/test/unit_test/os_interface/linux/drm_command_stream_mm_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_command_stream_mm_tests.cpp @@ -40,6 +40,7 @@ struct DrmCommandStreamMemExecTest : public DrmCommandStreamEnhancedTemplate backup(&apiTypeForUlts, ApiSpecificConfig::L0); MockDrmCsr csr(executionEnvironment, 0, 1); EXPECT_EQ(DispatchMode::immediateDispatch, csr.dispatchMode); @@ -85,6 +87,9 @@ HWTEST_TEMPLATED_F(DrmCommandStreamTest, givenNoTagAddressWhenGettingCompletionA } HWTEST_TEMPLATED_F(DrmCommandStreamTest, GivenExecBufferErrorWhenFlushInternalThenProperErrorIsReturned) { + DebugManagerStateRestore restorer; + debugManager.flags.ForceL3FlushAfterPostSync.set(0); + mock->execBufferResult = -1; mock->baseErrno = false; mock->errnoRetVal = EWOULDBLOCK; @@ -1356,6 +1361,7 @@ HWTEST_TEMPLATED_F(DrmCommandStreamEnhancedTest, DebugManagerStateRestore restorer; debugManager.flags.EnableUserFenceForCompletionWait.set(0); debugManager.flags.OverrideNotifyEnableForTagUpdatePostSync.set(1); + debugManager.flags.ForceL3FlushAfterPostSync.set(0); mock->isVmBindAvailableCall.callParent = false; mock->isVmBindAvailableCall.returnValue = true; diff --git a/shared/test/unit_test/os_interface/linux/drm_command_stream_tests_1.cpp b/shared/test/unit_test/os_interface/linux/drm_command_stream_tests_1.cpp index ae742e0e5d..97e96dbffb 100644 --- a/shared/test/unit_test/os_interface/linux/drm_command_stream_tests_1.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_command_stream_tests_1.cpp @@ -409,6 +409,8 @@ HWTEST_TEMPLATED_F(DrmCommandStreamTest, GivenCheckFlagsWhenFlushingThenSucceeds } HWTEST_TEMPLATED_F(DrmCommandStreamTest, GivenCheckDrmFreeWhenFlushingThenSucceeds) { + DebugManagerStateRestore restorer; + debugManager.flags.ForceL3FlushAfterPostSync.set(0); mock->returnHandle = 17; auto &cs = csr->getCS(); diff --git a/shared/test/unit_test/os_interface/linux/drm_command_stream_xehp_and_later_prelim_tests.cpp b/shared/test/unit_test/os_interface/linux/drm_command_stream_xehp_and_later_prelim_tests.cpp index e13b670f58..f2c74a30c8 100644 --- a/shared/test/unit_test/os_interface/linux/drm_command_stream_xehp_and_later_prelim_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_command_stream_xehp_and_later_prelim_tests.cpp @@ -375,6 +375,8 @@ class DrmCommandStreamForceTileTest : public ::testing::Test { }; template void setUpT() { + debugManager.flags.ForceL3FlushAfterPostSync.set(0); + mock = new DrmMock(mockFd, *executionEnvironment.rootDeviceEnvironments[0]); auto hwInfo = executionEnvironment.rootDeviceEnvironments[0]->getHardwareInfo(); @@ -423,6 +425,7 @@ class DrmCommandStreamForceTileTest : public ::testing::Test { const uint32_t rootDeviceIndex = 0u; const uint32_t expectedHandleId = 1u; + DebugManagerStateRestore restorer; CommandStreamReceiver *csr = nullptr; DrmMemoryManager *memoryManager = nullptr; DrmMock *mock = nullptr; @@ -477,6 +480,8 @@ HWTEST_TEMPLATED_F(DrmCommandStreamTest, givenPrintIndicesEnabledWhenFlushThenPr struct DrmImplicitScalingCommandStreamTest : ::testing::Test { void SetUp() override { + debugManager.flags.ForceL3FlushAfterPostSync.set(0); + executionEnvironment = std::make_unique(); executionEnvironment->prepareRootDeviceEnvironments(1); @@ -525,9 +530,13 @@ struct DrmImplicitScalingCommandStreamTest : ::testing::Test { std::unique_ptr osContext; DrmMemoryManager *memoryManager; std::unique_ptr hwInfo; + DebugManagerStateRestore restorer; }; HWCMDTEST_F(IGFX_XE_HP_CORE, DrmImplicitScalingCommandStreamTest, givenTwoTilesWhenFlushIsCalledThenExecIsExecutedOnEveryTile) { + DebugManagerStateRestore restorer; + debugManager.flags.ForceL3FlushAfterPostSync.set(0); + auto csr = createCsr(); auto size = 1024u; @@ -627,6 +636,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DrmImplicitScalingCommandStreamTest, whenForceExecu DebugManagerStateRestore restorer; debugManager.flags.ForceExecutionTile.set(1); debugManager.flags.EnableWalkerPartition.set(0); + debugManager.flags.ForceL3FlushAfterPostSync.set(0); struct MockCsr : DrmCommandStreamReceiver { using DrmCommandStreamReceiver::DrmCommandStreamReceiver; @@ -668,6 +678,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DrmImplicitScalingCommandStreamTest, whenForceExecu HWCMDTEST_F(IGFX_XE_HP_CORE, DrmImplicitScalingCommandStreamTest, givenDisabledImplicitScalingWhenFlushingThenUseOnlyOneContext) { DebugManagerStateRestore debugRestore{}; debugManager.flags.EnableWalkerPartition.set(0); + debugManager.flags.ForceL3FlushAfterPostSync.set(0); struct MockCsr : DrmCommandStreamReceiver { using DrmCommandStreamReceiver::DrmCommandStreamReceiver; @@ -706,6 +717,8 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DrmImplicitScalingCommandStreamTest, givenDisabledI } HWCMDTEST_F(IGFX_XE_HP_CORE, DrmImplicitScalingCommandStreamTest, givenMultiTileCsrWhenFlushThenVmHandleIdEqualsTileId) { + DebugManagerStateRestore restorer; + debugManager.flags.ForceL3FlushAfterPostSync.set(0); struct MockCsr : DrmCommandStreamReceiver { using DrmCommandStreamReceiver::DrmCommandStreamReceiver; int exec(const BatchBuffer &batchBuffer, uint32_t vmHandleId, uint32_t drmContextId, uint32_t index) override {