mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
Correct default engine index in MemoryManager
Related-To: NEO-5610 Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
5318ff1872
commit
927c097b0e
@@ -22,6 +22,7 @@
|
||||
#include "opencl/test/unit_test/mocks/mock_context.h"
|
||||
#include "opencl/test/unit_test/mocks/mock_csr.h"
|
||||
#include "opencl/test/unit_test/mocks/mock_execution_environment.h"
|
||||
#include "opencl/test/unit_test/mocks/mock_memory_manager.h"
|
||||
#include "opencl/test/unit_test/mocks/mock_platform.h"
|
||||
#include "test.h"
|
||||
|
||||
@@ -188,6 +189,36 @@ HWTEST_F(DeviceTest, givenNoHwCsrTypeAndModifiedDefaultEngineIndexWhenIsSimulati
|
||||
}
|
||||
}
|
||||
|
||||
HWTEST_F(DeviceTest, givenDeviceWithoutSubDevicesWhenCreatingContextsThenMemoryManagerDefaultContextIsSetCorrectly) {
|
||||
UltDeviceFactory factory(1, 1);
|
||||
MockDevice &device = *factory.rootDevices[0];
|
||||
MockMemoryManager *memoryManager = static_cast<MockMemoryManager *>(device.getMemoryManager());
|
||||
|
||||
OsContext *defaultOsContextMemoryManager = memoryManager->registeredEngines[memoryManager->defaultEngineIndex].osContext;
|
||||
OsContext *defaultOsContextRootDevice = device.getDefaultEngine().osContext;
|
||||
EXPECT_EQ(defaultOsContextRootDevice, defaultOsContextMemoryManager);
|
||||
}
|
||||
|
||||
HWTEST_F(DeviceTest, givenDeviceWithSubDevicesWhenCreatingContextsThenMemoryManagerDefaultContextIsSetCorrectly) {
|
||||
UltDeviceFactory factory(1, 2);
|
||||
MockDevice &device = *factory.rootDevices[0];
|
||||
MockMemoryManager *memoryManager = static_cast<MockMemoryManager *>(device.getMemoryManager());
|
||||
|
||||
OsContext *defaultOsContextMemoryManager = memoryManager->registeredEngines[memoryManager->defaultEngineIndex].osContext;
|
||||
OsContext *defaultOsContextRootDevice = device.getDefaultEngine().osContext;
|
||||
EXPECT_EQ(defaultOsContextRootDevice, defaultOsContextMemoryManager);
|
||||
}
|
||||
|
||||
HWTEST_F(DeviceTest, givenMultiDeviceWhenCreatingContextsThenMemoryManagerDefaultContextIsSetCorrectly) {
|
||||
UltDeviceFactory factory(3, 2);
|
||||
MockDevice &device = *factory.rootDevices[2];
|
||||
MockMemoryManager *memoryManager = static_cast<MockMemoryManager *>(device.getMemoryManager());
|
||||
|
||||
OsContext *defaultOsContextMemoryManager = memoryManager->registeredEngines[memoryManager->defaultEngineIndex].osContext;
|
||||
OsContext *defaultOsContextRootDevice = device.getDefaultEngine().osContext;
|
||||
EXPECT_EQ(defaultOsContextRootDevice, defaultOsContextMemoryManager);
|
||||
}
|
||||
|
||||
TEST(DeviceCleanup, givenDeviceWhenItIsDestroyedThenFlushBatchedSubmissionsIsCalled) {
|
||||
auto mockDevice = std::unique_ptr<MockDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr));
|
||||
MockCommandStreamReceiver *csr = new MockCommandStreamReceiver(*mockDevice->getExecutionEnvironment(), mockDevice->getRootDeviceIndex(), mockDevice->getDeviceBitfield());
|
||||
|
||||
@@ -37,6 +37,7 @@ class MockMemoryManager : public MemoryManagerCreate<OsAgnosticMemoryManager> {
|
||||
using MemoryManager::allocateGraphicsMemoryWithProperties;
|
||||
using MemoryManager::createGraphicsAllocation;
|
||||
using MemoryManager::createStorageInfoFromProperties;
|
||||
using MemoryManager::defaultEngineIndex;
|
||||
using MemoryManager::getAllocationData;
|
||||
using MemoryManager::gfxPartitions;
|
||||
using MemoryManager::localMemoryUsageBankSelector;
|
||||
|
||||
@@ -83,7 +83,15 @@ bool Device::createDeviceImpl() {
|
||||
}
|
||||
}
|
||||
|
||||
executionEnvironment->memoryManager->setDefaultEngineIndex(defaultEngineIndex);
|
||||
uint32_t defaultEngineIndexWithinMemoryManager = 0;
|
||||
for (auto engineIndex = 0u; engineIndex < executionEnvironment->memoryManager->getRegisteredEnginesCount(); engineIndex++) {
|
||||
OsContext *engine = executionEnvironment->memoryManager->getRegisteredEngines()[engineIndex].osContext;
|
||||
if (engine == getDefaultEngine().osContext) {
|
||||
defaultEngineIndexWithinMemoryManager = engineIndex;
|
||||
break;
|
||||
}
|
||||
}
|
||||
executionEnvironment->memoryManager->setDefaultEngineIndex(defaultEngineIndexWithinMemoryManager);
|
||||
|
||||
auto osInterface = getRootDeviceEnvironment().osInterface.get();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user