From ae484993e20206f9f18c211007f1ba1357ac305e Mon Sep 17 00:00:00 2001 From: Filip Hazubski Date: Tue, 9 Feb 2021 19:28:51 +0000 Subject: [PATCH] Update builtins generation Use revision id when generating cpp files. Related-To: NEO-5167 Signed-off-by: Filip Hazubski --- .../source/built_ins/kernels/CMakeLists.txt | 4 +- .../unit_test/helpers/hw_helper_tests.cpp | 11 +++ .../source/generate_cpp_array.cpp | 21 +++-- shared/source/built_ins/built_ins_storage.cpp | 14 ++- shared/source/built_ins/builtins_binary.cmake | 28 +----- .../source/built_ins/kernels/CMakeLists.txt | 92 +++++++++---------- shared/source/gen9/hw_helper_gen9.cpp | 10 ++ shared/source/helpers/hw_helper.h | 3 + shared/source/helpers/hw_helper_base.inl | 5 + 9 files changed, 101 insertions(+), 87 deletions(-) diff --git a/opencl/source/built_ins/kernels/CMakeLists.txt b/opencl/source/built_ins/kernels/CMakeLists.txt index 006c31e193..05393886be 100644 --- a/opencl/source/built_ins/kernels/CMakeLists.txt +++ b/opencl/source/built_ins/kernels/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2017-2020 Intel Corporation +# Copyright (C) 2017-2021 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -90,13 +90,11 @@ macro(macro_for_each_gen) foreach(GENERATED_BUILTIN ${GENERATED_BUILTINS}) compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTIN}.builtin_kernel ${NEO_BITS} "${BUILTIN_OPTIONS}") list(APPEND BUILTINS_COMMANDS ${TargetDir}/${BUILTIN_CPP}) - set(RUNTIME_GENERATED_${GENERATED_BUILTIN}_${family_name_with_type} ${BUILTIN_CPP} PARENT_SCOPE) endforeach() get_bits_for_stateless(${GEN_TYPE} ${PLATFORM_TYPE}) foreach(GENERATED_BUILTIN_STATELESS ${GENERATED_BUILTINS_STATELESS}) compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTIN_STATELESS}.builtin_kernel ${BITS} "${BUILTIN_OPTIONS_STATELESS}") list(APPEND BUILTINS_COMMANDS ${TargetDir}/${BUILTIN_CPP}) - set(RUNTIME_GENERATED_${GENERATED_BUILTIN_STATELESS}_${family_name_with_type} ${BUILTIN_CPP} PARENT_SCOPE) endforeach() set(target_name builtins_${family_name_with_type}_vme) add_custom_target(${target_name} DEPENDS ${BUILTINS_COMMANDS}) diff --git a/opencl/test/unit_test/helpers/hw_helper_tests.cpp b/opencl/test/unit_test/helpers/hw_helper_tests.cpp index 1e215ec1a0..c50733c084 100644 --- a/opencl/test/unit_test/helpers/hw_helper_tests.cpp +++ b/opencl/test/unit_test/helpers/hw_helper_tests.cpp @@ -1199,3 +1199,14 @@ TEST_F(HwHelperTest, whenFtrGpGpuMidThreadLevelPreemptFeatureDisabledThenFalseIs bool result = hwHelper.isAdditionalFeatureFlagRequired(&featureTable); EXPECT_FALSE(result); } + +TEST_F(HwHelperTest, whenGettingDefaultRevisionIdThenCorrectValueIsReturned) { + auto &hwHelper = HwHelper::get(renderCoreFamily); + auto revisionId = hwHelper.getDefaultRevisionId(*defaultHwInfo); + if ((defaultHwInfo->platform.eRenderCoreFamily == IGFX_GEN9_CORE) && + (strcmp(defaultHwInfo->capabilityTable.platformType, "core") == 0)) { + EXPECT_EQ(9u, revisionId); + } else { + EXPECT_EQ(0u, revisionId); + } +} diff --git a/shared/generate_cpp_array/source/generate_cpp_array.cpp b/shared/generate_cpp_array/source/generate_cpp_array.cpp index 5d6a49f2e5..284443d5a6 100644 --- a/shared/generate_cpp_array/source/generate_cpp_array.cpp +++ b/shared/generate_cpp_array/source/generate_cpp_array.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020 Intel Corporation + * Copyright (C) 2020-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -20,13 +20,13 @@ static void show_usage(std::string name) { << "\t -p, --platform\t\tOPTIONAL - Family name with type\n" << "\t -a, --array\t\tName of an uin32_t type array containing parsed input file" << std::endl; } -std::string parseToCharArray(std::unique_ptr binary, size_t size, std::string &builtinName, std::string &platform, bool isSpirV) { +std::string parseToCharArray(std::unique_ptr binary, size_t size, std::string &builtinName, std::string &platform, std::string revisionId, bool isSpirV) { std::ostringstream out; out << "#include \n"; out << "#include \n\n"; - out << "size_t " << builtinName << "BinarySize_" << platform << " = " << size << ";\n"; - out << "uint32_t " << builtinName << "Binary_" << platform << "[" << (size + 3) / 4 << "] = {" + out << "size_t " << builtinName << "BinarySize_" << platform << "_" << revisionId << " = " << size << ";\n"; + out << "uint32_t " << builtinName << "Binary_" << platform << "_" << revisionId << "[" << (size + 3) / 4 << "] = {" << std::endl << " "; uint32_t *binaryUint = reinterpret_cast(binary.get()); @@ -60,11 +60,11 @@ std::string parseToCharArray(std::unique_ptr binary, size_t size, std isSpirV ? out << "Ir(" : out << "Bin("; out << std::endl; out << " \""; - platform != "" ? out << platform << "_0_" << builtinName : out << builtinName; + platform != "" ? out << platform << "_" << revisionId << "_" << builtinName : out << builtinName; isSpirV ? out << ".builtin_kernel.bc\"," : out << ".builtin_kernel.bin\","; out << std::endl; - out << " (const char *)" << builtinName << "Binary_" << platform << "," << std::endl; - out << " " << builtinName << "BinarySize_" << platform << ");" << std::endl; + out << " (const char *)" << builtinName << "Binary_" << platform << "_" << revisionId << "," << std::endl; + out << " " << builtinName << "BinarySize_" << platform << "_" << revisionId << ");" << std::endl; out << "}" << std::endl; return out.str(); @@ -79,6 +79,7 @@ int main(int argc, char *argv[]) { std::string cppOutputName; std::string arrayName; std::string platform = ""; + std::string revisionId = "0"; size_t size = 0; std::fstream inputFile; bool isSpirV; @@ -92,6 +93,8 @@ int main(int argc, char *argv[]) { arrayName = argv[++i]; } else if ((arg == "-p") || (arg == "--platform")) { platform = argv[++i]; + } else if ((arg == "-r") || (arg == "--revision_id")) { + revisionId = argv[++i]; } else { return 1; } @@ -110,11 +113,11 @@ int main(int argc, char *argv[]) { inputFile.read(reinterpret_cast(memblock.get()), size); inputFile.close(); isSpirV = fileName.find(".spv") != std::string::npos; - std::string cpp = parseToCharArray(move(memblock), size, arrayName, platform, isSpirV); + std::string cpp = parseToCharArray(move(memblock), size, arrayName, platform, revisionId, isSpirV); std::fstream(cppOutputName.c_str(), std::ios::out | std::ios::binary).write(cpp.c_str(), cpp.size()); } else { std::cerr << "File cannot be opened!" << std::endl; return 1; } return 0; -} \ No newline at end of file +} diff --git a/shared/source/built_ins/built_ins_storage.cpp b/shared/source/built_ins/built_ins_storage.cpp index 268005aaba..986f0d05c1 100644 --- a/shared/source/built_ins/built_ins_storage.cpp +++ b/shared/source/built_ins/built_ins_storage.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017-2020 Intel Corporation + * Copyright (C) 2017-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -9,6 +9,7 @@ #include "shared/source/debug_settings/debug_settings_manager.h" #include "shared/source/device/device.h" #include "shared/source/helpers/api_specific_config.h" +#include "shared/source/helpers/hw_helper.h" #include "os_inc.h" @@ -186,10 +187,15 @@ BuiltinCode BuiltinsLib::getBuiltinCode(EBuiltInOps::Type builtin, BuiltinCode:: BuiltinResourceT BuiltinsLib::getBuiltinResource(EBuiltInOps::Type builtin, BuiltinCode::ECodeType requestedCodeType, Device &device) { BuiltinResourceT bc; + auto &hwInfo = device.getHardwareInfo(); + auto &hwHelper = HwHelper::get(hwInfo.platform.eRenderCoreFamily); std::string resourceNameGeneric = createBuiltinResourceName(builtin, BuiltinCode::getExtension(requestedCodeType)); - std::string resourceNameForPlatformType = createBuiltinResourceName(builtin, BuiltinCode::getExtension(requestedCodeType), getFamilyNameWithType(device.getHardwareInfo())); - std::string resourceNameForPlatformTypeAndStepping = createBuiltinResourceName(builtin, BuiltinCode::getExtension(requestedCodeType), getFamilyNameWithType(device.getHardwareInfo()), - device.getHardwareInfo().platform.usRevId); + std::string resourceNameForPlatformType = createBuiltinResourceName(builtin, BuiltinCode::getExtension(requestedCodeType), + getFamilyNameWithType(hwInfo), + hwHelper.getDefaultRevisionId(hwInfo)); + std::string resourceNameForPlatformTypeAndStepping = createBuiltinResourceName(builtin, BuiltinCode::getExtension(requestedCodeType), + getFamilyNameWithType(hwInfo), + hwInfo.platform.usRevId); for (auto &rn : {resourceNameForPlatformTypeAndStepping, resourceNameForPlatformType, resourceNameGeneric}) { // first look for dedicated version, only fallback to generic one for (auto &s : allStorages) { diff --git a/shared/source/built_ins/builtins_binary.cmake b/shared/source/built_ins/builtins_binary.cmake index fabcb8e25a..c99bb8fa1e 100644 --- a/shared/source/built_ins/builtins_binary.cmake +++ b/shared/source/built_ins/builtins_binary.cmake @@ -1,5 +1,5 @@ # -# Copyright (C) 2018-2020 Intel Corporation +# Copyright (C) 2018-2021 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -50,28 +50,10 @@ if(COMPILE_BUILT_INS) add_subdirectory(kernels) endif() -macro(macro_for_each_gen) - foreach(MODE ${BIND_MODES}) - foreach(PLATFORM_TYPE ${PLATFORM_TYPES}) - get_family_name_with_type(${GEN_TYPE} ${PLATFORM_TYPE}) - foreach(GENERATED_BUILTIN_IMAGES ${GENERATED_BUILTINS_IMAGES}) - list(APPEND GENERATED_BUILTINS_CPPS_${MODE} ${BUILTINS_INCLUDE_DIR}/${RUNTIME_GENERATED_${GENERATED_BUILTIN_IMAGES}_${family_name_with_type}_${MODE}}) - endforeach() - foreach(GENERATED_BUILTIN_IMAGES_STATELESS ${GENERATED_BUILTINS_IMAGES_STATELESS}) - list(APPEND GENERATED_BUILTINS_CPPS_${MODE} ${BUILTINS_INCLUDE_DIR}/${RUNTIME_GENERATED_${GENERATED_BUILTIN_IMAGES_STATELESS}_${family_name_with_type}_${MODE}}) - endforeach() - foreach(GENERATED_BUILTIN ${GENERATED_BUILTINS}) - list(APPEND GENERATED_BUILTINS_CPPS_${MODE} ${BUILTINS_INCLUDE_DIR}/${RUNTIME_GENERATED_${GENERATED_BUILTIN}_${family_name_with_type}_${MODE}}) - endforeach() - foreach(GENERATED_BUILTIN_STATELESS ${GENERATED_BUILTINS_STATELESS}) - list(APPEND GENERATED_BUILTINS_CPPS_${MODE} ${BUILTINS_INCLUDE_DIR}/${RUNTIME_GENERATED_${GENERATED_BUILTIN_STATELESS}_${family_name_with_type}_${MODE}}) - endforeach() - endforeach() - source_group("generated files\\${GEN_TYPE_LOWER}" FILES ${GENERATED_BUILTINS_CPPS_${MODE}}) - endforeach() -endmacro() - -apply_macro_for_each_gen("SUPPORTED") +foreach(MODE ${BIND_MODES}) + get_property(GENERATED_BUILTINS_CPPS_${MODE} GLOBAL PROPERTY GENERATED_BUILTINS_CPPS_${MODE}) + source_group("generated files\\${GEN_TYPE_LOWER}" FILES GENERATED_BUILTINS_CPPS_${MODE}) +endforeach() if(COMPILE_BUILT_INS) target_sources(${BUILTINS_BINARIES_BINDFUL_LIB_NAME} PUBLIC ${GENERATED_BUILTINS_CPPS_bindful}) diff --git a/shared/source/built_ins/kernels/CMakeLists.txt b/shared/source/built_ins/kernels/CMakeLists.txt index 66ead9ae6a..425166f822 100644 --- a/shared/source/built_ins/kernels/CMakeLists.txt +++ b/shared/source/built_ins/kernels/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2017-2020 Intel Corporation +# Copyright (C) 2017-2021 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -41,7 +41,7 @@ set(BUILTIN_CPP "") function(get_bits_for_stateless gen_type platform_type) # Force 32bits compiling on gen9lp for stateless builtins - if((${GEN_TYPE} STREQUAL "GEN9") AND (${PLATFORM_TYPE} STREQUAL "LP")) + if((${gen_type} STREQUAL "GEN9") AND (${platform_type} STREQUAL "LP")) set(BITS "32" PARENT_SCOPE) else() set(BITS ${NEO_BITS} PARENT_SCOPE) @@ -64,14 +64,7 @@ function(compile_builtin gen_type platform_type builtin bits builtin_options mod ${OUTPUTPATH_BASE}.bin ${OUTPUTPATH_BASE}.gen ) - set(OUTPUT_FILE_CPP - ${OUTPUTPATH_BASE}.cpp - ) - # function returns builtin cpp filename - unset(BUILTIN_CPP) - # set variable outside function - set(BUILTIN_CPP built_ins/${NEO_ARCH}/${gen_type_lower}/${mode}_${BASENAME}_${family_name_with_type}.cpp PARENT_SCOPE) if(NOT DEFINED cloc_cmd_prefix) if(WIN32) set(cloc_cmd_prefix ocloc) @@ -91,12 +84,19 @@ function(compile_builtin gen_type platform_type builtin bits builtin_options mod WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${builtin} ocloc copy_compiler_files ) - add_custom_command( - OUTPUT ${OUTPUT_FILE_CPP} - COMMAND $ --file ${OUTPUTPATH_BASE}.gen --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --platform ${family_name_with_type} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DEPENDS ${OUTPUTPATH_BASE}.gen $ - ) + foreach(REVISION_ID ${${platform_type}_${gen_type}_REVISIONS}) + set(OUTPUT_FILE_CPP + ${OUTPUTDIR}/${mode}_${BASENAME}_${family_name_with_type}_${REVISION_ID}.cpp + ) + list(APPEND BUILTINS_COMMANDS "${OUTPUT_FILE_CPP}") + add_custom_command( + OUTPUT ${OUTPUT_FILE_CPP} + COMMAND $ --file ${OUTPUTPATH_BASE}.gen --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --platform ${family_name_with_type} --revision_id ${REVISION_ID} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS ${OUTPUTPATH_BASE}.gen $ + ) + endforeach() + set(BUILTINS_COMMANDS ${BUILTINS_COMMANDS} PARENT_SCOPE) endfunction() function(generate_cpp_spirv builtin) @@ -144,44 +144,40 @@ endfunction() macro(macro_for_each_gen) foreach(PLATFORM_TYPE ${PLATFORM_TYPES}) if(${GEN_TYPE}_HAS_${PLATFORM_TYPE}) + unset(IMAGE_SUPPORT) + GEN_CONTAINS_PLATFORMS("SUPPORTED_IMAGES" ${GEN_TYPE} IMAGE_SUPPORT) get_family_name_with_type(${GEN_TYPE} ${PLATFORM_TYPE}) string(TOLOWER ${PLATFORM_TYPE} PLATFORM_TYPE_LOWER) - unset(BUILTINS_COMMANDS) - foreach(MODE ${BIND_MODES}) - foreach(GENERATED_BUILTIN ${GENERATED_BUILTINS}) - compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTIN}.builtin_kernel ${NEO_BITS} "${BUILTIN_OPTIONS}" ${MODE}) - list(APPEND BUILTINS_COMMANDS ${TargetDir}/${BUILTIN_CPP}) - set(RUNTIME_GENERATED_${GENERATED_BUILTIN}_${family_name_with_type}_${MODE} ${BUILTIN_CPP} PARENT_SCOPE) - endforeach() - foreach(GENERATED_BUILTINS_IMAGES ${GENERATED_BUILTINS_IMAGES}) - compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTINS_IMAGES}.builtin_kernel ${NEO_BITS} "${BUILTIN_OPTIONS}" ${MODE}) - set(IMAGE_SUPPORT FALSE) - GEN_CONTAINS_PLATFORMS("SUPPORTED_IMAGES" ${GEN_TYPE} IMAGE_SUPPORT) - if(${IMAGE_SUPPORT}) - list(APPEND BUILTINS_COMMANDS ${TargetDir}/${BUILTIN_CPP}) - set(RUNTIME_GENERATED_${GENERATED_BUILTINS_IMAGES}_${family_name_with_type}_${MODE} ${BUILTIN_CPP} PARENT_SCOPE) - endif() - endforeach() - get_bits_for_stateless(${GEN_TYPE} ${PLATFORM_TYPE}) - foreach(GENERATED_BUILTIN_STATELESS ${GENERATED_BUILTINS_STATELESS}) - compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTIN_STATELESS}.builtin_kernel ${BITS} "${BUILTIN_OPTIONS_STATELESS}" ${MODE}) - list(APPEND BUILTINS_COMMANDS ${TargetDir}/${BUILTIN_CPP}) - set(RUNTIME_GENERATED_${GENERATED_BUILTIN_STATELESS}_${family_name_with_type}_${MODE} ${BUILTIN_CPP} PARENT_SCOPE) - endforeach() - foreach(GENERATED_BUILTIN_IMAGES_STATELESS ${GENERATED_BUILTINS_IMAGES_STATELESS}) - compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTIN_IMAGES_STATELESS}.builtin_kernel ${BITS} "${BUILTIN_OPTIONS_STATELESS}" ${MODE}) - set(IMAGE_SUPPORT FALSE) - GEN_CONTAINS_PLATFORMS("SUPPORTED_IMAGES" ${GEN_TYPE} IMAGE_SUPPORT) - if(${IMAGE_SUPPORT}) - list(APPEND BUILTINS_COMMANDS ${TargetDir}/${BUILTIN_CPP}) - set(RUNTIME_GENERATED_${GENERATED_BUILTIN_IMAGES_STATELESS}_${family_name_with_type}_${MODE} ${BUILTIN_CPP} PARENT_SCOPE) - endif() - endforeach() - endforeach() + get_bits_for_stateless(${GEN_TYPE} ${PLATFORM_TYPE}) set(target_name builtins_${family_name_with_type}) - add_custom_target(${target_name} DEPENDS ${BUILTINS_COMMANDS}) + add_custom_target(${target_name}) add_dependencies(builtins ${target_name}) set_target_properties(${target_name} PROPERTIES FOLDER "${SHARED_SOURCE_PROJECTS_FOLDER}/${SHARED_BUIILINS_PROJECTS_FOLDER}/${family_name_with_type}") + foreach(MODE ${BIND_MODES}) + unset(BUILTINS_COMMANDS) + foreach(GENERATED_BUILTIN ${GENERATED_BUILTINS}) + compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTIN}.builtin_kernel ${NEO_BITS} "${BUILTIN_OPTIONS}" ${MODE}) + endforeach() + foreach(GENERATED_BUILTIN_STATELESS ${GENERATED_BUILTINS_STATELESS}) + compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTIN_STATELESS}.builtin_kernel ${BITS} "${BUILTIN_OPTIONS_STATELESS}" ${MODE}) + endforeach() + if(${IMAGE_SUPPORT}) + foreach(GENERATED_BUILTINS_IMAGES ${GENERATED_BUILTINS_IMAGES}) + compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTINS_IMAGES}.builtin_kernel ${NEO_BITS} "${BUILTIN_OPTIONS}" ${MODE}) + endforeach() + foreach(GENERATED_BUILTIN_IMAGES_STATELESS ${GENERATED_BUILTINS_IMAGES_STATELESS}) + compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTIN_IMAGES_STATELESS}.builtin_kernel ${BITS} "${BUILTIN_OPTIONS_STATELESS}" ${MODE}) + endforeach() + endif() + get_property(GENERATED_BUILTINS_CPPS_${MODE} GLOBAL PROPERTY GENERATED_BUILTINS_CPPS_${MODE}) + foreach(BUILTIN ${BUILTINS_COMMANDS}) + list(APPEND GENERATED_BUILTINS_CPPS_${MODE} ${BUILTIN}) + endforeach() + set_property(GLOBAL PROPERTY GENERATED_BUILTINS_CPPS_${MODE} ${GENERATED_BUILTINS_CPPS_${MODE}}) + add_custom_target(${target_name}_${MODE} DEPENDS ${BUILTINS_COMMANDS}) + add_dependencies(${target_name} ${target_name}_${MODE}) + set_target_properties(${target_name}_${MODE} PROPERTIES FOLDER "${SHARED_SOURCE_PROJECTS_FOLDER}/${SHARED_BUIILINS_PROJECTS_FOLDER}/${family_name_with_type}") + endforeach() endif() endforeach() endmacro() diff --git a/shared/source/gen9/hw_helper_gen9.cpp b/shared/source/gen9/hw_helper_gen9.cpp index 4c0e540e55..0269e44ee2 100644 --- a/shared/source/gen9/hw_helper_gen9.cpp +++ b/shared/source/gen9/hw_helper_gen9.cpp @@ -11,6 +11,8 @@ #include "shared/source/helpers/hw_helper_bdw_plus.inl" #include "shared/source/helpers/hw_helper_bdw_to_icllp.inl" +#include + namespace NEO { typedef SKLFamily Family; @@ -42,6 +44,14 @@ uint32_t HwHelperHw::getDefaultThreadArbitrationPolicy() const { return ThreadArbitrationPolicy::RoundRobin; } +template <> +uint32_t HwHelperHw::getDefaultRevisionId(const HardwareInfo &hwInfo) const { + if (std::strcmp(hwInfo.capabilityTable.platformType, "core") == 0) { + return 9u; + } + return 0u; +} + template <> bool MemorySynchronizationCommands::isPipeControlWArequired(const HardwareInfo &hwInfo) { return true; } diff --git a/shared/source/helpers/hw_helper.h b/shared/source/helpers/hw_helper.h index 28f1d09fbb..9988a25a9e 100644 --- a/shared/source/helpers/hw_helper.h +++ b/shared/source/helpers/hw_helper.h @@ -132,6 +132,7 @@ class HwHelper { virtual bool isCpuImageTransferPreferred(const HardwareInfo &hwInfo) const = 0; virtual bool isKmdMigrationSupported(const HardwareInfo &hwInfo) const = 0; virtual aub_stream::MMIOList getExtraMmioList(const HardwareInfo &hwInfo) const = 0; + virtual uint32_t getDefaultRevisionId(const HardwareInfo &hwInfo) const = 0; static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo); static uint32_t getEnginesCount(const HardwareInfo &hwInfo); @@ -335,6 +336,8 @@ class HwHelperHw : public HwHelper { aub_stream::MMIOList getExtraMmioList(const HardwareInfo &hwInfo) const override; + uint32_t getDefaultRevisionId(const HardwareInfo &hwInfo) const override; + protected: LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override; diff --git a/shared/source/helpers/hw_helper_base.inl b/shared/source/helpers/hw_helper_base.inl index 5eab340ea8..c85b957045 100644 --- a/shared/source/helpers/hw_helper_base.inl +++ b/shared/source/helpers/hw_helper_base.inl @@ -539,4 +539,9 @@ bool HwHelperHw::isAdditionalFeatureFlagRequired(const FeatureTable * return false; } +template +uint32_t HwHelperHw::getDefaultRevisionId(const HardwareInfo &hwInfo) const { + return 0u; +} + } // namespace NEO