/* * Copyright (C) 2017-2021 Intel Corporation * * SPDX-License-Identifier: MIT * */ #pragma once #include "shared/source/os_interface/windows/os_inc.h" #include "shared/source/os_interface/windows/os_library_win.h" #include "shared/source/os_interface/windows/thk_wrapper.h" #include #include #include namespace NEO { class Gdi { public: Gdi(); ~Gdi(){}; ThkWrapper openAdapterFromHdc{}; ThkWrapper openAdapterFromLuid{}; ThkWrapper createAllocation{}; 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 lock{}; ThkWrapper unlock{}; ThkWrapper render{}; 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; NEO::Windows::OsLibrary gdiDll; }; } // namespace NEO