mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-10 15:12:56 +08:00
Refactoring Level Zero ULTs in order to use standalone spirv builtins
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
c8d1e082dd
commit
4804eca86d
@@ -11,11 +11,6 @@
|
||||
|
||||
namespace L0 {
|
||||
|
||||
std::unique_ptr<BuiltinFunctionsLib> BuiltinFunctionsLib::create(Device *device,
|
||||
NEO::BuiltIns *builtins) {
|
||||
return std::unique_ptr<BuiltinFunctionsLib>(new BuiltinFunctionsLibImpl(device, builtins));
|
||||
}
|
||||
|
||||
std::unique_lock<BuiltinFunctionsLib::MutexType> BuiltinFunctionsLib::obtainUniqueOwnership() {
|
||||
return std::unique_lock<BuiltinFunctionsLib::MutexType>(this->ownershipMutex);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ struct BuiltinFunctionsLibImpl : BuiltinFunctionsLib {
|
||||
void initFunctions() override;
|
||||
void initImageFunctions() override;
|
||||
void initPageFaultFunction() override;
|
||||
std::unique_ptr<BuiltinFunctionsLibImpl::BuiltinData> loadBuiltIn(NEO::EBuiltInOps::Type builtin, const char *builtInName);
|
||||
MOCKABLE_VIRTUAL std::unique_ptr<BuiltinFunctionsLibImpl::BuiltinData> loadBuiltIn(NEO::EBuiltInOps::Type builtin, const char *builtInName);
|
||||
|
||||
protected:
|
||||
std::unique_ptr<BuiltinData> builtins[static_cast<uint32_t>(Builtin::COUNT)];
|
||||
@@ -47,10 +47,15 @@ struct BuiltinFunctionsLibImpl : BuiltinFunctionsLib {
|
||||
NEO::BuiltIns *builtInsLib;
|
||||
};
|
||||
struct BuiltinFunctionsLibImpl::BuiltinData {
|
||||
~BuiltinData() {
|
||||
MOCKABLE_VIRTUAL ~BuiltinData() {
|
||||
func.reset();
|
||||
module.reset();
|
||||
}
|
||||
BuiltinData() = default;
|
||||
BuiltinData(std::unique_ptr<L0::Module> mod, std::unique_ptr<L0::Kernel> ker) {
|
||||
module = std::move(mod);
|
||||
func = std::move(ker);
|
||||
}
|
||||
|
||||
std::unique_ptr<Module> module;
|
||||
std::unique_ptr<Kernel> func;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
set(L0_SRCS_DLL
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/disallow_deferred_deleter.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/create_builtin_functions_lib.cpp
|
||||
)
|
||||
add_subdirectories()
|
||||
if(WIN32)
|
||||
|
||||
19
level_zero/core/source/dll/create_builtin_functions_lib.cpp
Normal file
19
level_zero/core/source/dll/create_builtin_functions_lib.cpp
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2019-2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/built_ins/built_ins.h"
|
||||
|
||||
#include "level_zero/core/source/builtin/builtin_functions_lib_impl.h"
|
||||
|
||||
namespace L0 {
|
||||
|
||||
std::unique_ptr<BuiltinFunctionsLib> BuiltinFunctionsLib::create(Device *device,
|
||||
NEO::BuiltIns *builtins) {
|
||||
return std::unique_ptr<BuiltinFunctionsLib>(new BuiltinFunctionsLibImpl(device, builtins));
|
||||
}
|
||||
|
||||
} // namespace L0
|
||||
Reference in New Issue
Block a user