mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
Bind virtual copy engines in optimal sequence
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
c45ddab1c3
commit
5ea86b712f
@@ -193,7 +193,7 @@ static void givenBcsEngineTypeWhenBindingDrmContextThenContextParamEngineIsSet(s
|
||||
EXPECT_EQ(numBcsSiblings, drm->receivedContextEnginesLoadBalance.num_siblings);
|
||||
for (auto balancedEngine = 0u; balancedEngine < numBcsSiblings; balancedEngine++) {
|
||||
EXPECT_EQ(I915_ENGINE_CLASS_COPY, drm->receivedContextEnginesLoadBalance.engines[balancedEngine].engine_class);
|
||||
auto engineInstance = engineIndex ? balancedEngine + 1 : balancedEngine;
|
||||
auto engineInstance = EngineHelpers::getBcsIndex(drm->getBcsTypeToBind(balancedEngine, engineIndex == 0));
|
||||
EXPECT_EQ(engineInstance, DrmMockHelper::getIdFromEngineOrMemoryInstance(drm->receivedContextEnginesLoadBalance.engines[balancedEngine].engine_instance));
|
||||
EXPECT_EQ(I915_ENGINE_CLASS_COPY, drm->receivedContextParamEngines.engines[1 + balancedEngine].engine_class);
|
||||
EXPECT_EQ(engineInstance, DrmMockHelper::getIdFromEngineOrMemoryInstance(drm->receivedContextParamEngines.engines[1 + balancedEngine].engine_instance));
|
||||
|
||||
@@ -102,6 +102,36 @@ TEST(DrmTest, GivenInvalidPciPathWhenFrequencyIsQueriedThenReturnError) {
|
||||
EXPECT_EQ(0, maxFrequency);
|
||||
}
|
||||
|
||||
TEST(DrmTest, whenGetBcsTypeToBindThenReturnOptimalSequence) {
|
||||
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
|
||||
executionEnvironment->prepareRootDeviceEnvironments(1);
|
||||
DrmMock drm{*executionEnvironment->rootDeviceEnvironments[0]};
|
||||
|
||||
{
|
||||
auto includeMain = false;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS2, drm.getBcsTypeToBind(0, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS3, drm.getBcsTypeToBind(1, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS4, drm.getBcsTypeToBind(2, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS7, drm.getBcsTypeToBind(3, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS1, drm.getBcsTypeToBind(4, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS5, drm.getBcsTypeToBind(5, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS6, drm.getBcsTypeToBind(6, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS8, drm.getBcsTypeToBind(7, includeMain));
|
||||
}
|
||||
{
|
||||
auto includeMain = true;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS, drm.getBcsTypeToBind(0, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS2, drm.getBcsTypeToBind(1, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS3, drm.getBcsTypeToBind(2, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS4, drm.getBcsTypeToBind(3, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS7, drm.getBcsTypeToBind(4, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS1, drm.getBcsTypeToBind(5, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS5, drm.getBcsTypeToBind(6, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS6, drm.getBcsTypeToBind(7, includeMain));
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS8, drm.getBcsTypeToBind(8, includeMain));
|
||||
}
|
||||
}
|
||||
|
||||
TEST(DrmTest, WhenGettingRevisionIdThenCorrectIdIsReturned) {
|
||||
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
|
||||
executionEnvironment->prepareRootDeviceEnvironments(1);
|
||||
|
||||
Reference in New Issue
Block a user