/* * Copyright (C) 2018-2021 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "shared/source/os_interface/os_library.h" #include "shared/source/os_interface/windows/os_inc.h" #include "shared/source/os_interface/windows/thk_wrapper.h" #include "shared/source/os_interface/windows/windows_wrapper.h" #include #include #include #include namespace NEO { class Gdi { public: Gdi(); ~Gdi(){}; ThkWrapper openAdapterFromLuid{}; ThkWrapper createAllocation_{}; ThkWrapper createAllocation2{}; ThkWrapper destroyAllocation{}; ThkWrapper destroyAllocation2{}; ThkWrapper queryAdapterInfo{}; ThkWrapper closeAdapter{}; ThkWrapper createDevice{}; ThkWrapper destroyDevice{}; ThkWrapper escape{}; ThkWrapper createContext{}; ThkWrapper destroyContext{}; ThkWrapper openResource{}; ThkWrapper openResourceFromNtHandle{}; ThkWrapper queryResourceInfo{}; ThkWrapper queryResourceInfoFromNtHandle{}; ThkWrapper createSynchronizationObject{}; ThkWrapper createSynchronizationObject2{}; ThkWrapper destroySynchronizationObject{}; ThkWrapper signalSynchronizationObject{}; ThkWrapper waitForSynchronizationObject{}; ThkWrapper waitForSynchronizationObjectFromCpu{}; ThkWrapper signalSynchronizationObjectFromCpu{}; ThkWrapper waitForSynchronizationObjectFromGpu{}; ThkWrapper signalSynchronizationObjectFromGpu{}; ThkWrapper createPagingQueue{}; ThkWrapper destroyPagingQueue{}; ThkWrapper lock2{}; ThkWrapper unlock2{}; ThkWrapper mapGpuVirtualAddress{}; ThkWrapper reserveGpuVirtualAddress{}; ThkWrapper freeGpuVirtualAddress{}; ThkWrapper updateGpuVirtualAddress{}; ThkWrapper submitCommand{}; ThkWrapper makeResident{}; ThkWrapper evict{}; ThkWrapper registerTrimNotification{}; ThkWrapper unregisterTrimNotification{}; ThkWrapper setAllocationPriority{}; // HW queue ThkWrapper createHwQueue{}; ThkWrapper destroyHwQueue{}; ThkWrapper submitCommandToHwQueue{}; // For debug purposes ThkWrapper getDeviceState{}; bool isInitialized() { return initialized; } MOCKABLE_VIRTUAL bool setupHwQueueProcAddresses(); protected: MOCKABLE_VIRTUAL bool getAllProcAddresses(); bool initialized = false; std::unique_ptr gdiDll; }; } // namespace NEO