1/* 2 * Copyright (C) 2021 Intel Corporation 3 * 4 * SPDX-License-Identifier: MIT 5 * 6 */ 7 8#include "shared/source/os_interface/hw_info_config.h" 9#include "shared/test/common/helpers/debug_manager_state_restore.h" 10#include "shared/test/common/mocks/mock_memory_manager.h" 11#include "shared/test/common/test_macros/test.h" 12 13#include "opencl/test/unit_test/fixtures/cl_device_fixture.h" 14#include "opencl/test/unit_test/mocks/mock_cl_device.h" 15 16using namespace NEO; 17 18using XeHPUsDeviceIdTest = Test<ClDeviceFixture>; 19 20HWTEST_EXCLUDE_PRODUCT(SubDeviceTests, givenCCSEngineWhenCallingGetDefaultEngineWithWaThenTheSameEngineIsReturned, IGFX_XE_HP_SDV); 21 22XEHPTEST_F(XeHPUsDeviceIdTest, givenRevisionAWhenCreatingEngineWithSubdevicesThenEngineTypeIsSetToCCS) { 23 DebugManagerStateRestore restorer; 24 DebugManager.flags.CreateMultipleSubDevices.set(2); 25 26 auto executionEnvironment = new MockExecutionEnvironment; 27 MockDevice device(executionEnvironment, 0); 28 EXPECT_EQ(0u, device.allEngines.size()); 29 device.createSubDevices(); 30 device.createEngines(); 31 EXPECT_EQ(2u, device.getNumGenericSubDevices()); 32 33 auto hwInfo = device.getRootDeviceEnvironment().getMutableHardwareInfo(); 34 const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo->platform.eProductFamily); 35 hwInfo->platform.usRevId = hwInfoConfig.getHwRevIdFromStepping(REVISION_A0, *hwInfo); 36 device.createEngines(); 37 auto engines = device.getAllEngines(); 38 for (auto engine : engines) { 39 EXPECT_EQ(aub_stream::ENGINE_CCS, engine.osContext->getEngineType()); 40 } 41} 42 43XEHPTEST_F(XeHPUsDeviceIdTest, givenRevisionBWhenCreatingEngineWithSubdevicesThenEngineTypeIsSetToCCS) { 44 DebugManagerStateRestore restorer; 45 DebugManager.flags.CreateMultipleSubDevices.set(2); 46 47 auto executionEnvironment = new MockExecutionEnvironment; 48 MockDevice device(executionEnvironment, 0); 49 EXPECT_EQ(0u, device.allEngines.size()); 50 device.createSubDevices(); 51 device.createEngines(); 52 EXPECT_EQ(2u, device.getNumGenericSubDevices()); 53 54 auto hwInfo = device.getRootDeviceEnvironment().getMutableHardwareInfo(); 55 const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo->platform.eProductFamily); 56 hwInfo->platform.usRevId = hwInfoConfig.getHwRevIdFromStepping(REVISION_B, *hwInfo); 57 device.createEngines(); 58 auto engines = device.getAllEngines(); 59 for (auto engine : engines) { 60 EXPECT_EQ(aub_stream::ENGINE_CCS, engine.osContext->getEngineType()); 61 } 62} 63