mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-10 12:53:42 +08:00
Windows: load gmm lib via LoadLibrary
Resolves: NEO-4144 Change-Id: Iae9d170a43872a93d36e84e93709a23951b4ac35 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:

committed by
sys_ocldev

parent
236ac104bb
commit
78187655eb
@ -16,6 +16,7 @@ set(NEO_CORE_OS_INTERFACE_WINDOWS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/debug_registry_reader.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gdi_interface.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gdi_interface.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gmm_interface.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/kmdaf_listener${KMDAF_FILE_SUFFIX}.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/kmdaf_listener.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/os_inc.h
|
||||
|
32
core/os_interface/windows/gmm_interface.cpp
Normal file
32
core/os_interface/windows/gmm_interface.cpp
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "core/gmm_helper/gmm_lib.h"
|
||||
#include "core/helpers/debug_helpers.h"
|
||||
#include "core/os_interface/os_library.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
static std::unique_ptr<OsLibrary> gmmLib;
|
||||
|
||||
GMM_STATUS GMM_STDCALL InitializeGmm(GMM_INIT_IN_ARGS *pInArgs, GMM_INIT_OUT_ARGS *pOutArgs) {
|
||||
if (!gmmLib) {
|
||||
gmmLib.reset(OsLibrary::load(GMM_UMD_DLL));
|
||||
UNRECOVERABLE_IF(!gmmLib);
|
||||
}
|
||||
auto initGmmFunc = reinterpret_cast<decltype(&InitializeGmm)>(gmmLib->getProcAddress(GMM_ADAPTER_INIT_NAME));
|
||||
UNRECOVERABLE_IF(!initGmmFunc);
|
||||
return initGmmFunc(pInArgs, pOutArgs);
|
||||
}
|
||||
|
||||
void GMM_STDCALL GmmAdapterDestroy(GMM_INIT_OUT_ARGS *pInArgs) {
|
||||
auto destroyGmmFunc = reinterpret_cast<decltype(&GmmAdapterDestroy)>(gmmLib->getProcAddress(GMM_ADAPTER_DESTROY_NAME));
|
||||
UNRECOVERABLE_IF(!destroyGmmFunc);
|
||||
destroyGmmFunc(pInArgs);
|
||||
}
|
@ -153,7 +153,7 @@ if(${GENERATE_EXECUTABLE})
|
||||
|
||||
add_subdirectory(dll)
|
||||
|
||||
target_link_libraries(${NEO_DYNAMIC_LIB_NAME} ${NEO_STATIC_LIB_NAME} ${IGDRCL_EXTRA_LIBS} ${GMM_LINK_NAME})
|
||||
target_link_libraries(${NEO_DYNAMIC_LIB_NAME} ${NEO_STATIC_LIB_NAME} ${IGDRCL_EXTRA_LIBS})
|
||||
|
||||
target_include_directories(${NEO_DYNAMIC_LIB_NAME} BEFORE PRIVATE
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
@ -162,7 +162,12 @@ if(${GENERATE_EXECUTABLE})
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${NEO_DYNAMIC_LIB_NAME} dxgi)
|
||||
add_dependencies(${NEO_DYNAMIC_LIB_NAME} ${GMM_TARGET_NAME})
|
||||
target_sources(${NEO_DYNAMIC_LIB_NAME} PRIVATE
|
||||
${NEO_SOURCE_DIR}/core/os_interface/windows/gmm_interface.cpp
|
||||
)
|
||||
else()
|
||||
target_link_libraries(${NEO_DYNAMIC_LIB_NAME} ${GMM_LINK_NAME})
|
||||
target_include_directories(${NEO_DYNAMIC_LIB_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/dll/linux/devices${BRANCH_DIR_SUFFIX}
|
||||
)
|
||||
|
@ -65,8 +65,15 @@ add_subdirectories()
|
||||
target_link_libraries(igdrcl_aub_tests igdrcl_mocks)
|
||||
target_link_libraries(igdrcl_aub_tests ${NEO_MOCKABLE_LIB_NAME})
|
||||
target_link_libraries(igdrcl_aub_tests igdrcl_mocks)
|
||||
target_link_libraries(igdrcl_aub_tests gmock-gtest ${IGDRCL_EXTRA_LIBS} ${GMM_LINK_NAME})
|
||||
|
||||
target_link_libraries(igdrcl_aub_tests gmock-gtest ${IGDRCL_EXTRA_LIBS})
|
||||
if(UNIX)
|
||||
target_link_libraries(igdrcl_aub_tests ${GMM_LINK_NAME})
|
||||
else()
|
||||
add_dependencies(igdrcl_aub_tests ${GMM_TARGET_NAME})
|
||||
target_sources(igdrcl_aub_tests PRIVATE
|
||||
${NEO_SOURCE_DIR}/core/os_interface/windows/gmm_interface.cpp
|
||||
)
|
||||
endif()
|
||||
target_include_directories(igdrcl_aub_tests BEFORE PRIVATE ${NEO_SOURCE_DIR}/core/unit_tests/test_macros${BRANCH_DIR_SUFFIX})
|
||||
|
||||
macro(macro_for_each_test_config)
|
||||
|
@ -456,6 +456,8 @@ int main(int argc, char **argv) {
|
||||
#endif
|
||||
if (useMockGmm) {
|
||||
GmmHelper::createGmmContextWrapperFunc = GmmClientContextBase::create<MockGmmClientContext>;
|
||||
} else {
|
||||
InitializeGmm(nullptr, nullptr);
|
||||
}
|
||||
initializeTestHelpers();
|
||||
|
||||
|
Reference in New Issue
Block a user