diff --git a/shared/source/ail/xe_hpg_core/dg2/ail_configuration_dg2.cpp b/shared/source/ail/xe_hpg_core/dg2/ail_configuration_dg2.cpp index 5dd3476aa9..5e0542f5cd 100644 --- a/shared/source/ail/xe_hpg_core/dg2/ail_configuration_dg2.cpp +++ b/shared/source/ail/xe_hpg_core/dg2/ail_configuration_dg2.cpp @@ -69,6 +69,27 @@ void AILConfigurationHw::modifyKernelIfRequired(std::string &kernelsSo } } +template <> +inline void AILConfigurationHw::forceFallbackToPatchtokensIfRequired(const std::string &kernelSources, bool &requiresFallback) { + std::string_view dummyKernelSource{"kernel void _(){}"}; + if (sourcesContain(kernelSources, dummyKernelSource)) { + requiresFallback = true; + } + + for (const auto &name : {"Wondershare Filmora 11", + "perf_check", + "tlb_player_gui", + "Wondershare Filmora", + "Resolve", + "ArcControlAssist", + "ArcControl"}) { + if (processName == name) { + requiresFallback = true; + break; + } + } +} + template class AILConfigurationHw; } // namespace NEO diff --git a/shared/test/unit_test/xe_hpg_core/dg2/ail_tests_dg2.cpp b/shared/test/unit_test/xe_hpg_core/dg2/ail_tests_dg2.cpp index 3295c2cc6f..746fddb2a0 100644 --- a/shared/test/unit_test/xe_hpg_core/dg2/ail_tests_dg2.cpp +++ b/shared/test/unit_test/xe_hpg_core/dg2/ail_tests_dg2.cpp @@ -36,6 +36,32 @@ HWTEST2_F(AILTestsDg2, givenApplicationNamesThatRequireAILWhenApplyExtThenCorrec } } +HWTEST2_F(AILTestsDg2, givenApplicationNamesThatRequirAILWhenCheckingIfPatchtokenFallbackIsRequiredThenIsCorrectResult, IsDG2) { + class AILMock : public AILConfigurationHw { + public: + using AILConfiguration::processName; + }; + + VariableBackup ailConfigurationBackup(&ailConfigurationTable[productFamily]); + AILMock ail; + ailConfigurationTable[productFamily] = &ail; + + for (const auto &name : {"perf_check", + "tlb_player_gui", + "Wondershare Filmora", + "Wondershare Filmora 11", + "Resolve", + "ArcControlAssist", + "ArcControl"}) { + ail.processName = name; + + bool fallbackRequired; + ail.forceFallbackToPatchtokensIfRequired("", fallbackRequired); + + EXPECT_TRUE(fallbackRequired); + } +} + HWTEST2_F(AILTestsDg2, givenFixesForApplicationsWhenModifyKernelIfRequiredIsCalledThenReturnCorrectResults, IsDG2) { class AILMock : public AILConfigurationHw {