diff --git a/shared/source/ail/ail_configuration.cpp b/shared/source/ail/ail_configuration.cpp index 02311327ae..eca72dd636 100644 --- a/shared/source/ail/ail_configuration.cpp +++ b/shared/source/ail/ail_configuration.cpp @@ -15,6 +15,9 @@ #include namespace NEO { + +const char legacyPlatformName[] = "Intel(R) OpenCL"; + bool AILConfiguration::isKernelHashCorrect(const std::string &kernelsSources, uint64_t expectedHash) const { const auto hash = Hash::hash(kernelsSources.c_str(), kernelsSources.length()); return hash == expectedHash; diff --git a/shared/source/ail/ail_configuration.h b/shared/source/ail/ail_configuration.h index 369877b0f9..675666c31f 100644 --- a/shared/source/ail/ail_configuration.h +++ b/shared/source/ail/ail_configuration.h @@ -28,6 +28,8 @@ namespace NEO { +extern const char legacyPlatformName[]; + struct RuntimeCapabilityTable; enum class AILEnumeration : uint32_t { diff --git a/shared/source/ail/ail_configuration_extra.cpp b/shared/source/ail/ail_configuration_extra.cpp index e216cecfce..1c7730427f 100644 --- a/shared/source/ail/ail_configuration_extra.cpp +++ b/shared/source/ail/ail_configuration_extra.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Intel Corporation + * Copyright (C) 2021-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -20,7 +20,9 @@ namespace NEO { * */ -std::map> applicationMap = {{"blender", {AILEnumeration::ENABLE_FP64}}}; +std::map> applicationMap = {{"blender", {AILEnumeration::ENABLE_FP64}}, + // Modify reported platform name to ensure older versions of Premiere Pro are able to recognize the GPU device + {"premiere pro", {AILEnumeration::ENABLE_LEGACY_PLATFORM_NAME}}}; AILConfiguration *ailConfigurationTable[IGFX_MAX_PRODUCT] = {}; @@ -37,6 +39,9 @@ void AILConfiguration::apply(RuntimeCapabilityTable &runtimeCapabilityTable) { case AILEnumeration::ENABLE_FP64: runtimeCapabilityTable.ftrSupportsFP64 = true; break; + case AILEnumeration::ENABLE_LEGACY_PLATFORM_NAME: + runtimeCapabilityTable.preferredPlatformName = legacyPlatformName; + break; default: break; } diff --git a/shared/test/unit_test/ail/ail_tests.cpp b/shared/test/unit_test/ail/ail_tests.cpp index 8bbd1e20a3..38ad0d2417 100644 --- a/shared/test/unit_test/ail/ail_tests.cpp +++ b/shared/test/unit_test/ail/ail_tests.cpp @@ -49,6 +49,25 @@ HWTEST2_F(AILTests, givenInitilizedTemplateWhenApplyWithBlenderIsCalledThenFP64S EXPECT_EQ(rtTable.ftrSupportsFP64, true); } +HWTEST2_F(AILTests, givenInitilizedTemplateWhenApplyWithPremiereProIsCalledThenPreferredPlatformNameIsSet, IsAtLeastGen9) { + VariableBackup ailConfigurationBackup(&ailConfigurationTable[productFamily]); + + AILMock ailTemp; + ailTemp.processName = "premiere pro"; + ailConfigurationTable[productFamily] = &ailTemp; + + auto ailConfiguration = AILConfiguration::get(productFamily); + ASSERT_NE(nullptr, ailConfiguration); + + NEO::RuntimeCapabilityTable rtTable = {}; + rtTable.preferredPlatformName = nullptr; + + ailConfiguration->apply(rtTable); + + EXPECT_NE(nullptr, rtTable.preferredPlatformName); + EXPECT_STREQ("Intel(R) OpenCL", rtTable.preferredPlatformName); +} + HWTEST2_F(AILTests, whenCheckingIfSourcesContainKernelThenCorrectResultIsReturned, IsAtLeastGen12lp) { VariableBackup ailConfigurationBackup(&ailConfigurationTable[productFamily]); AILMock ail;