From 052271c45841322be7b09ee3e9ada3793905733a Mon Sep 17 00:00:00 2001 From: Zbigniew Zdanowicz Date: Thu, 19 Mar 2020 15:08:02 +0100 Subject: [PATCH] Remove constant cache invalidation from Gen12LP Change-Id: Ia63bd0296689c3f059f1debfdffdbca3e041e3c3 Signed-off-by: Zbigniew Zdanowicz --- opencl/source/gen12lp/hw_helper_gen12lp.cpp | 1 + opencl/test/unit_test/gen11/hw_helper_tests_gen11.cpp | 10 ++++++++++ .../test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl | 3 ++- opencl/test/unit_test/gen8/hw_helper_tests_gen8.cpp | 10 ++++++++++ opencl/test/unit_test/gen9/hw_helper_tests_gen9.cpp | 10 ++++++++++ opencl/test/unit_test/helpers/hw_helper_tests.cpp | 1 - .../dispatchers/render_dispatcher_tests.cpp | 1 - 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/opencl/source/gen12lp/hw_helper_gen12lp.cpp b/opencl/source/gen12lp/hw_helper_gen12lp.cpp index 1e096adebd..7e66fa0568 100644 --- a/opencl/source/gen12lp/hw_helper_gen12lp.cpp +++ b/opencl/source/gen12lp/hw_helper_gen12lp.cpp @@ -138,6 +138,7 @@ std::string HwHelperHw::getExtensions() const { template <> void MemorySynchronizationCommands::setExtraCacheFlushFields(Family::PIPE_CONTROL *pipeControl) { pipeControl->setHdcPipelineFlush(true); + pipeControl->setConstantCacheInvalidationEnable(false); } template class AubHelperHw; diff --git a/opencl/test/unit_test/gen11/hw_helper_tests_gen11.cpp b/opencl/test/unit_test/gen11/hw_helper_tests_gen11.cpp index c696803943..4c2f604cdb 100644 --- a/opencl/test/unit_test/gen11/hw_helper_tests_gen11.cpp +++ b/opencl/test/unit_test/gen11/hw_helper_tests_gen11.cpp @@ -46,3 +46,13 @@ GEN11TEST_F(HwHelperTestGen11, whenGetGpgpuEnginesThenReturnThreeRcsEngines) { whenGetGpgpuEnginesThenReturnTwoRcsEngines(pDevice->getHardwareInfo()); EXPECT_EQ(3u, pDevice->engines.size()); } + +using MemorySynchronizatiopCommandsTestsGen11 = ::testing::Test; +GEN11TEST_F(MemorySynchronizatiopCommandsTestsGen11, WhenProgrammingCacheFlushThenExpectConstantCacheFieldSet) { + using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL; + std::unique_ptr buffer(new uint8_t[128]); + + LinearStream stream(buffer.get(), 128); + PIPE_CONTROL *pipeControl = MemorySynchronizationCommands::addFullCacheFlush(stream); + EXPECT_TRUE(pipeControl->getConstantCacheInvalidationEnable()); +} 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 45f7b5012c..2470310bae 100644 --- a/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl +++ b/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl @@ -232,7 +232,8 @@ using MemorySynchronizatiopCommandsTests = ::testing::Test; GEN12LPTEST_F(MemorySynchronizatiopCommandsTests, whenSettingCacheFlushExtraFieldsThenExpectHdcFlushSet) { using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL; PIPE_CONTROL pipeControl = FamilyType::cmdInitPipeControl; - + pipeControl.setConstantCacheInvalidationEnable(true); MemorySynchronizationCommands::setExtraCacheFlushFields(&pipeControl); EXPECT_TRUE(pipeControl.getHdcPipelineFlush()); + EXPECT_FALSE(pipeControl.getConstantCacheInvalidationEnable()); } diff --git a/opencl/test/unit_test/gen8/hw_helper_tests_gen8.cpp b/opencl/test/unit_test/gen8/hw_helper_tests_gen8.cpp index ac9a77ce67..d8cf7a7fbb 100644 --- a/opencl/test/unit_test/gen8/hw_helper_tests_gen8.cpp +++ b/opencl/test/unit_test/gen8/hw_helper_tests_gen8.cpp @@ -53,3 +53,13 @@ GEN8TEST_F(HwHelperTestGen8, whenGetGpgpuEnginesThenReturnTwoThreeEngines) { whenGetGpgpuEnginesThenReturnTwoRcsEngines(pDevice->getHardwareInfo()); EXPECT_EQ(3u, pDevice->engines.size()); } + +using MemorySynchronizatiopCommandsTestsGen8 = ::testing::Test; +GEN8TEST_F(MemorySynchronizatiopCommandsTestsGen8, WhenProgrammingCacheFlushThenExpectConstantCacheFieldSet) { + using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL; + std::unique_ptr buffer(new uint8_t[128]); + + LinearStream stream(buffer.get(), 128); + PIPE_CONTROL *pipeControl = MemorySynchronizationCommands::addFullCacheFlush(stream); + EXPECT_TRUE(pipeControl->getConstantCacheInvalidationEnable()); +} diff --git a/opencl/test/unit_test/gen9/hw_helper_tests_gen9.cpp b/opencl/test/unit_test/gen9/hw_helper_tests_gen9.cpp index 87f93ed296..7f31d17010 100644 --- a/opencl/test/unit_test/gen9/hw_helper_tests_gen9.cpp +++ b/opencl/test/unit_test/gen9/hw_helper_tests_gen9.cpp @@ -53,3 +53,13 @@ GEN9TEST_F(HwHelperTestGen9, whenGetGpgpuEnginesThenReturnThreeRcsEngines) { whenGetGpgpuEnginesThenReturnTwoRcsEngines(pDevice->getHardwareInfo()); EXPECT_EQ(3u, pDevice->engines.size()); } + +using MemorySynchronizatiopCommandsTestsGen9 = ::testing::Test; +GEN9TEST_F(MemorySynchronizatiopCommandsTestsGen9, WhenProgrammingCacheFlushThenExpectConstantCacheFieldSet) { + using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL; + std::unique_ptr buffer(new uint8_t[128]); + + LinearStream stream(buffer.get(), 128); + PIPE_CONTROL *pipeControl = MemorySynchronizationCommands::addFullCacheFlush(stream); + EXPECT_TRUE(pipeControl->getConstantCacheInvalidationEnable()); +} diff --git a/opencl/test/unit_test/helpers/hw_helper_tests.cpp b/opencl/test/unit_test/helpers/hw_helper_tests.cpp index f6cc175f9f..fd62303c94 100644 --- a/opencl/test/unit_test/helpers/hw_helper_tests.cpp +++ b/opencl/test/unit_test/helpers/hw_helper_tests.cpp @@ -844,6 +844,5 @@ HWTEST_F(PipeControlHelperTests, WhenProgrammingCacheFlushThenExpectBasicFieldsS EXPECT_TRUE(pipeControl->getInstructionCacheInvalidateEnable()); EXPECT_TRUE(pipeControl->getTextureCacheInvalidationEnable()); EXPECT_TRUE(pipeControl->getPipeControlFlushEnable()); - EXPECT_TRUE(pipeControl->getConstantCacheInvalidationEnable()); EXPECT_TRUE(pipeControl->getStateCacheInvalidationEnable()); } diff --git a/shared/test/unit_test/direct_submission/dispatchers/render_dispatcher_tests.cpp b/shared/test/unit_test/direct_submission/dispatchers/render_dispatcher_tests.cpp index 19e206d8c5..3351d15c33 100644 --- a/shared/test/unit_test/direct_submission/dispatchers/render_dispatcher_tests.cpp +++ b/shared/test/unit_test/direct_submission/dispatchers/render_dispatcher_tests.cpp @@ -116,7 +116,6 @@ HWTEST_F(RenderDispatcheTest, givenRenderWhenAddingCacheFlushCmdThenExpectPipeCo pipeControl->getInstructionCacheInvalidateEnable() && pipeControl->getTextureCacheInvalidationEnable() && pipeControl->getPipeControlFlushEnable() && - pipeControl->getConstantCacheInvalidationEnable() && pipeControl->getStateCacheInvalidationEnable(); if (foundCacheFlush) { break;