diff --git a/opencl/test/unit_test/helpers/hw_helper_tests.cpp b/opencl/test/unit_test/helpers/hw_helper_tests.cpp index dbc628c9f9..4bb6d5bf92 100644 --- a/opencl/test/unit_test/helpers/hw_helper_tests.cpp +++ b/opencl/test/unit_test/helpers/hw_helper_tests.cpp @@ -1350,3 +1350,9 @@ HWTEST_F(HwHelperTest, givenRcsOrCcsEnabledWhenQueryingGpgpuEngineCountThenRetur hwInfo.featureTable.ftrRcsNode = true; EXPECT_EQ(4u, HwHelper::getGpgpuEnginesCount(hwInfo)); } + +using isXeHpCoreOrBelow = IsAtMostProduct; +HWTEST2_F(HwHelperTest, givenXeHPAndBelowPlatformWhenCheckingIfAdditionalPipeControlArgsAreRequiredThenReturnFalse, isXeHpCoreOrBelow) { + auto &hwHelper = HwHelper::get(renderCoreFamily); + EXPECT_FALSE(hwHelper.additionalPipeControlArgsRequired()); +} diff --git a/shared/source/helpers/hw_helper.h b/shared/source/helpers/hw_helper.h index 65975bbe0d..dda6d36a81 100644 --- a/shared/source/helpers/hw_helper.h +++ b/shared/source/helpers/hw_helper.h @@ -151,6 +151,7 @@ class HwHelper { virtual size_t getSingleTimestampPacketSize() const = 0; virtual void applyAdditionalCompressionSettings(Gmm &gmm, bool isNotCompressed) const = 0; virtual void applyRenderCompressionFlag(Gmm &gmm, uint32_t isRenderCompressed) const = 0; + virtual bool additionalPipeControlArgsRequired() const = 0; static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo); static uint32_t getGpgpuEnginesCount(const HardwareInfo &hwInfo); @@ -383,6 +384,8 @@ class HwHelperHw : public HwHelper { void applyRenderCompressionFlag(Gmm &gmm, uint32_t isRenderCompressed) const override; + bool additionalPipeControlArgsRequired() const override; + protected: LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override; diff --git a/shared/source/helpers/hw_helper_bdw_plus.inl b/shared/source/helpers/hw_helper_bdw_plus.inl index 98c9c88633..63aa62b261 100644 --- a/shared/source/helpers/hw_helper_bdw_plus.inl +++ b/shared/source/helpers/hw_helper_bdw_plus.inl @@ -134,4 +134,9 @@ inline void MemorySynchronizationCommands::setPipeControlExtraPropert template bool MemorySynchronizationCommands::isPipeControlWArequired(const HardwareInfo &hwInfo) { return false; } +template +bool HwHelperHw::additionalPipeControlArgsRequired() const { + return false; +} + } // namespace NEO diff --git a/shared/source/xe_hp_core/hw_helper_xe_hp_core.cpp b/shared/source/xe_hp_core/hw_helper_xe_hp_core.cpp index 9ee0885cb5..ec399d700e 100644 --- a/shared/source/xe_hp_core/hw_helper_xe_hp_core.cpp +++ b/shared/source/xe_hp_core/hw_helper_xe_hp_core.cpp @@ -204,6 +204,11 @@ void MemorySynchronizationCommands::setCacheFlushExtraProperties(PipeCon args.hdcPipelineFlush = true; } +template <> +bool HwHelperHw::additionalPipeControlArgsRequired() const { + return false; +} + template class HwHelperHw; template class FlatBatchBufferHelperHw; template struct MemorySynchronizationCommands;