From 7bbb43a563cad111a42a1030782f149cfc4681b8 Mon Sep 17 00:00:00 2001 From: Kamil Kopryk Date: Wed, 17 Nov 2021 11:26:26 +0000 Subject: [PATCH] Move sharedSystemMemCapabilities to hwInfo Signed-off-by: Kamil Kopryk Related-To: NEO-6075 --- .../test/unit_tests/sources/device/test_device.cpp | 2 +- .../test/unit_tests/sources/memory/test_memory.cpp | 8 ++++---- .../test/unit_tests/sources/module/test_module.cpp | 4 ++-- .../api/cl_set_kernel_arg_svm_pointer_tests.inl | 4 ++-- opencl/test/unit_test/built_ins/built_in_tests.cpp | 2 +- opencl/test/unit_test/device/device_caps_tests.cpp | 2 +- opencl/test/unit_test/program/program_tests.cpp | 2 +- shared/offline_compiler/source/CMakeLists.txt | 13 +++++++++++++ shared/source/device/device.cpp | 9 +++++++++ shared/source/device/device.h | 4 +--- shared/source/device/device_caps.cpp | 7 +------ shared/source/device/device_info.h | 1 - shared/source/enable_gens.cmake | 10 ++++++++++ shared/source/gen11/hw_info_ehl.cpp | 1 + shared/source/gen11/hw_info_icllp.cpp | 1 + shared/source/gen11/hw_info_lkf.cpp | 1 + shared/source/gen12lp/hw_info_adlp.cpp | 1 + shared/source/gen12lp/hw_info_adls.cpp | 1 + shared/source/gen12lp/hw_info_dg1.cpp | 1 + shared/source/gen12lp/hw_info_rkl.cpp | 1 + shared/source/gen12lp/hw_info_tgllp.cpp | 1 + shared/source/gen8/hw_info_bdw.cpp | 1 + shared/source/gen9/hw_info_bxt.cpp | 1 + shared/source/gen9/hw_info_cfl.cpp | 1 + shared/source/gen9/hw_info_glk.cpp | 1 + shared/source/gen9/hw_info_kbl.cpp | 1 + shared/source/gen9/hw_info_skl.cpp | 1 + shared/source/helpers/hw_info.h | 1 + shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp | 1 + 29 files changed, 62 insertions(+), 22 deletions(-) diff --git a/level_zero/core/test/unit_tests/sources/device/test_device.cpp b/level_zero/core/test/unit_tests/sources/device/test_device.cpp index 42a7cd44ab..449d2b0a6b 100644 --- a/level_zero/core/test/unit_tests/sources/device/test_device.cpp +++ b/level_zero/core/test/unit_tests/sources/device/test_device.cpp @@ -858,7 +858,7 @@ TEST_F(DeviceTest, givenCallToDevicePropertiesThenMaximumMemoryToBeAllocatedIsCo auto &hwHelper = HwHelper::get(defaultHwInfo->platform.eRenderCoreFamily); auto expectedSize = this->neoDevice->getDeviceInfo().globalMemSize; - if (!this->neoDevice->getDeviceInfo().sharedSystemAllocationsSupport) { + if (!this->neoDevice->areSharedSystemAllocationsAllowed()) { expectedSize = std::min(expectedSize, hwHelper.getMaxMemAllocSize()); } EXPECT_EQ(deviceProperties.maxMemAllocSize, expectedSize); diff --git a/level_zero/core/test/unit_tests/sources/memory/test_memory.cpp b/level_zero/core/test/unit_tests/sources/memory/test_memory.cpp index 6f07665b67..03226fc136 100644 --- a/level_zero/core/test/unit_tests/sources/memory/test_memory.cpp +++ b/level_zero/core/test/unit_tests/sources/memory/test_memory.cpp @@ -467,7 +467,7 @@ TEST_F(MemoryRelaxedSizeTests, TEST_F(MemoryRelaxedSizeTests, givenCallToDeviceAllocWithLargerThanAllowedSizeAndRelaxedFlagThenAllocationIsMade) { - if (device->getDeviceInfo().sharedSystemAllocationsSupport) { + if (device->getNEODevice()->areSharedSystemAllocationsAllowed()) { GTEST_SKIP(); } size_t size = device->getNEODevice()->getDeviceInfo().maxMemAllocSize + 1; @@ -492,7 +492,7 @@ TEST_F(MemoryRelaxedSizeTests, TEST_F(MemoryRelaxedSizeTests, givenCallToDeviceAllocWithLargerThanAllowedSizeAndDebugFlagThenAllocationIsMade) { - if (device->getDeviceInfo().sharedSystemAllocationsSupport) { + if (device->getNEODevice()->areSharedSystemAllocationsAllowed()) { GTEST_SKIP(); } DebugManagerStateRestore restorer; @@ -607,7 +607,7 @@ TEST_F(MemoryRelaxedSizeTests, TEST_F(MemoryRelaxedSizeTests, givenCallToSharedAllocWithLargerThanAllowedSizeAndRelaxedFlagThenAllocationIsMade) { - if (device->getDeviceInfo().sharedSystemAllocationsSupport) { + if (device->getNEODevice()->areSharedSystemAllocationsAllowed()) { GTEST_SKIP(); } size_t size = device->getNEODevice()->getDeviceInfo().maxMemAllocSize + 1; @@ -634,7 +634,7 @@ TEST_F(MemoryRelaxedSizeTests, TEST_F(MemoryRelaxedSizeTests, givenCallToSharedAllocWithLargerThanAllowedSizeAndDebugFlagThenAllocationIsMade) { - if (device->getDeviceInfo().sharedSystemAllocationsSupport) { + if (device->getNEODevice()->areSharedSystemAllocationsAllowed()) { GTEST_SKIP(); } DebugManagerStateRestore restorer; diff --git a/level_zero/core/test/unit_tests/sources/module/test_module.cpp b/level_zero/core/test/unit_tests/sources/module/test_module.cpp index 707cc92045..3e81c24b59 100644 --- a/level_zero/core/test/unit_tests/sources/module/test_module.cpp +++ b/level_zero/core/test/unit_tests/sources/module/test_module.cpp @@ -1651,7 +1651,7 @@ HWTEST_F(ModuleTranslationUnitTest, givenSystemSharedAllocationAllowedWhenBuildi rootDeviceEnvironment->compilerInterface.reset(mockCompilerInterface); { - neoDevice->deviceInfo.sharedSystemAllocationsSupport = true; + neoDevice->getRootDeviceEnvironment().getMutableHardwareInfo()->capabilityTable.sharedSystemMemCapabilities = 1; MockModuleTranslationUnit moduleTu(device); auto ret = moduleTu.buildFromSpirV("", 0U, nullptr, "", nullptr); @@ -1661,7 +1661,7 @@ HWTEST_F(ModuleTranslationUnitTest, givenSystemSharedAllocationAllowedWhenBuildi } { - neoDevice->deviceInfo.sharedSystemAllocationsSupport = false; + neoDevice->getRootDeviceEnvironment().getMutableHardwareInfo()->capabilityTable.sharedSystemMemCapabilities = 0; MockModuleTranslationUnit moduleTu(device); auto ret = moduleTu.buildFromSpirV("", 0U, nullptr, "", nullptr); diff --git a/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl b/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl index 38598f0006..eca21986be 100644 --- a/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl +++ b/opencl/test/unit_test/api/cl_set_kernel_arg_svm_pointer_tests.inl @@ -103,7 +103,7 @@ TEST_F(clSetKernelArgSVMPointerTests, GivenLocalAddressAndNullArgValueWhenSettin TEST_F(clSetKernelArgSVMPointerTests, GivenInvalidArgValueWhenSettingKernelArgThenInvalidArgValueErrorIsReturned) { pDevice->deviceInfo.sharedSystemMemCapabilities = 0u; - pDevice->sharedDeviceInfo.sharedSystemAllocationsSupport = false; + pDevice->getRootDeviceEnvironment().getMutableHardwareInfo()->capabilityTable.sharedSystemMemCapabilities = 0; void *ptrHost = malloc(256); EXPECT_NE(nullptr, ptrHost); @@ -185,7 +185,7 @@ TEST_F(clSetKernelArgSVMPointerTests, GivenSvmAndPointerWithOffsetWhenSettingKer TEST_F(clSetKernelArgSVMPointerTests, GivenSvmAndPointerWithInvalidOffsetWhenSettingKernelArgThenInvalidArgValueErrorIsReturned) { pDevice->deviceInfo.sharedSystemMemCapabilities = 0u; - pDevice->sharedDeviceInfo.sharedSystemAllocationsSupport = false; + pDevice->getRootDeviceEnvironment().getMutableHardwareInfo()->capabilityTable.sharedSystemMemCapabilities = 0; const ClDeviceInfo &devInfo = pDevice->getDeviceInfo(); if (devInfo.svmCapabilities != 0) { void *ptrSvm = clSVMAlloc(pContext, CL_MEM_READ_WRITE, 256, 4); diff --git a/opencl/test/unit_test/built_ins/built_in_tests.cpp b/opencl/test/unit_test/built_ins/built_in_tests.cpp index 8a785c4729..bc9ebace77 100644 --- a/opencl/test/unit_test/built_ins/built_in_tests.cpp +++ b/opencl/test/unit_test/built_ins/built_in_tests.cpp @@ -1457,7 +1457,7 @@ TEST_F(BuiltInTests, GivenTypeSourceWhenCreatingProgramFromCodeThenValidPointerI TEST_F(BuiltInTests, givenCreateProgramFromSourceWhenDeviceSupportSharedSystemAllocationThenInternalOptionsDisableStosoFlag) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); pClDevice->deviceInfo.sharedSystemMemCapabilities = CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL; - pDevice->deviceInfo.sharedSystemAllocationsSupport = true; + pDevice->getRootDeviceEnvironment().getMutableHardwareInfo()->capabilityTable.sharedSystemMemCapabilities = 1; const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::CopyBufferToBuffer, BuiltinCode::ECodeType::Source, *pDevice); EXPECT_NE(0u, bc.resource.size()); diff --git a/opencl/test/unit_test/device/device_caps_tests.cpp b/opencl/test/unit_test/device/device_caps_tests.cpp index 36f3b7ae91..c409b9c44c 100644 --- a/opencl/test/unit_test/device/device_caps_tests.cpp +++ b/opencl/test/unit_test/device/device_caps_tests.cpp @@ -181,7 +181,7 @@ TEST_F(DeviceGetCapsTest, WhenCreatingDeviceThenCapsArePopulatedCorrectly) { EXPECT_LE(sharedCaps.maxReadImageArgs * sizeof(cl_mem), sharedCaps.maxParameterSize); EXPECT_LE(sharedCaps.maxWriteImageArgs * sizeof(cl_mem), sharedCaps.maxParameterSize); EXPECT_LE(128u * MB, sharedCaps.maxMemAllocSize); - if (!sharedCaps.sharedSystemAllocationsSupport) { + if (!device->areSharedSystemAllocationsAllowed()) { EXPECT_GE((4 * GB) - (8 * KB), sharedCaps.maxMemAllocSize); } EXPECT_LE(65536u, sharedCaps.imageMaxBufferSize); diff --git a/opencl/test/unit_test/program/program_tests.cpp b/opencl/test/unit_test/program/program_tests.cpp index 26ccb0b52f..e2054c958f 100644 --- a/opencl/test/unit_test/program/program_tests.cpp +++ b/opencl/test/unit_test/program/program_tests.cpp @@ -1699,7 +1699,7 @@ TEST_F(ProgramTests, WhenCreatingProgramThenBindlessIsEnabledOnlyIfDebugFlagIsEn TEST_F(ProgramTests, givenDeviceThatSupportsSharedSystemMemoryAllocationWhenProgramIsCompiledThenItForcesStatelessCompilation) { pClDevice->deviceInfo.sharedSystemMemCapabilities = CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL; - pClDevice->sharedDeviceInfo.sharedSystemAllocationsSupport = true; + pClDevice->getRootDeviceEnvironment().getMutableHardwareInfo()->capabilityTable.sharedSystemMemCapabilities = 1; MockProgram program(pContext, false, toClDeviceVector(*pClDevice)); auto internalOptions = program.getInitInternalOptions(); EXPECT_TRUE(CompilerOptions::contains(internalOptions.c_str(), CompilerOptions::greaterThan4gbBuffersRequired)) << internalOptions; diff --git a/shared/offline_compiler/source/CMakeLists.txt b/shared/offline_compiler/source/CMakeLists.txt index fa52291b0e..11b3e6bac7 100644 --- a/shared/offline_compiler/source/CMakeLists.txt +++ b/shared/offline_compiler/source/CMakeLists.txt @@ -122,6 +122,19 @@ macro(macro_for_each_platform) list(APPEND CLOC_LIB_SRCS_LIB ${SRC_FILE}) endif() endforeach() + + if(WIN32) + set(SRC_FILE ${NEO_SOURCE_DIR}/shared/source${BRANCH}${GEN_TYPE_LOWER}${BRANCH_DIR}windows/hw_info_extra_${PLATFORM_IT_LOWER}.cpp) + if(EXISTS ${SRC_FILE}) + list(APPEND CLOC_LIB_SRCS_LIB ${SRC_FILE}) + endif() + else() + set(SRC_FILE ${NEO_SOURCE_DIR}/shared/source${BRANCH}${GEN_TYPE_LOWER}${BRANCH_DIR}linux/hw_info_extra_${PLATFORM_IT_LOWER}.cpp) + if(EXISTS ${SRC_FILE}) + list(APPEND CLOC_LIB_SRCS_LIB ${SRC_FILE}) + endif() + endif() + endforeach() endforeach() endmacro() diff --git a/shared/source/device/device.cpp b/shared/source/device/device.cpp index a6f4a7f357..2e935b098d 100644 --- a/shared/source/device/device.cpp +++ b/shared/source/device/device.cpp @@ -10,6 +10,7 @@ #include "shared/source/command_stream/command_stream_receiver.h" #include "shared/source/command_stream/experimental_command_buffer.h" #include "shared/source/command_stream/preemption.h" +#include "shared/source/debug_settings/debug_settings_manager.h" #include "shared/source/execution_environment/root_device_environment.h" #include "shared/source/gmm_helper/gmm_helper.h" #include "shared/source/helpers/hw_helper.h" @@ -406,6 +407,14 @@ bool Device::isDebuggerActive() const { return deviceInfo.debuggerActive; } +bool Device::areSharedSystemAllocationsAllowed() const { + auto sharedSystemAllocationsSupport = static_cast(getHardwareInfo().capabilityTable.sharedSystemMemCapabilities); + if (DebugManager.flags.EnableSharedSystemUsmSupport.get() != -1) { + sharedSystemAllocationsSupport = DebugManager.flags.EnableSharedSystemUsmSupport.get(); + } + return sharedSystemAllocationsSupport; +} + const std::vector *Device::getNonEmptyEngineGroup(size_t index) const { auto nonEmptyGroupIndex = 0u; for (auto groupIndex = 0u; groupIndex < CommonConstants::engineGroupCount; groupIndex++) { diff --git a/shared/source/device/device.h b/shared/source/device/device.h index 8812b85d08..86975eec22 100644 --- a/shared/source/device/device.h +++ b/shared/source/device/device.h @@ -92,9 +92,7 @@ class Device : public ReferenceTrackedObject { bool isFullRangeSvm() const { return getRootDeviceEnvironment().isFullRangeSvm(); } - bool areSharedSystemAllocationsAllowed() const { - return this->deviceInfo.sharedSystemAllocationsSupport; - } + bool areSharedSystemAllocationsAllowed() const; template void setSpecializedDevice(SpecializedDeviceT *specializedDevice) { this->specializedDevice = reinterpret_cast(specializedDevice); diff --git a/shared/source/device/device_caps.cpp b/shared/source/device/device_caps.cpp index 0c37a1d6f7..6e46542770 100644 --- a/shared/source/device/device_caps.cpp +++ b/shared/source/device/device_caps.cpp @@ -38,11 +38,6 @@ void Device::initializeCaps() { addressing32bitAllowed = false; } - deviceInfo.sharedSystemAllocationsSupport = hwInfoConfig->getSharedSystemMemCapabilities(); - if (DebugManager.flags.EnableSharedSystemUsmSupport.get() != -1) { - deviceInfo.sharedSystemAllocationsSupport = DebugManager.flags.EnableSharedSystemUsmSupport.get(); - } - deviceInfo.vendorId = 0x8086; deviceInfo.maxReadImageArgs = 128; deviceInfo.maxWriteImageArgs = 128; @@ -72,7 +67,7 @@ void Device::initializeCaps() { deviceInfo.globalMemSize = alignDown(deviceInfo.globalMemSize, MemoryConstants::pageSize); deviceInfo.maxMemAllocSize = std::min(deviceInfo.globalMemSize, deviceInfo.maxMemAllocSize); // if globalMemSize was reduced for 32b - if (!deviceInfo.sharedSystemAllocationsSupport) { + if (!areSharedSystemAllocationsAllowed()) { deviceInfo.maxMemAllocSize = ApiSpecificConfig::getReducedMaxAllocSize(deviceInfo.maxMemAllocSize); deviceInfo.maxMemAllocSize = std::min(deviceInfo.maxMemAllocSize, hwHelper.getMaxMemAllocSize()); } diff --git a/shared/source/device/device_info.h b/shared/source/device/device_info.h index 901d16a375..011c66cd11 100644 --- a/shared/source/device/device_info.h +++ b/shared/source/device/device_info.h @@ -49,7 +49,6 @@ struct DeviceInfo { uint32_t vmeAvcSupportsPreemption; bool debuggerActive; bool force32BitAddressess; - bool sharedSystemAllocationsSupport; std::string name; }; diff --git a/shared/source/enable_gens.cmake b/shared/source/enable_gens.cmake index 5c3f88c0da..6f795dc86a 100644 --- a/shared/source/enable_gens.cmake +++ b/shared/source/enable_gens.cmake @@ -57,6 +57,15 @@ macro(macro_for_each_platform) list(APPEND CORE_SRCS_${GEN_TYPE}_H_BASE ${PATH_TO_FILE}) endif() + set(SRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR}${GEN_TYPE_LOWER}${BRANCH}linux/hw_info_extra_${PLATFORM_IT_LOWER}.cpp) + if(EXISTS ${SRC_FILE}) + list(APPEND CORE_SRCS_${GEN_TYPE}_CPP_LINUX ${SRC_FILE}) + endif() + set(SRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR}${GEN_TYPE_LOWER}${BRANCH}windows/hw_info_extra_${PLATFORM_IT_LOWER}.cpp) + if(EXISTS ${SRC_FILE}) + list(APPEND CORE_SRCS_${GEN_TYPE}_CPP_WINDOWS ${SRC_FILE}) + endif() + set(SRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR}${GEN_TYPE_LOWER}${BRANCH}linux/hw_info_config_${PLATFORM_IT_LOWER}.cpp) if(EXISTS ${SRC_FILE}) list(APPEND CORE_SRCS_${GEN_TYPE}_CPP_LINUX ${SRC_FILE}) @@ -65,6 +74,7 @@ macro(macro_for_each_platform) if(EXISTS ${SRC_FILE}) list(APPEND CORE_SRCS_${GEN_TYPE}_CPP_WINDOWS ${SRC_FILE}) endif() + set(SRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR}${GEN_TYPE_LOWER}${BRANCH}enable_hw_info_config_${PLATFORM_IT_LOWER}.cpp) if(EXISTS ${SRC_FILE}) list(APPEND ${GEN_TYPE}_SRC_LINK_BASE ${SRC_FILE}) diff --git a/shared/source/gen11/hw_info_ehl.cpp b/shared/source/gen11/hw_info_ehl.cpp index ec691c0f0f..df3cc3bd13 100644 --- a/shared/source/gen11/hw_info_ehl.cpp +++ b/shared/source/gen11/hw_info_ehl.cpp @@ -39,6 +39,7 @@ const RuntimeCapabilityTable EHL::capabilityTable{ {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max36BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationEHL, // isSimulation diff --git a/shared/source/gen11/hw_info_icllp.cpp b/shared/source/gen11/hw_info_icllp.cpp index 2d24c6a36c..e8bf87386c 100644 --- a/shared/source/gen11/hw_info_icllp.cpp +++ b/shared/source/gen11/hw_info_icllp.cpp @@ -40,6 +40,7 @@ const RuntimeCapabilityTable ICLLP::capabilityTable{ {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max48BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationICLLP, // isSimulation diff --git a/shared/source/gen11/hw_info_lkf.cpp b/shared/source/gen11/hw_info_lkf.cpp index 4eb8abcbc0..64bd4a7952 100644 --- a/shared/source/gen11/hw_info_lkf.cpp +++ b/shared/source/gen11/hw_info_lkf.cpp @@ -39,6 +39,7 @@ const RuntimeCapabilityTable LKF::capabilityTable{ {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max36BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationLKF, // isSimulation diff --git a/shared/source/gen12lp/hw_info_adlp.cpp b/shared/source/gen12lp/hw_info_adlp.cpp index 62f7350389..ead6073b82 100644 --- a/shared/source/gen12lp/hw_info_adlp.cpp +++ b/shared/source/gen12lp/hw_info_adlp.cpp @@ -37,6 +37,7 @@ const RuntimeCapabilityTable ADLP::capabilityTable{ {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max64BitAppAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationADLP, // isSimulation diff --git a/shared/source/gen12lp/hw_info_adls.cpp b/shared/source/gen12lp/hw_info_adls.cpp index 58d5da52d2..4770054836 100644 --- a/shared/source/gen12lp/hw_info_adls.cpp +++ b/shared/source/gen12lp/hw_info_adls.cpp @@ -37,6 +37,7 @@ const RuntimeCapabilityTable ADLS::capabilityTable{ {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max64BitAppAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationADLS, // isSimulation diff --git a/shared/source/gen12lp/hw_info_dg1.cpp b/shared/source/gen12lp/hw_info_dg1.cpp index e58ef52e92..0e4a27716d 100644 --- a/shared/source/gen12lp/hw_info_dg1.cpp +++ b/shared/source/gen12lp/hw_info_dg1.cpp @@ -45,6 +45,7 @@ const RuntimeCapabilityTable DG1::capabilityTable{ {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max64BitAppAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationDG1, // isSimulation diff --git a/shared/source/gen12lp/hw_info_rkl.cpp b/shared/source/gen12lp/hw_info_rkl.cpp index 68250d2e85..e52ad209c4 100644 --- a/shared/source/gen12lp/hw_info_rkl.cpp +++ b/shared/source/gen12lp/hw_info_rkl.cpp @@ -37,6 +37,7 @@ const RuntimeCapabilityTable RKL::capabilityTable{ {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max48BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationRKL, // isSimulation diff --git a/shared/source/gen12lp/hw_info_tgllp.cpp b/shared/source/gen12lp/hw_info_tgllp.cpp index 043d0ef065..be3fe6f7ea 100644 --- a/shared/source/gen12lp/hw_info_tgllp.cpp +++ b/shared/source/gen12lp/hw_info_tgllp.cpp @@ -41,6 +41,7 @@ const RuntimeCapabilityTable TGLLP::capabilityTable{ {aub_stream::ENGINE_CCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max64BitAppAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationTGLLP, // isSimulation diff --git a/shared/source/gen8/hw_info_bdw.cpp b/shared/source/gen8/hw_info_bdw.cpp index 7ffc7f067c..97e8264120 100644 --- a/shared/source/gen8/hw_info_bdw.cpp +++ b/shared/source/gen8/hw_info_bdw.cpp @@ -44,6 +44,7 @@ const RuntimeCapabilityTable BDW::capabilityTable{ {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {50000, 5000, 200000, true, true, true}, // kmdNotifyProperties MemoryConstants::max48BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 80, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationBDW, // isSimulation diff --git a/shared/source/gen9/hw_info_bxt.cpp b/shared/source/gen9/hw_info_bxt.cpp index 5d9f7b66a4..183bd3ba6f 100644 --- a/shared/source/gen9/hw_info_bxt.cpp +++ b/shared/source/gen9/hw_info_bxt.cpp @@ -41,6 +41,7 @@ const RuntimeCapabilityTable BXT::capabilityTable{ {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max48BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 52.083, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationBXT, // isSimulation diff --git a/shared/source/gen9/hw_info_cfl.cpp b/shared/source/gen9/hw_info_cfl.cpp index f2fa73c9a3..3fde239157 100644 --- a/shared/source/gen9/hw_info_cfl.cpp +++ b/shared/source/gen9/hw_info_cfl.cpp @@ -36,6 +36,7 @@ const RuntimeCapabilityTable CFL::capabilityTable{ {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max48BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationCFL, // isSimulation diff --git a/shared/source/gen9/hw_info_glk.cpp b/shared/source/gen9/hw_info_glk.cpp index 10a000bcf1..db45acdc93 100644 --- a/shared/source/gen9/hw_info_glk.cpp +++ b/shared/source/gen9/hw_info_glk.cpp @@ -36,6 +36,7 @@ const RuntimeCapabilityTable GLK::capabilityTable{ {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {30000, 0, 0, true, false, false}, // kmdNotifyProperties MemoryConstants::max48BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 52.083, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationGLK, // isSimulation diff --git a/shared/source/gen9/hw_info_kbl.cpp b/shared/source/gen9/hw_info_kbl.cpp index ce9f462cbb..7146fe53a8 100644 --- a/shared/source/gen9/hw_info_kbl.cpp +++ b/shared/source/gen9/hw_info_kbl.cpp @@ -36,6 +36,7 @@ const RuntimeCapabilityTable KBL::capabilityTable{ {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max48BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationKBL, // isSimulation diff --git a/shared/source/gen9/hw_info_skl.cpp b/shared/source/gen9/hw_info_skl.cpp index 59b46a41ce..65872737ba 100644 --- a/shared/source/gen9/hw_info_skl.cpp +++ b/shared/source/gen9/hw_info_skl.cpp @@ -44,6 +44,7 @@ const RuntimeCapabilityTable SKL::capabilityTable{ {aub_stream::ENGINE_RCS, {true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max48BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationSKL, // isSimulation diff --git a/shared/source/helpers/hw_info.h b/shared/source/helpers/hw_info.h index f3c2df9a73..5e99fba7a2 100644 --- a/shared/source/helpers/hw_info.h +++ b/shared/source/helpers/hw_info.h @@ -24,6 +24,7 @@ struct RuntimeCapabilityTable { DirectSubmissionProperyEngines directSubmissionEngines; KmdNotifyProperties kmdNotifyProperties; uint64_t gpuAddressSpace; + uint64_t sharedSystemMemCapabilities; double defaultProfilingTimerResolution; size_t requiredPreemptionSurfaceSize; bool (*isSimulation)(unsigned short); diff --git a/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp b/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp index cd393d57b7..addb85193c 100644 --- a/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp +++ b/shared/source/xe_hp_core/hw_info_xe_hp_sdv.cpp @@ -41,6 +41,7 @@ const RuntimeCapabilityTable XE_HP_SDV::capabilityTable{ {aub_stream::ENGINE_CCS3, {true, false, true, true}}}, // directSubmissionEngines {0, 0, 0, false, false, false}, // kmdNotifyProperties MemoryConstants::max48BitAddress, // gpuAddressSpace + 0, // sharedSystemMemCapabilities 83.333, // defaultProfilingTimerResolution MemoryConstants::pageSize, // requiredPreemptionSurfaceSize &isSimulationXEHP, // isSimulation