mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 15:53:45 +08:00
refactor: setup engine capabilities in drm specifc code
once drm specific code queries engine info, caps are stored in drm-agnostic form Related-To: NEO-10445 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
2e5bf8d24d
commit
64f2312aa0
@@ -852,14 +852,18 @@ TEST(DrmTest, givenCapsWhenCallGetBaseCopyEngineTypeAndIsIntegratedGpuThenBcs0Al
|
||||
|
||||
auto engineInfo = std::make_unique<MockEngineInfo>(drm.get(), engineInfosPerTile);
|
||||
bool isIntegratedGpu = true;
|
||||
auto caps = drm->ioctlHelper->getCopyClassSaturatePCIECapability();
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), *caps, isIntegratedGpu));
|
||||
EngineCapabilities::Flags capabilities{};
|
||||
capabilities.copyClassSaturateLink = true;
|
||||
capabilities.copyClassSaturatePCIE = false;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), capabilities, isIntegratedGpu));
|
||||
|
||||
caps = drm->ioctlHelper->getCopyClassSaturateLinkCapability();
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), *caps, isIntegratedGpu));
|
||||
capabilities.copyClassSaturateLink = false;
|
||||
capabilities.copyClassSaturatePCIE = true;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), capabilities, isIntegratedGpu));
|
||||
|
||||
caps = 0;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), *caps, isIntegratedGpu));
|
||||
capabilities.copyClassSaturateLink = false;
|
||||
capabilities.copyClassSaturatePCIE = false;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), capabilities, isIntegratedGpu));
|
||||
}
|
||||
|
||||
TEST(DrmTest, givenCapsWhenCallGetBaseCopyEngineTypeAndIsNotIntegratedGpuThenProperBcsIsReturned) {
|
||||
@@ -872,14 +876,19 @@ TEST(DrmTest, givenCapsWhenCallGetBaseCopyEngineTypeAndIsNotIntegratedGpuThenPro
|
||||
|
||||
auto engineInfo = std::make_unique<MockEngineInfo>(drm.get(), engineInfosPerTile);
|
||||
bool isIntegratedGpu = false;
|
||||
auto caps = drm->ioctlHelper->getCopyClassSaturatePCIECapability();
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS1, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), *caps, isIntegratedGpu));
|
||||
|
||||
caps = drm->ioctlHelper->getCopyClassSaturateLinkCapability();
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS3, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), *caps, isIntegratedGpu));
|
||||
EngineCapabilities::Flags capabilities{};
|
||||
capabilities.copyClassSaturateLink = false;
|
||||
capabilities.copyClassSaturatePCIE = true;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS1, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), capabilities, isIntegratedGpu));
|
||||
|
||||
caps = 0;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), *caps, isIntegratedGpu));
|
||||
capabilities.copyClassSaturateLink = true;
|
||||
capabilities.copyClassSaturatePCIE = false;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS3, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), capabilities, isIntegratedGpu));
|
||||
|
||||
capabilities.copyClassSaturateLink = false;
|
||||
capabilities.copyClassSaturatePCIE = false;
|
||||
EXPECT_EQ(aub_stream::EngineType::ENGINE_BCS, engineInfo->getBaseCopyEngineType(drm->ioctlHelper.get(), capabilities, isIntegratedGpu));
|
||||
}
|
||||
|
||||
struct DistanceQueryDrmTests : ::testing::Test {
|
||||
|
||||
@@ -63,9 +63,9 @@ TEST(EngineInfoTest, whenCreateEngineInfoWithRcsThenCorrectHwInfoSet) {
|
||||
auto &hwInfo = *drm->getRootDeviceEnvironment().getHardwareInfo();
|
||||
std::vector<EngineCapabilities> engines(2);
|
||||
engines[0].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassRender)), 0};
|
||||
engines[0].capabilities = 0;
|
||||
engines[0].capabilities = {};
|
||||
engines[1].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassCopy)), 0};
|
||||
engines[1].capabilities = 0;
|
||||
engines[1].capabilities = {};
|
||||
StackVec<std::vector<EngineCapabilities>, 2> engineInfosPerTile{engines};
|
||||
auto engineInfo = std::make_unique<EngineInfo>(drm.get(), engineInfosPerTile);
|
||||
|
||||
@@ -90,7 +90,7 @@ TEST(EngineInfoTest, whenCallingGetEngineTileInfoCorrectValuesAreReturned) {
|
||||
|
||||
std::vector<EngineCapabilities> engines(1);
|
||||
engines[0].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassRender)), 0};
|
||||
engines[0].capabilities = 0;
|
||||
engines[0].capabilities = {};
|
||||
StackVec<std::vector<EngineCapabilities>, 2> engineInfosPerTile{engines};
|
||||
auto engineInfo = std::make_unique<EngineInfo>(drm.get(), engineInfosPerTile);
|
||||
|
||||
@@ -109,9 +109,9 @@ TEST(EngineInfoTest, whenCreateEngineInfoWithCcsThenCorrectHwInfoSet) {
|
||||
std::vector<EngineCapabilities> engines(2);
|
||||
uint16_t ccsClass = ioctlHelper->getDrmParamValue(DrmParam::engineClassCompute);
|
||||
engines[0].engine = {ccsClass, 0};
|
||||
engines[0].capabilities = 0;
|
||||
engines[0].capabilities = {};
|
||||
engines[1].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassCopy)), 0};
|
||||
engines[1].capabilities = 0;
|
||||
engines[1].capabilities = {};
|
||||
StackVec<std::vector<EngineCapabilities>, 2> engineInfosPerTile{engines};
|
||||
auto engineInfo = std::make_unique<EngineInfo>(drm.get(), engineInfosPerTile);
|
||||
|
||||
@@ -139,13 +139,13 @@ TEST(EngineInfoTest, whenGetEngineInstanceAndTileThenCorrectValuesReturned) {
|
||||
|
||||
std::vector<EngineCapabilities> engines(4);
|
||||
engines[0].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassRender)), 0};
|
||||
engines[0].capabilities = 0;
|
||||
engines[0].capabilities = {};
|
||||
engines[1].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassCopy)), 0};
|
||||
engines[1].capabilities = 0;
|
||||
engines[1].capabilities = {};
|
||||
engines[2].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassRender)), 1};
|
||||
engines[2].capabilities = 0;
|
||||
engines[2].capabilities = {};
|
||||
engines[3].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassCopy)), 1};
|
||||
engines[3].capabilities = 0;
|
||||
engines[3].capabilities = {};
|
||||
|
||||
std::vector<DistanceInfo> distances(4);
|
||||
distances[0].engine = engines[0].engine;
|
||||
@@ -188,13 +188,13 @@ TEST(EngineInfoTest, whenCreateEngineInfoAndInvalidQueryThenNoEnginesSet) {
|
||||
|
||||
std::vector<EngineCapabilities> engines(4);
|
||||
engines[0].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassRender)), 0};
|
||||
engines[0].capabilities = 0;
|
||||
engines[0].capabilities = {};
|
||||
engines[1].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassCopy)), 0};
|
||||
engines[1].capabilities = 0;
|
||||
engines[1].capabilities = {};
|
||||
engines[2].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassRender)), 1};
|
||||
engines[2].capabilities = 0;
|
||||
engines[2].capabilities = {};
|
||||
engines[3].engine = {static_cast<uint16_t>(ioctlHelper->getDrmParamValue(DrmParam::engineClassCopy)), 1};
|
||||
engines[3].capabilities = 0;
|
||||
engines[3].capabilities = {};
|
||||
|
||||
std::vector<DistanceInfo> distances(4);
|
||||
distances[0].engine = engines[0].engine;
|
||||
|
||||
@@ -319,8 +319,8 @@ TEST_F(IoctlPrelimHelperTests, givenPrelimsWhenGetDirectSubmissionFlagThenCorrec
|
||||
|
||||
TEST_F(IoctlPrelimHelperTests, givenPrelimsWhenTranslateToEngineCapsThenReturnSameData) {
|
||||
std::vector<EngineCapabilities> expectedEngines(2);
|
||||
expectedEngines[0] = {{static_cast<uint16_t>(ioctlHelper.getDrmParamValue(DrmParam::engineClassRender)), 0}, 0};
|
||||
expectedEngines[1] = {{static_cast<uint16_t>(ioctlHelper.getDrmParamValue(DrmParam::engineClassCopy)), 1}, 0};
|
||||
expectedEngines[0] = {{static_cast<uint16_t>(ioctlHelper.getDrmParamValue(DrmParam::engineClassRender)), 0}, {true, false}};
|
||||
expectedEngines[1] = {{static_cast<uint16_t>(ioctlHelper.getDrmParamValue(DrmParam::engineClassCopy)), 1}, {false, true}};
|
||||
|
||||
auto engineInfo = getEngineInfo(expectedEngines);
|
||||
|
||||
@@ -329,7 +329,8 @@ TEST_F(IoctlPrelimHelperTests, givenPrelimsWhenTranslateToEngineCapsThenReturnSa
|
||||
for (uint32_t i = 0; i < engines.size(); i++) {
|
||||
EXPECT_EQ(expectedEngines[i].engine.engineClass, engines[i].engine.engineClass);
|
||||
EXPECT_EQ(expectedEngines[i].engine.engineInstance, engines[i].engine.engineInstance);
|
||||
EXPECT_EQ(expectedEngines[i].capabilities, engines[i].capabilities);
|
||||
EXPECT_EQ(expectedEngines[i].capabilities.copyClassSaturateLink, engines[i].capabilities.copyClassSaturateLink);
|
||||
EXPECT_EQ(expectedEngines[i].capabilities.copyClassSaturatePCIE, engines[i].capabilities.copyClassSaturatePCIE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2021-2023 Intel Corporation
|
||||
* Copyright (C) 2021-2024 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -123,7 +123,8 @@ std::vector<uint64_t> getEngineInfo(const std::vector<EngineCapabilities> &input
|
||||
for (uint32_t i = 0; i < inputSize; i++) {
|
||||
memoryRegions->engines[i].engine.engine_class = inputEngines[i].engine.engineClass;
|
||||
memoryRegions->engines[i].engine.engine_instance = inputEngines[i].engine.engineInstance;
|
||||
memoryRegions->engines[i].capabilities = inputEngines[i].capabilities;
|
||||
memoryRegions->engines[i].capabilities |= inputEngines[i].capabilities.copyClassSaturateLink ? PRELIM_I915_COPY_CLASS_CAP_SATURATE_LINK : 0;
|
||||
memoryRegions->engines[i].capabilities |= inputEngines[i].capabilities.copyClassSaturatePCIE ? PRELIM_I915_COPY_CLASS_CAP_SATURATE_PCIE : 0;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -295,10 +295,6 @@ TEST(IoctlHelperXeTest, givenIoctlHelperXeWhenCallingAnyMethodThenDummyValueIsRe
|
||||
VmBindExtUserFenceT vmBindExtUserFence{};
|
||||
EXPECT_NO_THROW(xeIoctlHelper->fillVmBindExtUserFence(vmBindExtUserFence, 0, 0, 0));
|
||||
|
||||
EXPECT_EQ(std::nullopt, xeIoctlHelper->getCopyClassSaturatePCIECapability());
|
||||
|
||||
EXPECT_EQ(std::nullopt, xeIoctlHelper->getCopyClassSaturateLinkCapability());
|
||||
|
||||
EXPECT_EQ(0u, xeIoctlHelper->getVmAdviseAtomicAttribute());
|
||||
|
||||
VmBindParams vmBindParams{};
|
||||
|
||||
Reference in New Issue
Block a user