diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.cpp b/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.cpp index bb510e040b..a286f21983 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.cpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.cpp @@ -164,6 +164,11 @@ unsigned int KFDBaseComponentTest::GetFamilyIdFromNodeId(unsigned int nodeId) return FamilyIdFromNode(m_NodeInfo.GetNodeProperties(nodeId)); } +bool KFDBaseComponentTest::isMES(unsigned int nodeId) +{ + return CheckMES(m_NodeInfo.GetNodeProperties(nodeId)); +} + int KFDBaseComponentTest::FindDRMRenderNode(int gpuNode) { HsaNodeProperties *nodeProperties; _HSAKMT_STATUS status; diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.hpp b/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.hpp index cc87465ad5..2f9d8350e2 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.hpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDBaseComponentTest.hpp @@ -58,6 +58,7 @@ class KFDBaseComponentTest : public testing::Test { // @return DRM Render Node if successful or -1 on failure int FindDRMRenderNode(int gpuNode); unsigned int GetFamilyIdFromNodeId(unsigned int nodeId); + bool isMES(unsigned int nodeId); unsigned int GetFamilyIdFromDefaultNode(){ return m_FamilyId; } // @brief Executed before the first test that uses KFDBaseComponentTest. diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.cpp b/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.cpp index fc8bd0248e..5a0401dd15 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.cpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.cpp @@ -234,6 +234,11 @@ bool isTonga(const HsaNodeProperties *props) { return false; } +bool CheckMES(const HsaNodeProperties *props) { + /* MES devices need GART mappings and therefore need non-paged memory */ + return (props->EngineId.ui32.Major >= 11) ? true : false; +} + const uint32_t GetGfxVersion(const HsaNodeProperties *props) { return ((props->EngineId.ui32.Major << 16) | (props->EngineId.ui32.Minor << 8) | diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.hpp b/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.hpp index 938ff8bf69..a9f6c9d9be 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.hpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDTestUtil.hpp @@ -50,6 +50,7 @@ HSAKMT_STATUS CreateQueueTypeEvent(bool ManualReset, bool IsSignaled, unsigned i bool is_dgpu(); bool isTonga(const HsaNodeProperties *props); +bool CheckMES(const HsaNodeProperties *props); bool hasPciAtomicsSupport(int node); unsigned int FamilyIdFromNode(const HsaNodeProperties *props); const uint32_t GetGfxVersion(const HsaNodeProperties *props);