/* * Copyright (C) 2019-2020 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "shared/source/helpers/non_copyable_or_moveable.h" #include "shared/source/os_interface/windows/os_interface.h" #include "shared/source/os_interface/windows/wddm/wddm.h" #include "level_zero/core/source/device/device.h" #include "level_zero/tools/source/sysman/sysman_imp.h" #include "level_zero/tools/source/sysman/windows/kmd_sys.h" #include "level_zero/tools/source/sysman/windows/kmd_sys_manager.h" namespace L0 { class WddmSysmanImp : public OsSysman, NEO::NonCopyableOrMovableClass { public: WddmSysmanImp(SysmanDeviceImp *pParentSysmanDeviceImp); ~WddmSysmanImp() override; ze_result_t init() override; KmdSysManager &getKmdSysManager(); NEO::Wddm &getWddm(); Device *getDeviceHandle(); protected: KmdSysManager *pKmdSysManager = nullptr; Device *pDevice = nullptr; private: SysmanDeviceImp *pParentSysmanDeviceImp = nullptr; NEO::Wddm *pWddm = nullptr; }; } // namespace L0