Enable Windows Os Layer for Sysman

Adding KmdSysman with ULT

Change-Id: If080e6327171d3634a0c461c4169ea8c84461e13
This commit is contained in:
Daniel Enriquez
2020-07-26 03:12:32 -07:00
committed by sys_ocldev
parent acc4a44b15
commit 278505ca4d
9 changed files with 1454 additions and 2 deletions

View File

@@ -10,9 +10,41 @@
namespace L0 {
ze_result_t WddmSysmanImp::init() {
Device *pDevice = nullptr;
if (pParentSysmanImp != nullptr) {
pDevice = Device::fromHandle(pParentSysmanImp->hCoreDevice);
} else if (pParentSysmanDeviceImp != nullptr) {
pDevice = Device::fromHandle(pParentSysmanDeviceImp->hCoreDevice);
} else {
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
}
UNRECOVERABLE_IF(nullptr == pDevice);
NEO::OSInterface &OsInterface = pDevice->getOsInterface();
pWddm = OsInterface.get()->getWddm();
pKmdSysManager = KmdSysManager::create(pWddm);
UNRECOVERABLE_IF(nullptr == pKmdSysManager);
return ZE_RESULT_SUCCESS;
}
NEO::Wddm &WddmSysmanImp::getWddm() {
UNRECOVERABLE_IF(nullptr == pWddm);
return *pWddm;
}
KmdSysManager &WddmSysmanImp::getKmdSysManager() {
UNRECOVERABLE_IF(nullptr == pKmdSysManager);
return *pKmdSysManager;
}
WddmSysmanImp::~WddmSysmanImp() {
if (nullptr != pKmdSysManager) {
delete pKmdSysManager;
pKmdSysManager = nullptr;
}
}
OsSysman *OsSysman::create(SysmanImp *pParentSysmanImp) {
WddmSysmanImp *pWddmSysmanImp = new WddmSysmanImp(pParentSysmanImp);
return static_cast<OsSysman *>(pWddmSysmanImp);