From a04cf311103c4c310f44213aa6f59dcbaafbcc5c Mon Sep 17 00:00:00 2001 From: Bartosz Dunajski Date: Wed, 7 Aug 2024 12:40:07 +0000 Subject: [PATCH] refactor: improve engine query Signed-off-by: Bartosz Dunajski --- shared/source/os_interface/linux/xe/ioctl_helper_xe.cpp | 6 +++++- shared/source/os_interface/linux/xe/ioctl_helper_xe.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/shared/source/os_interface/linux/xe/ioctl_helper_xe.cpp b/shared/source/os_interface/linux/xe/ioctl_helper_xe.cpp index 7b130f3f27..2513a61134 100644 --- a/shared/source/os_interface/linux/xe/ioctl_helper_xe.cpp +++ b/shared/source/os_interface/linux/xe/ioctl_helper_xe.cpp @@ -242,6 +242,10 @@ std::vector IoctlHelperXe::queryData(uint32_t queryId) { template std::vector IoctlHelperXe::queryData(uint32_t queryId); template std::vector IoctlHelperXe::queryData(uint32_t queryId); +uint32_t IoctlHelperXe::getNumEngines(uint64_t *enginesData) const { + return reinterpret_cast(enginesData)->num_engines; +} + std::unique_ptr IoctlHelperXe::createEngineInfo(bool isSysmanEnabled) { auto enginesData = queryData(DRM_XE_DEVICE_QUERY_ENGINES); @@ -251,7 +255,7 @@ std::unique_ptr IoctlHelperXe::createEngineInfo(bool isSysmanEnabled auto queryEngines = reinterpret_cast(enginesData.data()); - auto numberHwEngines = queryEngines->num_engines; + auto numberHwEngines = getNumEngines(enginesData.data()); xeLog("numberHwEngines=%d\n", numberHwEngines); diff --git a/shared/source/os_interface/linux/xe/ioctl_helper_xe.h b/shared/source/os_interface/linux/xe/ioctl_helper_xe.h index 76a93cc2f8..9542ebf539 100644 --- a/shared/source/os_interface/linux/xe/ioctl_helper_xe.h +++ b/shared/source/os_interface/linux/xe/ioctl_helper_xe.h @@ -154,6 +154,7 @@ class IoctlHelperXe : public IoctlHelper { int getRunaloneExtProperty(); virtual bool isExtraEngineClassAllowed(uint16_t engineClass) const { return false; } virtual std::optional getCxlType() { return {}; } + virtual uint32_t getNumEngines(uint64_t *enginesData) const; struct UserFenceExtension { static constexpr uint32_t tagValue = 0x123987;