From 922edfd68d2a4003340be020d74a8fa3b12581d2 Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Wed, 14 Aug 2024 09:07:50 +0000 Subject: [PATCH] fix(ocloc): correct ocloc name in supported devices query previous approach was to version ocloc library but it was deprecated right now there will be 2 known libraries: - libocloc.so - for mainstream - libocloc-legacy1.so for legacy platforms Related-To: NEO-12273, NEO-9630 Signed-off-by: Mateusz Jablonski --- ...c_supported_devices_helper_linux_tests.cpp | 23 ++++++----- .../mock_ocloc_supported_devices_helper.h | 20 +++++----- .../ocloc_supported_devices_helper_tests.cpp | 28 +++++++------- .../offline_compiler_tests.cpp | 2 +- ...supported_devices_helper_windows_tests.cpp | 30 +++++++-------- .../ocloc_supported_devices_helper_linux.cpp | 25 ++++++------ .../source/ocloc_supported_devices_helper.cpp | 38 ++++++++++--------- .../source/ocloc_supported_devices_helper.h | 18 ++++----- .../source/offline_compiler.cpp | 6 +-- ...ocloc_supported_devices_helper_windows.cpp | 14 +++---- 10 files changed, 100 insertions(+), 104 deletions(-) diff --git a/opencl/test/unit_test/offline_compiler/linux/ocloc_supported_devices_helper_linux_tests.cpp b/opencl/test/unit_test/offline_compiler/linux/ocloc_supported_devices_helper_linux_tests.cpp index c442e55f13..a36243abcc 100644 --- a/opencl/test/unit_test/offline_compiler/linux/ocloc_supported_devices_helper_linux_tests.cpp +++ b/opencl/test/unit_test/offline_compiler/linux/ocloc_supported_devices_helper_linux_tests.cpp @@ -23,7 +23,7 @@ using namespace NEO; struct SupportedDevicesHelperLinuxTest : public ::testing::Test { void SetUp() override { - mockHelper.getOclocCurrentVersionMockResult = ""; + mockHelper.getCurrentOclocNameMockResult = ""; oclocCurrentLibName.shrink_to_fit(); oclocFormerLibName.shrink_to_fit(); } @@ -36,28 +36,27 @@ struct SupportedDevicesHelperLinuxTest : public ::testing::Test { MockSupportedDevicesHelper mockHelper = MockSupportedDevicesHelper(SupportedDevicesMode::concat, nullptr); }; -TEST_F(SupportedDevicesHelperLinuxTest, GivenVariousOclocLibraryNamesWhenExtractingOclocVersionThenEmptyStringIsReturned) { +TEST_F(SupportedDevicesHelperLinuxTest, GivenVariousOclocLibraryNamesWhenExtractingOclocNameThenCorrectStringIsReturned) { { // Valid Ocloc lib names - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc-2.0.1.so"), "ocloc-2.0.1"); - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc-2.0.so"), "ocloc-2.0"); + EXPECT_EQ(mockHelper.extractOclocName("libocloc.so"), "ocloc"); + EXPECT_EQ(mockHelper.extractOclocName("libocloc-legacy1.so"), "ocloc-legacy1"); } { // Invalid Ocloc lib names - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc2.0.so"), "ocloc"); - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc-2.0"), "ocloc"); - EXPECT_EQ(mockHelper.extractOclocVersion(""), "ocloc"); - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc.so"), "ocloc"); + EXPECT_EQ(mockHelper.extractOclocName("ocloc2.so"), "ocloc"); + EXPECT_EQ(mockHelper.extractOclocName(""), "ocloc"); + EXPECT_EQ(mockHelper.extractOclocName("libocloc2"), "ocloc"); } } -TEST_F(SupportedDevicesHelperLinuxTest, GivenSupportedDevicesHelperWhenGetOclocCurrentVersionThenReturnCorrectValue) { +TEST_F(SupportedDevicesHelperLinuxTest, GivenSupportedDevicesHelperWhenGetCurrentOclocNameThenReturnCorrectValue) { VariableBackup oclocNameBackup(&oclocCurrentLibName, "libocloc-current.so"); - EXPECT_EQ("ocloc-current", mockHelper.getOclocCurrentVersion()); + EXPECT_EQ("ocloc-current", mockHelper.getCurrentOclocName()); } -TEST_F(SupportedDevicesHelperLinuxTest, GivenSupportedDevicesHelperWhenGetOclocFormerVersionThenReturnCorrectValue) { +TEST_F(SupportedDevicesHelperLinuxTest, GivenSupportedDevicesHelperWhenGetFormerOclocNameThenReturnCorrectValue) { VariableBackup oclocNameBackup(&oclocFormerLibName, "libocloc-former.so"); - EXPECT_EQ("ocloc-former", mockHelper.getOclocFormerVersion()); + EXPECT_EQ("ocloc-former", mockHelper.getFormerOclocName()); } diff --git a/opencl/test/unit_test/offline_compiler/mock/mock_ocloc_supported_devices_helper.h b/opencl/test/unit_test/offline_compiler/mock/mock_ocloc_supported_devices_helper.h index 255c9c4653..8cfbeb7414 100644 --- a/opencl/test/unit_test/offline_compiler/mock/mock_ocloc_supported_devices_helper.h +++ b/opencl/test/unit_test/offline_compiler/mock/mock_ocloc_supported_devices_helper.h @@ -18,16 +18,16 @@ using namespace Ocloc; class MockSupportedDevicesHelper : public SupportedDevicesHelper { public: - using SupportedDevicesHelper::extractOclocVersion; - using SupportedDevicesHelper::getOclocCurrentVersion; - using SupportedDevicesHelper::getOclocFormerVersion; - using SupportedDevicesHelper::mergeOclocVersionData; + using SupportedDevicesHelper::extractOclocName; + using SupportedDevicesHelper::getCurrentOclocName; + using SupportedDevicesHelper::getFormerOclocName; + using SupportedDevicesHelper::mergeOclocData; public: MockSupportedDevicesHelper(SupportedDevicesMode mode, ProductConfigHelper *productConfigHelper) : SupportedDevicesHelper(mode, productConfigHelper) {} - std::string getDataFromFormerOclocVersion() const override { + std::string getDataFromFormerOcloc() const override { if (getDataFromFormerOclocVersionEmptyResult) { return ""; } @@ -53,16 +53,16 @@ class MockSupportedDevicesHelper : public SupportedDevicesHelper { )"; } - std::string getOclocCurrentVersion() const override { - if (!getOclocCurrentVersionMockResult.empty()) { - return getOclocCurrentVersionMockResult; + std::string getCurrentOclocName() const override { + if (!getCurrentOclocNameMockResult.empty()) { + return getCurrentOclocNameMockResult; } - return SupportedDevicesHelper::getOclocCurrentVersion(); + return SupportedDevicesHelper::getCurrentOclocName(); } public: bool getDataFromFormerOclocVersionEmptyResult = false; - std::string getOclocCurrentVersionMockResult = "ocloc-current"; + std::string getCurrentOclocNameMockResult = "ocloc-current"; }; } // namespace NEO diff --git a/opencl/test/unit_test/offline_compiler/ocloc_supported_devices_helper_tests.cpp b/opencl/test/unit_test/offline_compiler/ocloc_supported_devices_helper_tests.cpp index 81e3b2a2de..ac93d7ac0b 100644 --- a/opencl/test/unit_test/offline_compiler/ocloc_supported_devices_helper_tests.cpp +++ b/opencl/test/unit_test/offline_compiler/ocloc_supported_devices_helper_tests.cpp @@ -370,7 +370,7 @@ TEST_F(SupportedDevicesHelperTest, WhenSerializingDeserializingAndSerializingAga } } -TEST_F(SupportedDevicesHelperTest, WhenMergingOclocVersionDataThenAllDataIsCombinedCorrectly) { +TEST_F(SupportedDevicesHelperTest, WhenMergingOclocDataThenAllDataIsCombinedCorrectly) { SupportedDevicesMode mode = SupportedDevicesMode::merge; MockSupportedDevicesHelper supportedDevicesHelper(mode, argHelper->productConfigHelper.get()); @@ -397,7 +397,7 @@ TEST_F(SupportedDevicesHelperTest, WhenMergingOclocVersionDataThenAllDataIsCombi versionDataMap["ocloc-1.0"] = data1; versionDataMap["ocloc-2.0"] = data2; - auto mergedData = supportedDevicesHelper.mergeOclocVersionData(versionDataMap); + auto mergedData = supportedDevicesHelper.mergeOclocData(versionDataMap); ASSERT_EQ(mergedData.deviceIpVersions.size(), 3u); EXPECT_TRUE(std::is_sorted(mergedData.deviceIpVersions.begin(), mergedData.deviceIpVersions.end())); @@ -448,13 +448,13 @@ TEST_F(SupportedDevicesHelperTest, WhenMergingOclocVersionDataThenAllDataIsCombi EXPECT_EQ(mergedData.releaseGroups[3].second, std::vector({0x2000001})); } -TEST_F(SupportedDevicesHelperTest, WhenConcatAndSerializeWithFormerVersionDataThenResultIsCorrect) { +TEST_F(SupportedDevicesHelperTest, WhenConcatAndSerializeWithFormerDataThenResultIsCorrect) { SupportedDevicesMode mode = SupportedDevicesMode::concat; MockSupportedDevicesHelper supportedDevicesHelper(mode, argHelper->productConfigHelper.get()); - auto currentVersionData = supportedDevicesHelper.collectSupportedDevicesData(enabledDevices); + auto currentData = supportedDevicesHelper.collectSupportedDevicesData(enabledDevices); - std::string concatResult = supportedDevicesHelper.concatAndSerializeWithFormerVersionData(currentVersionData); + std::string concatResult = supportedDevicesHelper.concatAndSerializeWithFormerData(currentData); auto family1 = argHelper->productConfigHelper->getAcronymFromAFamily(mockDevices[0].family); auto family2 = argHelper->productConfigHelper->getAcronymFromAFamily(mockDevices[1].family); @@ -516,14 +516,14 @@ ocloc-former: EXPECT_EQ(concatResult, expectedYaml); } -TEST_F(SupportedDevicesHelperTest, GivenEmptyFormerVersionDataWhenConcatAndSerializeWithFormerVersionDataThenResultIsCorrect) { +TEST_F(SupportedDevicesHelperTest, GivenEmptyFormerDataWhenConcatAndSerializeWithFormerDataThenResultIsCorrect) { SupportedDevicesMode mode = SupportedDevicesMode::concat; MockSupportedDevicesHelper supportedDevicesHelper(mode, argHelper->productConfigHelper.get()); supportedDevicesHelper.getDataFromFormerOclocVersionEmptyResult = true; - auto currentVersionData = supportedDevicesHelper.collectSupportedDevicesData(enabledDevices); + auto currentData = supportedDevicesHelper.collectSupportedDevicesData(enabledDevices); - std::string concatResult = supportedDevicesHelper.concatAndSerializeWithFormerVersionData(currentVersionData); + std::string concatResult = supportedDevicesHelper.concatAndSerializeWithFormerData(currentData); auto family1 = argHelper->productConfigHelper->getAcronymFromAFamily(mockDevices[0].family); auto family2 = argHelper->productConfigHelper->getAcronymFromAFamily(mockDevices[1].family); @@ -566,13 +566,13 @@ TEST_F(SupportedDevicesHelperTest, GivenEmptyFormerVersionDataWhenConcatAndSeria EXPECT_EQ(concatResult, expectedYaml); } -TEST_F(SupportedDevicesHelperTest, WhenMergeAndSerializeWithFormerVersionDataThenBothVersionsAreCorrectlyMerged) { +TEST_F(SupportedDevicesHelperTest, WhenMergeAndSerializeWithFormerDataThenBothVersionsAreCorrectlyMerged) { SupportedDevicesMode mode = SupportedDevicesMode::merge; MockSupportedDevicesHelper supportedDevicesHelper(mode, argHelper->productConfigHelper.get()); supportedDevicesHelper.getDataFromFormerOclocVersionEmptyResult = false; - auto currentVersionData = supportedDevicesHelper.collectSupportedDevicesData(enabledDevices); - std::string mergeResult = supportedDevicesHelper.mergeAndSerializeWithFormerVersionData(currentVersionData); + auto currentData = supportedDevicesHelper.collectSupportedDevicesData(enabledDevices); + std::string mergeResult = supportedDevicesHelper.mergeAndSerializeWithFormerData(currentData); auto deserializedResult = supportedDevicesHelper.deserialize(mergeResult); ASSERT_EQ(deserializedResult.size(), 1u); @@ -643,13 +643,13 @@ TEST_F(SupportedDevicesHelperTest, WhenMergeAndSerializeWithFormerVersionDataThe } } -TEST_F(SupportedDevicesHelperTest, GivenEmptyFormerVersionDataWhenMergeAndSerializeWithFormerVersionDataThenOnlyCurrentVersionIsPresent) { +TEST_F(SupportedDevicesHelperTest, GivenEmptyFormerDataWhenMergeAndSerializeWithFormerDataThenOnlyCurrentVersionIsPresent) { SupportedDevicesMode mode = SupportedDevicesMode::merge; MockSupportedDevicesHelper supportedDevicesHelper(mode, argHelper->productConfigHelper.get()); supportedDevicesHelper.getDataFromFormerOclocVersionEmptyResult = true; - auto currentVersionData = supportedDevicesHelper.collectSupportedDevicesData(enabledDevices); - std::string mergeResult = supportedDevicesHelper.mergeAndSerializeWithFormerVersionData(currentVersionData); + auto currentData = supportedDevicesHelper.collectSupportedDevicesData(enabledDevices); + std::string mergeResult = supportedDevicesHelper.mergeAndSerializeWithFormerData(currentData); auto family1 = argHelper->productConfigHelper->getAcronymFromAFamily(mockDevices[0].family); auto family2 = argHelper->productConfigHelper->getAcronymFromAFamily(mockDevices[1].family); diff --git a/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp b/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp index 19d719e036..fccb186c89 100644 --- a/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp +++ b/opencl/test/unit_test/offline_compiler/offline_compiler_tests.cpp @@ -1042,7 +1042,7 @@ TEST_F(OfflineCompilerTests, WhenQueryingSupportedDevicesThenNonEmptyOutputFileI EXPECT_EQ(OCLOC_SUCCESS, retVal); Ocloc::SupportedDevicesHelper supportedDevicesHelper(mode, oclocArgHelperWithoutInput->productConfigHelper.get()); - std::string expectedFileName = supportedDevicesHelper.getOclocCurrentVersionOutputFilename(); + std::string expectedFileName = supportedDevicesHelper.getCurrentOclocOutputFilename(); EXPECT_NE(oclocArgHelperWithoutInput->filesMap.find(expectedFileName), oclocArgHelperWithoutInput->filesMap.end()); diff --git a/opencl/test/unit_test/offline_compiler/windows/ocloc_supported_devices_helper_windows_tests.cpp b/opencl/test/unit_test/offline_compiler/windows/ocloc_supported_devices_helper_windows_tests.cpp index 68e0de3fdb..7bd0b20d95 100644 --- a/opencl/test/unit_test/offline_compiler/windows/ocloc_supported_devices_helper_windows_tests.cpp +++ b/opencl/test/unit_test/offline_compiler/windows/ocloc_supported_devices_helper_windows_tests.cpp @@ -11,11 +11,11 @@ #include "gtest/gtest.h" -namespace NEO { +using namespace NEO; struct SupportedDevicesHelperWindowsTest : public ::testing::Test { void SetUp() override { - mockHelper.getOclocCurrentVersionMockResult = ""; + mockHelper.getCurrentOclocNameMockResult = ""; } void TearDown() override { @@ -24,25 +24,23 @@ struct SupportedDevicesHelperWindowsTest : public ::testing::Test { MockSupportedDevicesHelper mockHelper = MockSupportedDevicesHelper(SupportedDevicesMode::concat, nullptr); }; -TEST_F(SupportedDevicesHelperWindowsTest, GivenVariousOclocLibraryNamesWhenExtractingOclocVersionThenEmptyStringIsReturned) { - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc-2.0.1.so"), ""); - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc-2.0.so"), ""); - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc2.0.so"), ""); - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc-2.0"), ""); - EXPECT_EQ(mockHelper.extractOclocVersion("libocloc.so"), ""); +TEST_F(SupportedDevicesHelperWindowsTest, GivenVariousOclocLibraryNamesWhenExtractingOclocNameThenEmptyStringIsReturned) { + EXPECT_EQ(mockHelper.extractOclocName("libocloc-2.0.1.so"), ""); + EXPECT_EQ(mockHelper.extractOclocName("libocloc-2.0.so"), ""); + EXPECT_EQ(mockHelper.extractOclocName("libocloc2.0.so"), ""); + EXPECT_EQ(mockHelper.extractOclocName("libocloc-2.0"), ""); + EXPECT_EQ(mockHelper.extractOclocName("libocloc.so"), ""); } -TEST_F(SupportedDevicesHelperWindowsTest, GivenSupportedDevicesHelperWhenGetOclocCurrentVersionThenReturnCorrectValue) { - EXPECT_EQ("ocloc", mockHelper.getOclocCurrentVersion()); +TEST_F(SupportedDevicesHelperWindowsTest, GivenSupportedDevicesHelperWhenGetCurrentOclocNameThenReturnCorrectValue) { + EXPECT_EQ("ocloc", mockHelper.getCurrentOclocName()); } -TEST_F(SupportedDevicesHelperWindowsTest, GivenSupportedDevicesHelperWhenGetOclocFormerVersionThenReturnCorrectValue) { - EXPECT_EQ("", mockHelper.getOclocFormerVersion()); +TEST_F(SupportedDevicesHelperWindowsTest, GivenSupportedDevicesHelperWhenGetFormerOclocNameThenReturnCorrectValue) { + EXPECT_EQ("", mockHelper.getFormerOclocName()); } -TEST_F(SupportedDevicesHelperWindowsTest, GivenSupportedDevicesHelperWhenGetDataFromFormerOclocVersionThenReturnEmptyData) { +TEST_F(SupportedDevicesHelperWindowsTest, GivenSupportedDevicesHelperWhenGetDataFromFormerOclocThenReturnEmptyData) { SupportedDevicesHelper helper(SupportedDevicesMode::concat, nullptr); - EXPECT_EQ("", helper.getDataFromFormerOclocVersion()); + EXPECT_EQ("", helper.getDataFromFormerOcloc()); } - -} // namespace NEO diff --git a/shared/offline_compiler/source/linux/ocloc_supported_devices_helper_linux.cpp b/shared/offline_compiler/source/linux/ocloc_supported_devices_helper_linux.cpp index 97b4ebde7a..d1815fa206 100644 --- a/shared/offline_compiler/source/linux/ocloc_supported_devices_helper_linux.cpp +++ b/shared/offline_compiler/source/linux/ocloc_supported_devices_helper_linux.cpp @@ -19,25 +19,24 @@ std::string SupportedDevicesHelper::getOutputFilenameSuffix(SupportedDevicesMode return "_supported_devices_" + toStr(mode) + fileExtension.data(); } -std::string SupportedDevicesHelper::getOclocCurrentVersionOutputFilename() const { - return getOclocCurrentVersion() + getOutputFilenameSuffix(mode); +std::string SupportedDevicesHelper::getCurrentOclocOutputFilename() const { + return getCurrentOclocName() + getOutputFilenameSuffix(mode); } -std::string SupportedDevicesHelper::getOclocCurrentVersion() const { - return extractOclocVersion(getOclocCurrentLibName()); +std::string SupportedDevicesHelper::getCurrentOclocName() const { + return extractOclocName(getOclocCurrentLibName()); } -std::string SupportedDevicesHelper::getOclocFormerVersion() const { - return extractOclocVersion(getOclocFormerLibName()); -} - -std::string SupportedDevicesHelper::extractOclocVersion(std::string_view oclocLibNameWithVersion) const { - // libocloc-2.0.so -> ocloc-2.0 - std::string_view view(oclocLibNameWithVersion); - auto start = view.find("ocloc-"); +std::string SupportedDevicesHelper::extractOclocName(std::string_view oclocLibName) const { + // libocloc.so -> ocloc + // libocloc-legacy1.so -> ocloc-legacy1 + std::string_view view(oclocLibName); + constexpr char prefix[] = "lib"; + auto start = view.find(prefix); if (start == std::string_view::npos) { return "ocloc"; } + start += strlen(prefix); auto end = view.find(".so", start); if (end == std::string_view::npos) { @@ -47,7 +46,7 @@ std::string SupportedDevicesHelper::extractOclocVersion(std::string_view oclocLi return std::string(view.substr(start, end - start)); } -std::string SupportedDevicesHelper::getDataFromFormerOclocVersion() const { +std::string SupportedDevicesHelper::getDataFromFormerOcloc() const { std::string retData; const char *argv[] = {"ocloc", "query", "SUPPORTED_DEVICES", "-concat"}; diff --git a/shared/offline_compiler/source/ocloc_supported_devices_helper.cpp b/shared/offline_compiler/source/ocloc_supported_devices_helper.cpp index e045a721d6..f3b0aa1640 100644 --- a/shared/offline_compiler/source/ocloc_supported_devices_helper.cpp +++ b/shared/offline_compiler/source/ocloc_supported_devices_helper.cpp @@ -8,9 +8,9 @@ #include "shared/offline_compiler/source/ocloc_supported_devices_helper.h" #include "shared/offline_compiler/source/ocloc_api.h" +#include "shared/offline_compiler/source/ocloc_interface.h" #include "shared/source/device_binary_format/yaml/yaml_parser.h" #include "shared/source/helpers/product_config_helper.h" -#include "shared/source/os_interface/os_library.h" #include #include @@ -63,9 +63,9 @@ SupportedDevicesHelper::SupportedDevicesData SupportedDevicesHelper::collectSupp return data; } -std::string SupportedDevicesHelper::serialize(std::string_view oclocVersion, const SupportedDevicesData &data) const { +std::string SupportedDevicesHelper::serialize(std::string_view oclocName, const SupportedDevicesData &data) const { std::ostringstream oss; - oss << oclocVersion << ":\n"; + oss << oclocName << ":\n"; // DeviceIpVersions oss << " " << SupportedDevicesYamlConstants::deviceIpVersions << ":\n"; @@ -204,30 +204,30 @@ std::map SupportedDev return result; } -std::string SupportedDevicesHelper::mergeAndSerializeWithFormerVersionData(const SupportedDevicesData ¤tVersionData) const { - std::string formerVersionSupportedDevices = getDataFromFormerOclocVersion(); +std::string SupportedDevicesHelper::mergeAndSerializeWithFormerData(const SupportedDevicesData ¤tData) const { + std::string formerSupportedDevices = getDataFromFormerOcloc(); - if (formerVersionSupportedDevices.empty()) { - return serialize(getOclocCurrentVersion(), currentVersionData); + if (formerSupportedDevices.empty()) { + return serialize(getCurrentOclocName(), currentData); } - auto formerVerDeserialized = deserialize(formerVersionSupportedDevices); - formerVerDeserialized[getOclocCurrentVersion()] = currentVersionData; + auto formerDataDeserialized = deserialize(formerSupportedDevices); + formerDataDeserialized[getCurrentOclocName()] = currentData; - auto mergedData = mergeOclocVersionData(formerVerDeserialized); + auto mergedData = mergeOclocData(formerDataDeserialized); return serialize("ocloc", mergedData); } -std::string SupportedDevicesHelper::concatAndSerializeWithFormerVersionData(const SupportedDevicesData ¤tVersionData) const { - std::string output = serialize(getOclocCurrentVersion(), currentVersionData); - std::string formerVersionSupportedDevices = getDataFromFormerOclocVersion(); - if (!formerVersionSupportedDevices.empty()) { - output += "\n" + formerVersionSupportedDevices; +std::string SupportedDevicesHelper::concatAndSerializeWithFormerData(const SupportedDevicesData ¤tData) const { + std::string output = serialize(getCurrentOclocName(), currentData); + std::string formerSupportedDevices = getDataFromFormerOcloc(); + if (!formerSupportedDevices.empty()) { + output += "\n" + formerSupportedDevices; } return output; } -SupportedDevicesHelper::SupportedDevicesData SupportedDevicesHelper::mergeOclocVersionData(const std::map &versionDataMap) const { +SupportedDevicesHelper::SupportedDevicesData SupportedDevicesHelper::mergeOclocData(const std::map &nameDataMap) const { struct DeviceInfoComparator { bool operator()(const DeviceInfo &lhs, const DeviceInfo &rhs) const { return std::tie(lhs.deviceId, lhs.revisionId, lhs.ipVersion) < @@ -242,7 +242,7 @@ SupportedDevicesHelper::SupportedDevicesData SupportedDevicesHelper::mergeOclocV std::map> uniqueFamilyGroups; std::map> uniqueReleaseGroups; - for (const auto &[version, data] : versionDataMap) { + for (const auto &[name, data] : nameDataMap) { uniqueIpVersions.insert(data.deviceIpVersions.begin(), data.deviceIpVersions.end()); for (const auto &deviceInfo : data.deviceInfos) { uniqueDeviceInfos.insert(deviceInfo); @@ -294,4 +294,8 @@ SupportedDevicesHelper::SupportedDevicesData SupportedDevicesHelper::mergeOclocV return mergedData; } + +std::string SupportedDevicesHelper::getFormerOclocName() const { + return extractOclocName(getOclocFormerLibName()); +} } // namespace Ocloc diff --git a/shared/offline_compiler/source/ocloc_supported_devices_helper.h b/shared/offline_compiler/source/ocloc_supported_devices_helper.h index dc2f9e83f9..5b64f1875a 100644 --- a/shared/offline_compiler/source/ocloc_supported_devices_helper.h +++ b/shared/offline_compiler/source/ocloc_supported_devices_helper.h @@ -55,22 +55,22 @@ class SupportedDevicesHelper { SupportedDevicesHelper(SupportedDevicesMode mode, ProductConfigHelper *productConfigHelper) : mode(mode), productConfigHelper(productConfigHelper) {} - std::string getOclocCurrentVersionOutputFilename() const; + std::string getCurrentOclocOutputFilename() const; SupportedDevicesData collectSupportedDevicesData(const std::vector &enabledDevices) const; - std::string serialize(std::string_view oclocVersion, const SupportedDevicesData &data) const; + std::string serialize(std::string_view oclocName, const SupportedDevicesData &data) const; std::map deserialize(std::string_view yamlString) const; - std::string mergeAndSerializeWithFormerVersionData(const SupportedDevicesData ¤tVersionData) const; - std::string concatAndSerializeWithFormerVersionData(const SupportedDevicesData ¤tVersionData) const; + std::string mergeAndSerializeWithFormerData(const SupportedDevicesData ¤tData) const; + std::string concatAndSerializeWithFormerData(const SupportedDevicesData ¤tData) const; - MOCKABLE_VIRTUAL std::string getDataFromFormerOclocVersion() const; + MOCKABLE_VIRTUAL std::string getDataFromFormerOcloc() const; protected: - MOCKABLE_VIRTUAL std::string getOclocCurrentVersion() const; - std::string getOclocFormerVersion() const; - std::string extractOclocVersion(std::string_view oclocLibNameWithVersion) const; - SupportedDevicesData mergeOclocVersionData(const std::map &versionDataMap) const; + MOCKABLE_VIRTUAL std::string getCurrentOclocName() const; + std::string getFormerOclocName() const; + std::string extractOclocName(std::string_view oclocLibFileName) const; + SupportedDevicesData mergeOclocData(const std::map &nameDataMap) const; std::string getOutputFilenameSuffix([[maybe_unused]] SupportedDevicesMode mode) const; private: diff --git a/shared/offline_compiler/source/offline_compiler.cpp b/shared/offline_compiler/source/offline_compiler.cpp index 2a74759556..fc1c956855 100644 --- a/shared/offline_compiler/source/offline_compiler.cpp +++ b/shared/offline_compiler/source/offline_compiler.cpp @@ -472,12 +472,12 @@ int OfflineCompiler::querySupportedDevices(Ocloc::SupportedDevicesMode mode, Ocl std::string output; if (mode == Ocloc::SupportedDevicesMode::merge) { - output = supportedDevicesHelper.mergeAndSerializeWithFormerVersionData(supportedDevicesData); + output = supportedDevicesHelper.mergeAndSerializeWithFormerData(supportedDevicesData); } else { - output = supportedDevicesHelper.concatAndSerializeWithFormerVersionData(supportedDevicesData); + output = supportedDevicesHelper.concatAndSerializeWithFormerData(supportedDevicesData); } - helper->saveOutput(supportedDevicesHelper.getOclocCurrentVersionOutputFilename(), output.data(), output.size()); + helper->saveOutput(supportedDevicesHelper.getCurrentOclocOutputFilename(), output.data(), output.size()); return 0; } diff --git a/shared/offline_compiler/source/windows/ocloc_supported_devices_helper_windows.cpp b/shared/offline_compiler/source/windows/ocloc_supported_devices_helper_windows.cpp index 3d8b2cafd2..16e6dbb204 100644 --- a/shared/offline_compiler/source/windows/ocloc_supported_devices_helper_windows.cpp +++ b/shared/offline_compiler/source/windows/ocloc_supported_devices_helper_windows.cpp @@ -17,23 +17,19 @@ std::string SupportedDevicesHelper::getOutputFilenameSuffix(SupportedDevicesMode return std::string("_supported_devices") + fileExtension.data(); } -std::string SupportedDevicesHelper::getOclocCurrentVersionOutputFilename() const { - return getOclocCurrentVersion() + getOutputFilenameSuffix(SupportedDevicesMode::unknown); +std::string SupportedDevicesHelper::getCurrentOclocOutputFilename() const { + return getCurrentOclocName() + getOutputFilenameSuffix(SupportedDevicesMode::unknown); } -std::string SupportedDevicesHelper::getOclocCurrentVersion() const { +std::string SupportedDevicesHelper::getCurrentOclocName() const { return "ocloc"; } -std::string SupportedDevicesHelper::getOclocFormerVersion() const { +std::string SupportedDevicesHelper::extractOclocName(std::string_view oclocLibName) const { return ""; } -std::string SupportedDevicesHelper::extractOclocVersion(std::string_view oclocLibNameWithVersion) const { - return ""; -} - -std::string SupportedDevicesHelper::getDataFromFormerOclocVersion() const { +std::string SupportedDevicesHelper::getDataFromFormerOcloc() const { return ""; } } // namespace Ocloc