mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 15:53:45 +08:00
refactor: move CLOS-related steps from core- to product-helper
Future HW will not support cache reservation uniquely for the whole platform. Implementation of some functions may vary between products. Related-To: NEO-10158 Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
d483ee6396
commit
a4060013de
@@ -1281,11 +1281,6 @@ TEST_F(GfxCoreHelperTest, whenFtrGpGpuMidThreadLevelPreemptFeatureDisabledThenFa
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
HWTEST_F(GfxCoreHelperTest, whenGettingNumberOfCacheRegionsThenReturnZero) {
|
||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getNumCacheRegions());
|
||||
}
|
||||
|
||||
HWTEST_F(GfxCoreHelperTest, whenSetCompressedFlagThenProperFlagSet) {
|
||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||
auto gmm = std::make_unique<MockGmm>(pDevice->getGmmHelper());
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "shared/source/helpers/constants.h"
|
||||
#include "shared/source/os_interface/linux/cache_info.h"
|
||||
#include "shared/source/os_interface/product_helper.h"
|
||||
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
||||
#include "shared/test/common/helpers/default_hw_info.h"
|
||||
#include "shared/test/common/libult/linux/drm_query_mock.h"
|
||||
@@ -21,14 +22,14 @@ TEST(DrmCacheInfoTest, givenCacheRegionsExistsWhenCallingSetUpCacheInfoThenCache
|
||||
auto executionEnvironment = std::make_unique<MockExecutionEnvironment>();
|
||||
DrmQueryMock drm(*executionEnvironment->rootDeviceEnvironments[0]);
|
||||
|
||||
auto &gfxCoreHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<ProductHelper>();
|
||||
|
||||
drm.setupCacheInfo(*defaultHwInfo.get());
|
||||
|
||||
auto cacheInfo = drm.getCacheInfo();
|
||||
EXPECT_NE(nullptr, cacheInfo);
|
||||
|
||||
if (gfxCoreHelper.getNumCacheRegions() == 0) {
|
||||
if (productHelper.getNumCacheRegions() == 0) {
|
||||
EXPECT_EQ(0u, cacheInfo->getMaxReservationCacheSize());
|
||||
EXPECT_EQ(0u, cacheInfo->getMaxReservationNumCacheRegions());
|
||||
EXPECT_EQ(0u, cacheInfo->getMaxReservationNumWays());
|
||||
@@ -40,7 +41,7 @@ TEST(DrmCacheInfoTest, givenCacheRegionsExistsWhenCallingSetUpCacheInfoThenCache
|
||||
constexpr uint16_t maxReservationNumWays = std::min(globalReservationLimit, clientReservationLimit);
|
||||
const size_t totalCacheSize = gtSysInfo->L3CacheSizeInKb * MemoryConstants::kiloByte;
|
||||
const size_t maxReservationCacheSize = (totalCacheSize * maxReservationNumWays) / maxNumWays;
|
||||
const size_t maxReservationNumCacheRegions = gfxCoreHelper.getNumCacheRegions() - 1;
|
||||
const size_t maxReservationNumCacheRegions = productHelper.getNumCacheRegions() - 1;
|
||||
|
||||
EXPECT_EQ(maxReservationCacheSize, cacheInfo->getMaxReservationCacheSize());
|
||||
EXPECT_EQ(maxReservationNumCacheRegions, cacheInfo->getMaxReservationNumCacheRegions());
|
||||
|
||||
@@ -4711,10 +4711,9 @@ TEST_F(DrmAllocationTests, givenDrmAllocationWhenCacheRegionIsSetSuccessfullyThe
|
||||
drm.cacheInfo.reset(new MockCacheInfo(*drm.getIoctlHelper(), 32 * MemoryConstants::kiloByte, 2, 32));
|
||||
|
||||
MockDrmAllocation allocation(rootDeviceIndex, AllocationType::buffer, MemoryPool::localMemory);
|
||||
auto &gfxCoreHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<ProductHelper>();
|
||||
|
||||
if ((gfxCoreHelper.getNumCacheRegions() == 0) &&
|
||||
if ((productHelper.getNumCacheRegions() == 0) &&
|
||||
productHelper.isVmBindPatIndexProgrammingSupported()) {
|
||||
EXPECT_ANY_THROW(allocation.setCacheAdvice(&drm, 1024, CacheRegion::region1, false));
|
||||
} else {
|
||||
@@ -4732,10 +4731,9 @@ TEST_F(DrmAllocationTests, givenDrmAllocationWhenCacheRegionIsSetSuccessfullyThe
|
||||
MockDrmAllocation allocation(rootDeviceIndex, AllocationType::buffer, MemoryPool::localMemory);
|
||||
allocation.bufferObjects[0] = &bo;
|
||||
|
||||
auto &gfxCoreHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<ProductHelper>();
|
||||
|
||||
if ((gfxCoreHelper.getNumCacheRegions() == 0) &&
|
||||
if ((productHelper.getNumCacheRegions() == 0) &&
|
||||
productHelper.isVmBindPatIndexProgrammingSupported()) {
|
||||
EXPECT_ANY_THROW(allocation.setCacheAdvice(&drm, 1024, CacheRegion::region1, false));
|
||||
} else {
|
||||
@@ -4877,8 +4875,8 @@ TEST_F(DrmAllocationTests, givenCachedTypeWhenForceOverridePatIndexForCachedType
|
||||
|
||||
TEST_F(DrmMemoryManagerTest, givenDrmAllocationWithHostPtrWhenItIsCreatedWithCacheRegionThenSetRegionInBufferObject) {
|
||||
|
||||
auto &gfxCoreHelper = executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->getHelper<GfxCoreHelper>();
|
||||
if (gfxCoreHelper.getNumCacheRegions() == 0) {
|
||||
auto &productHelper = executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->getHelper<ProductHelper>();
|
||||
if (productHelper.getNumCacheRegions() == 0) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
mock->ioctlExpected.total = -1;
|
||||
|
||||
@@ -1089,10 +1089,9 @@ HWTEST_F(DrmMemoryOperationsHandlerBindTest, givenPatIndexProgrammingEnabledWhen
|
||||
auto osContext = memoryManager->createAndRegisterOsContext(csr.get(), EngineDescriptorHelper::getDefaultDescriptor());
|
||||
csr->setupContext(*osContext);
|
||||
|
||||
auto &gfxCoreHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<ProductHelper>();
|
||||
|
||||
bool closSupported = (gfxCoreHelper.getNumCacheRegions() > 0);
|
||||
bool closSupported = (productHelper.getNumCacheRegions() > 0);
|
||||
bool patIndexProgrammingSupported = productHelper.isVmBindPatIndexProgrammingSupported();
|
||||
|
||||
uint64_t gpuAddress = 0x123000;
|
||||
@@ -1148,9 +1147,8 @@ HWTEST_F(DrmMemoryOperationsHandlerBindTest, givenPatIndexErrorAndUncachedDebugF
|
||||
auto csr = std::make_unique<UltCommandStreamReceiver<FamilyType>>(*executionEnvironment, 0, DeviceBitfield(1));
|
||||
auto osContext = memoryManager->createAndRegisterOsContext(csr.get(), EngineDescriptorHelper::getDefaultDescriptor());
|
||||
csr->setupContext(*osContext);
|
||||
auto &gfxCoreHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<ProductHelper>();
|
||||
bool closSupported = (gfxCoreHelper.getNumCacheRegions() > 0);
|
||||
bool closSupported = (productHelper.getNumCacheRegions() > 0);
|
||||
bool patIndexProgrammingSupported = productHelper.isVmBindPatIndexProgrammingSupported();
|
||||
if (!closSupported || !patIndexProgrammingSupported) {
|
||||
GTEST_SKIP();
|
||||
@@ -1209,9 +1207,9 @@ HWTEST_F(DrmMemoryOperationsHandlerBindTest, givenDebugFlagSetWhenVmBindCalledTh
|
||||
|
||||
auto timestampStorageAlloc = csr->getTimestampPacketAllocator()->getTag()->getBaseGraphicsAllocation()->getDefaultGraphicsAllocation();
|
||||
|
||||
auto &gfxCoreHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<ProductHelper>();
|
||||
|
||||
if (gfxCoreHelper.getNumCacheRegions() == 0) {
|
||||
if (productHelper.getNumCacheRegions() == 0) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
@@ -1297,9 +1295,9 @@ TEST_F(DrmMemoryOperationsHandlerBindTest, givenClosEnabledAndAllocationToBeCach
|
||||
|
||||
mock->cacheInfo.reset(new CacheInfo(*mock->getIoctlHelper(), 64 * MemoryConstants::kiloByte, 2, 32));
|
||||
|
||||
auto &gfxCoreHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto &productHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<ProductHelper>();
|
||||
|
||||
if (gfxCoreHelper.getNumCacheRegions() == 0) {
|
||||
if (productHelper.getNumCacheRegions() == 0) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
@@ -1311,7 +1309,7 @@ TEST_F(DrmMemoryOperationsHandlerBindTest, givenClosEnabledAndAllocationToBeCach
|
||||
mock->context.receivedVmBindPatIndex.reset();
|
||||
operationHandler->makeResident(device, ArrayRef<GraphicsAllocation *>(&allocation, 1));
|
||||
|
||||
auto patIndex = gfxCoreHelper.getPatIndex(cacheRegion, CachePolicy::writeBack);
|
||||
auto patIndex = productHelper.getPatIndex(cacheRegion, CachePolicy::writeBack);
|
||||
|
||||
EXPECT_EQ(patIndex, mock->context.receivedVmBindPatIndex.value());
|
||||
|
||||
@@ -1413,26 +1411,26 @@ using DrmResidencyHandlerTests = ::testing::Test;
|
||||
|
||||
HWTEST2_F(DrmResidencyHandlerTests, givenClosIndexAndMemoryTypeWhenAskingForPatIndexThenReturnCorrectValue, IsWithinXeGfxFamily) {
|
||||
MockExecutionEnvironment mockExecutionEnvironment{};
|
||||
auto &gfxCoreHelper = mockExecutionEnvironment.rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto &productHelper = mockExecutionEnvironment.rootDeviceEnvironments[0]->getHelper<ProductHelper>();
|
||||
|
||||
if (gfxCoreHelper.getNumCacheRegions() == 0) {
|
||||
EXPECT_ANY_THROW(gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::uncached));
|
||||
EXPECT_ANY_THROW(gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeBack));
|
||||
if (productHelper.getNumCacheRegions() == 0) {
|
||||
EXPECT_ANY_THROW(productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::uncached));
|
||||
EXPECT_ANY_THROW(productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeBack));
|
||||
} else {
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::uncached));
|
||||
EXPECT_EQ(1u, gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(2u, gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(3u, gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeBack));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::uncached));
|
||||
EXPECT_EQ(1u, productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(2u, productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(3u, productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeBack));
|
||||
|
||||
EXPECT_ANY_THROW(gfxCoreHelper.getPatIndex(CacheRegion::region1, CachePolicy::uncached));
|
||||
EXPECT_ANY_THROW(gfxCoreHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(4u, gfxCoreHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(5u, gfxCoreHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeBack));
|
||||
EXPECT_ANY_THROW(productHelper.getPatIndex(CacheRegion::region1, CachePolicy::uncached));
|
||||
EXPECT_ANY_THROW(productHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(4u, productHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(5u, productHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeBack));
|
||||
|
||||
EXPECT_ANY_THROW(gfxCoreHelper.getPatIndex(CacheRegion::region2, CachePolicy::uncached));
|
||||
EXPECT_ANY_THROW(gfxCoreHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(6u, gfxCoreHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(7u, gfxCoreHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeBack));
|
||||
EXPECT_ANY_THROW(productHelper.getPatIndex(CacheRegion::region2, CachePolicy::uncached));
|
||||
EXPECT_ANY_THROW(productHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(6u, productHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(7u, productHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeBack));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1441,26 +1439,26 @@ HWTEST2_F(DrmResidencyHandlerTests, givenForceAllResourcesUnchashedSetAskingForP
|
||||
debugManager.flags.ForceAllResourcesUncached.set(1);
|
||||
|
||||
MockExecutionEnvironment mockExecutionEnvironment{};
|
||||
auto &gfxCoreHelper = mockExecutionEnvironment.rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto &productHelper = mockExecutionEnvironment.rootDeviceEnvironments[0]->getHelper<ProductHelper>();
|
||||
|
||||
if (gfxCoreHelper.getNumCacheRegions() == 0) {
|
||||
EXPECT_ANY_THROW(gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::uncached));
|
||||
EXPECT_ANY_THROW(gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeBack));
|
||||
if (productHelper.getNumCacheRegions() == 0) {
|
||||
EXPECT_ANY_THROW(productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::uncached));
|
||||
EXPECT_ANY_THROW(productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeBack));
|
||||
} else {
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::uncached));
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeBack));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::uncached));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::defaultRegion, CachePolicy::writeBack));
|
||||
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::region1, CachePolicy::uncached));
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeBack));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::region1, CachePolicy::uncached));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::region1, CachePolicy::writeBack));
|
||||
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::region2, CachePolicy::uncached));
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(0u, gfxCoreHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeBack));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::region2, CachePolicy::uncached));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeCombined));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeThrough));
|
||||
EXPECT_EQ(0u, productHelper.getPatIndex(CacheRegion::region2, CachePolicy::writeBack));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -611,6 +611,10 @@ HWTEST_F(ProductHelperTest, givenSamplerStateWhenAdjustSamplerStateThenNothingIs
|
||||
EXPECT_EQ(0, memcmp(&initialState, &state, sizeof(SAMPLER_STATE)));
|
||||
}
|
||||
|
||||
HWTEST_F(ProductHelperTest, whenGettingNumberOfCacheRegionsThenReturnZero) {
|
||||
EXPECT_EQ(0u, productHelper->getNumCacheRegions());
|
||||
}
|
||||
|
||||
HWTEST2_F(ProductHelperTest, WhenFillingScmPropertiesSupportThenExpectUseCorrectGetters, IsAtLeastGen12lp) {
|
||||
StateComputeModePropertiesSupport scmPropertiesSupport = {};
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ HWTEST_EXCLUDE_PRODUCT(CommandEncodeStatesTest, givenOverrideSlmTotalSizeDebugVa
|
||||
HWTEST_EXCLUDE_PRODUCT(WalkerPartitionTests, givenMiAtomicWhenItIsProgrammedThenAllFieldsAreSetCorrectly, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(WalkerPartitionTests, givenProgramBatchBufferStartCommandWhenItIsCalledThenCommandIsProgrammedCorrectly, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(GfxCoreHelperTest, givenDefaultGfxCoreHelperHwWhenMinimalSIMDSizeIsQueriedThen8IsReturned, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(GfxCoreHelperTest, whenGettingNumberOfCacheRegionsThenReturnZero, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ProductHelperTest, whenGettingNumberOfCacheRegionsThenReturnZero, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(PipeControlHelperTests, givenGfxCoreHelperwhenAskingForDcFlushThenReturnTrue, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(XeHPAndLaterPreemptionTests, GivenDebuggerUsedWhenProgrammingStateSipThenStateSipIsAdded, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ComputeModeRequirements, givenComputeModeProgrammingWhenLargeGrfModeDoesntChangeThenSCMIsNotAdded, IGFX_XE_HPC_CORE);
|
||||
|
||||
Reference in New Issue
Block a user