From 960aff5637ccd001f64b9c992bffbb6345c9c6c3 Mon Sep 17 00:00:00 2001 From: Filip Hazubski Date: Tue, 28 Jul 2020 09:36:59 +0200 Subject: [PATCH] Update isBlitCopyRequiredForLocalMemory helper function Related-To: NEO-4871 Change-Id: I351cd3abfba0b77292dec814cc279705e827420f Signed-off-by: Filip Hazubski --- .../unit_test/gen12lp/hw_helper_tests_gen12lp.inl | 5 ----- opencl/test/unit_test/helpers/hw_helper_tests.cpp | 15 +++++++++++++++ shared/source/helpers/hw_helper_base.inl | 3 ++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl b/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl index d7932563d2..514b5420af 100644 --- a/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl +++ b/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl @@ -255,11 +255,6 @@ GEN12LPTEST_F(HwHelperTestGen12Lp, whenGettingComputeEngineIndexByOrdinalThenCor } } -GEN12LPTEST_F(HwHelperTestGen12Lp, givenDefaultHwHelperHwWhenGettingIsBlitCopyRequiredForLocalMemoryThenFalseIsReturned) { - auto &helper = HwHelper::get(renderCoreFamily); - EXPECT_FALSE(helper.isBlitCopyRequiredForLocalMemory(*defaultHwInfo)); -} - class HwHelperTestsGen12LpBuffer : public ::testing::Test { public: void SetUp() override { diff --git a/opencl/test/unit_test/helpers/hw_helper_tests.cpp b/opencl/test/unit_test/helpers/hw_helper_tests.cpp index 3d835394e0..c43a3ad8f2 100644 --- a/opencl/test/unit_test/helpers/hw_helper_tests.cpp +++ b/opencl/test/unit_test/helpers/hw_helper_tests.cpp @@ -911,6 +911,21 @@ HWTEST_F(HwHelperTest, givenDefaultHwHelperHwWhenMinimalSIMDSizeIsQueriedThen8Is EXPECT_EQ(8u, helper.getMinimalSIMDSize()); } +HWTEST_F(HwHelperTest, whenGettingIsBlitCopyRequiredForLocalMemoryThenCorrectValuesAreReturned) { + DebugManagerStateRestore restore{}; + auto &helper = HwHelper::get(renderCoreFamily); + + auto expectedDefaultValue = (helper.getLocalMemoryAccessMode(*defaultHwInfo) == LocalMemoryAccessMode::CpuAccessDisallowed); + EXPECT_EQ(expectedDefaultValue, helper.isBlitCopyRequiredForLocalMemory(*defaultHwInfo)); + + DebugManager.flags.ForceLocalMemoryAccessMode.set(0); + EXPECT_FALSE(helper.isBlitCopyRequiredForLocalMemory(*defaultHwInfo)); + DebugManager.flags.ForceLocalMemoryAccessMode.set(1); + EXPECT_FALSE(helper.isBlitCopyRequiredForLocalMemory(*defaultHwInfo)); + DebugManager.flags.ForceLocalMemoryAccessMode.set(3); + EXPECT_TRUE(helper.isBlitCopyRequiredForLocalMemory(*defaultHwInfo)); +} + HWTEST_F(HwHelperTest, givenVariousDebugKeyValuesWhenGettingLocalMemoryAccessModeThenCorrectValueIsReturned) { struct MockHwHelper : HwHelperHw { using HwHelper::getDefaultLocalMemoryAccessMode; diff --git a/shared/source/helpers/hw_helper_base.inl b/shared/source/helpers/hw_helper_base.inl index dc92933cfe..37fd1a834d 100644 --- a/shared/source/helpers/hw_helper_base.inl +++ b/shared/source/helpers/hw_helper_base.inl @@ -389,7 +389,8 @@ inline bool HwHelperHw::allowRenderCompression(const HardwareInfo &hw template inline bool HwHelperHw::isBlitCopyRequiredForLocalMemory(const HardwareInfo &hwInfo) const { - return false; + HwHelper &hwHelper = HwHelper::get(hwInfo.platform.eRenderCoreFamily); + return (hwHelper.getLocalMemoryAccessMode(hwInfo) == LocalMemoryAccessMode::CpuAccessDisallowed); } template