Add the supportsMultiStorageResources flag

Related-To: NEO-3182

Change-Id: I618b734b37c5fb983be55b50d89a965eaedc78fe
Signed-off-by: Jobczyk, Lukasz <lukasz.jobczyk@intel.com>
This commit is contained in:
Jobczyk, Lukasz
2019-06-06 08:45:14 +02:00
committed by sys_ocldev
parent eac89caf15
commit 007982b51f
9 changed files with 19 additions and 0 deletions

View File

@@ -215,6 +215,7 @@ class MemoryManager {
bool asyncDeleterEnabled = false;
bool enable64kbpages = false;
bool localMemorySupported = false;
bool supportsMultiStorageResources = true;
ExecutionEnvironment &executionEnvironment;
EngineControlContainer registeredEngines;
std::unique_ptr<HostPtrManager> hostPtrManager;

View File

@@ -38,6 +38,7 @@ DrmMemoryManager::DrmMemoryManager(gemCloseWorkerMode mode,
pinBB(nullptr),
forcePinEnabled(forcePinAllowed),
validateHostPtrMemory(validateHostPtrMemory) {
supportsMultiStorageResources = false;
gfxPartition.init(platformDevices[0]->capabilityTable.gpuAddressSpace);
MemoryManager::virtualPaddingAvailable = true;
if (mode != gemCloseWorkerMode::gemCloseWorkerInactive) {

View File

@@ -39,6 +39,7 @@ WddmMemoryManager::WddmMemoryManager(ExecutionEnvironment &executionEnvironment)
wddm(executionEnvironment.osInterface->get()->getWddm()) {
DEBUG_BREAK_IF(wddm == nullptr);
supportsMultiStorageResources = false;
asyncDeleterEnabled = DebugManager.flags.EnableDeferredDeleter.get();
if (asyncDeleterEnabled)
deferredDeleter = createDeferredDeleter();

View File

@@ -47,6 +47,11 @@ using namespace NEO;
typedef Test<MemoryAllocatorFixture> MemoryAllocatorTest;
TEST(MemoryManagerTest, whenCreatingOsAgnosticMemoryManagerThenSupportsMultiStorageResourcesFlagIsSetToTrue) {
MockMemoryManager memoryManager;
EXPECT_TRUE(memoryManager.supportsMultiStorageResources);
}
TEST(MemoryBank, givenDifferentDeviceOrdinalsWhenGettingBankThenCorrectBanksAreReturned) {
auto bank = MemoryBanks::getBank(0);
EXPECT_EQ(MemoryBanks::MainBank, bank);

View File

@@ -55,6 +55,7 @@ class TestedDrmMemoryManager : public MemoryManagerCreate<DrmMemoryManager> {
using DrmMemoryManager::pinThreshold;
using DrmMemoryManager::setDomainCpu;
using DrmMemoryManager::sharingBufferObjects;
using DrmMemoryManager::supportsMultiStorageResources;
using MemoryManager::allocateGraphicsMemoryInDevicePool;
TestedDrmMemoryManager(ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(gemCloseWorkerMode::gemCloseWorkerInactive,

View File

@@ -41,6 +41,7 @@ class MockMemoryManager : public MemoryManagerCreate<OsAgnosticMemoryManager> {
using MemoryManager::localMemoryUsageBankSelector;
using MemoryManager::multiContextResourceDestructor;
using MemoryManager::registeredEngines;
using MemoryManager::supportsMultiStorageResources;
using MemoryManager::useInternal32BitAllocator;
using OsAgnosticMemoryManager::allocateGraphicsMemoryForImageFromHostPtr;
using MemoryManagerCreate<OsAgnosticMemoryManager>::MemoryManagerCreate;

View File

@@ -56,6 +56,10 @@ AllocationProperties createAllocationProperties(size_t size, bool forcePin) {
typedef Test<DrmMemoryManagerFixture> DrmMemoryManagerTest;
typedef Test<DrmMemoryManagerFixtureWithoutQuietIoctlExpectation> DrmMemoryManagerWithExplicitExpectationsTest;
TEST_F(DrmMemoryManagerTest, whenCreatingDrmMemoryManagerThenSupportsMultiStorageResourcesFlagIsSetToFalse) {
EXPECT_FALSE(memoryManager->supportsMultiStorageResources);
}
TEST_F(DrmMemoryManagerWithExplicitExpectationsTest, givenDefaultDrmMemoryMangerWhenItIsCreatedThenItContainsInternal32BitAllocator) {
EXPECT_NE(nullptr, memoryManager->getDrmInternal32BitAllocator());
}

View File

@@ -24,6 +24,7 @@ class MockWddmMemoryManager : public MemoryManagerCreate<WddmMemoryManager> {
using BaseClass::createWddmAllocation;
using BaseClass::gfxPartition;
using BaseClass::localMemorySupported;
using BaseClass::supportsMultiStorageResources;
using MemoryManagerCreate<WddmMemoryManager>::MemoryManagerCreate;
MockWddmMemoryManager(ExecutionEnvironment &executionEnvironment) : MemoryManagerCreate(false, false, executionEnvironment) {

View File

@@ -1692,3 +1692,7 @@ TEST_F(WddmMemoryManagerSimpleTest, givenSvmCpuAllocationWhenSizeAndAlignmentPro
memoryManager->freeGraphicsMemory(allocation);
}
TEST_F(WddmMemoryManagerSimpleTest, whenCreatingWddmMemoryManagerThenSupportsMultiStorageResourcesFlagIsSetToFalse) {
EXPECT_FALSE(memoryManager->supportsMultiStorageResources);
}