fix: running Blender with SYSMAN enabled on Linux

Related-To: NEO-11618

Signed-off-by: Oskar Hubert Weber <oskar.hubert.weber@intel.com>
This commit is contained in:
Oskar Hubert Weber
2024-10-14 11:32:32 +00:00
committed by Compute-Runtime-Automation
parent 5adfaa0380
commit 8527779778
20 changed files with 170 additions and 19 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2022-2023 Intel Corporation
* Copyright (C) 2022-2024 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -7,8 +7,11 @@
#include "level_zero/sysman/source/shared/firmware_util/sysman_firmware_util_imp.h"
#include <dlfcn.h>
namespace L0 {
namespace Sysman {
int FirmwareUtilImp::fwUtilLoadFlags = RTLD_LAZY;
std::string FirmwareUtilImp::fwUtilLibraryName = "libigsc.so.0";
} // namespace Sysman
} // namespace L0

View File

@@ -208,6 +208,7 @@ FirmwareUtilImp::~FirmwareUtilImp() {
FirmwareUtil *FirmwareUtil::create(uint16_t domain, uint8_t bus, uint8_t device, uint8_t function) {
FirmwareUtilImp *pFwUtilImp = new FirmwareUtilImp(domain, bus, device, function);
UNRECOVERABLE_IF(nullptr == pFwUtilImp);
NEO::OsLibrary::loadFlagsOverwrite = &FirmwareUtilImp::fwUtilLoadFlags;
pFwUtilImp->libraryHandle = NEO::OsLibrary::loadFunc(FirmwareUtilImp::fwUtilLibraryName);
if (pFwUtilImp->libraryHandle == nullptr || pFwUtilImp->loadEntryPoints() == false || pFwUtilImp->fwDeviceInit() != ZE_RESULT_SUCCESS) {
if (nullptr != pFwUtilImp->libraryHandle) {

View File

@@ -127,6 +127,7 @@ class FirmwareUtilImp : public FirmwareUtil, NEO::NonCopyableOrMovableClass {
void getDeviceSupportedFwTypes(std::vector<std::string> &fwTypes) override;
void fwGetMemoryHealthIndicator(zes_mem_health_t *health) override;
static int fwUtilLoadFlags;
static std::string fwUtilLibraryName;
bool loadEntryPoints();
bool loadEntryPointsExt();

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2022-2023 Intel Corporation
* Copyright (C) 2022-2024 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -10,5 +10,6 @@
namespace L0 {
namespace Sysman {
std::string FirmwareUtilImp::fwUtilLibraryName = "igsc.dll";
int FirmwareUtilImp::fwUtilLoadFlags{};
} // namespace Sysman
} // namespace L0