mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 00:24:58 +08:00
fix: correct number of returned L0 drivers
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
961a8d91d0
commit
78b01e25d3
@@ -26,7 +26,7 @@ namespace L0 {
|
||||
|
||||
_ze_driver_handle_t *GlobalDriverHandle;
|
||||
bool LevelZeroDriverInitialized = false;
|
||||
uint32_t driverCount = 1;
|
||||
uint32_t driverCount = 0;
|
||||
|
||||
void DriverImp::initialize(ze_result_t *result) {
|
||||
*result = ZE_RESULT_ERROR_UNINITIALIZED;
|
||||
@@ -70,26 +70,25 @@ void DriverImp::initialize(ze_result_t *result) {
|
||||
if (!neoDevices.empty()) {
|
||||
GlobalDriverHandle = DriverHandle::create(std::move(neoDevices), envVariables, result);
|
||||
if (GlobalDriverHandle != nullptr) {
|
||||
driverCount = 1;
|
||||
*result = ZE_RESULT_SUCCESS;
|
||||
|
||||
if (envVariables.metrics) {
|
||||
*result = MetricDeviceContext::enableMetricApi();
|
||||
if (*result != ZE_RESULT_SUCCESS) {
|
||||
delete GlobalDriver;
|
||||
GlobalDriverHandle = nullptr;
|
||||
GlobalDriver = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
if ((*result == ZE_RESULT_SUCCESS) && envVariables.pin) {
|
||||
std::string gtpinFuncName{"OpenGTPin"};
|
||||
if (false == NEO::PinContext::init(gtpinFuncName)) {
|
||||
*result = ZE_RESULT_ERROR_DEPENDENCY_UNAVAILABLE;
|
||||
delete GlobalDriver;
|
||||
GlobalDriverHandle = nullptr;
|
||||
GlobalDriver = nullptr;
|
||||
}
|
||||
}
|
||||
if (*result != ZE_RESULT_SUCCESS) {
|
||||
delete GlobalDriver;
|
||||
GlobalDriverHandle = nullptr;
|
||||
GlobalDriver = nullptr;
|
||||
driverCount = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,8 @@ if(DEFINED AUB_STREAM_PROJECT_NAME)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${L0_CORE_ENABLERS}
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_specific_config_l0.cpp
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_config_listener_l0.cpp
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_config_listener_l0.h
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/unit_tests/mock.h
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/unit_tests/white_box.h
|
||||
${NEO_SOURCE_DIR}/level_zero/tools/test/unit_tests/sources/debug/debug_session_helper.cpp
|
||||
|
||||
25
level_zero/core/test/common/ult_config_listener_l0.cpp
Normal file
25
level_zero/core/test/common/ult_config_listener_l0.cpp
Normal file
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "level_zero/core/test/common/ult_config_listener_l0.h"
|
||||
|
||||
#include "level_zero/core/source/driver/driver.h"
|
||||
|
||||
void L0::UltConfigListenerL0::OnTestStart(const ::testing::TestInfo &testInfo) {
|
||||
BaseUltConfigListener::OnTestStart(testInfo);
|
||||
|
||||
GlobalDriverHandle = nullptr;
|
||||
driverCount = 0;
|
||||
}
|
||||
|
||||
void L0::UltConfigListenerL0::OnTestEnd(const ::testing::TestInfo &testInfo) {
|
||||
|
||||
EXPECT_EQ(nullptr, GlobalDriverHandle);
|
||||
EXPECT_EQ(0u, driverCount);
|
||||
|
||||
BaseUltConfigListener::OnTestEnd(testInfo);
|
||||
}
|
||||
19
level_zero/core/test/common/ult_config_listener_l0.h
Normal file
19
level_zero/core/test/common/ult_config_listener_l0.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "shared/test/common/base_ult_config_listener.h"
|
||||
|
||||
namespace L0 {
|
||||
|
||||
class UltConfigListenerL0 : public NEO::BaseUltConfigListener {
|
||||
private:
|
||||
void OnTestStart(const ::testing::TestInfo &) override;
|
||||
void OnTestEnd(const ::testing::TestInfo &) override;
|
||||
};
|
||||
|
||||
} // namespace L0
|
||||
@@ -5,11 +5,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/test/common/base_ult_config_listener.h"
|
||||
#include "shared/test/common/helpers/test_files.h"
|
||||
#include "shared/test/common/tests_configuration.h"
|
||||
|
||||
#include "level_zero/core/source/cmdlist/cmdlist.h"
|
||||
#include "level_zero/core/test/common/ult_config_listener_l0.h"
|
||||
|
||||
using namespace NEO;
|
||||
void cleanTestHelpers() {}
|
||||
@@ -52,5 +52,5 @@ std::string getBaseExecutionDir() {
|
||||
}
|
||||
|
||||
void addUltListener(::testing::TestEventListeners &listeners) {
|
||||
listeners.Append(new BaseUltConfigListener);
|
||||
listeners.Append(new L0::UltConfigListenerL0);
|
||||
}
|
||||
|
||||
@@ -31,6 +31,8 @@ target_sources(${TARGET_NAME} PRIVATE
|
||||
${NEO_SHARED_TEST_DIRECTORY}/common/tests_configuration.h
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/test_modules/gen_kernel.cmake
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_specific_config_l0.cpp
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_config_listener_l0.cpp
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_config_listener_l0.h
|
||||
)
|
||||
|
||||
target_sources(${TARGET_NAME} PRIVATE
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
#include "shared/source/os_interface/os_time.h"
|
||||
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
||||
#include "shared/test/common/helpers/variable_backup.h"
|
||||
|
||||
#include "level_zero/core/source/context/context_imp.h"
|
||||
#include "level_zero/core/source/device/device_imp.h"
|
||||
@@ -30,6 +31,8 @@ struct Context;
|
||||
struct Device;
|
||||
struct ContextImp;
|
||||
|
||||
extern uint32_t driverCount;
|
||||
extern _ze_driver_handle_t *GlobalDriverHandle;
|
||||
namespace ult {
|
||||
class MockBuiltins;
|
||||
|
||||
@@ -51,6 +54,8 @@ struct DeviceFixture {
|
||||
const uint32_t rootDeviceIndex = 0u;
|
||||
template <typename HelperType>
|
||||
HelperType &getHelper() const;
|
||||
VariableBackup<_ze_driver_handle_t *> globalDriverHandleBackup{&GlobalDriverHandle};
|
||||
VariableBackup<uint32_t> driverCountBackup{&driverCount};
|
||||
};
|
||||
|
||||
struct DriverHandleGetMemHandlePtrMock : public L0::DriverHandleImp {
|
||||
@@ -111,6 +116,9 @@ struct MultiDeviceFixture {
|
||||
uint32_t numRootDevices = 4u;
|
||||
uint32_t numSubDevices = 2u;
|
||||
L0::ContextImp *context = nullptr;
|
||||
|
||||
VariableBackup<_ze_driver_handle_t *> globalDriverHandleBackup{&GlobalDriverHandle};
|
||||
VariableBackup<uint32_t> driverCountBackup{&driverCount};
|
||||
};
|
||||
|
||||
struct MultiDeviceFixtureHierarchy : public MultiDeviceFixture {
|
||||
|
||||
@@ -416,7 +416,12 @@ TEST(DriverTest, givenNullEnvVariableWhenCreatingDriverThenEnableProgramDebuggin
|
||||
L0::GlobalDriver = nullptr;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenDriverImpWhenInitializedThenEnvVariablesAreRead) {
|
||||
struct DriverImpTest : public ::testing::Test {
|
||||
VariableBackup<_ze_driver_handle_t *> globalDriverHandleBackup{&GlobalDriverHandle};
|
||||
VariableBackup<uint32_t> driverCountBackup{&driverCount};
|
||||
};
|
||||
|
||||
TEST_F(DriverImpTest, givenDriverImpWhenInitializedThenEnvVariablesAreRead) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -434,7 +439,7 @@ TEST(DriverImpTest, givenDriverImpWhenInitializedThenEnvVariablesAreRead) {
|
||||
L0::GlobalDriver = nullptr;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenMissingMetricApiDependenciesWhenInitializingDriverImpThenGlobalDriverHandleIsNull) {
|
||||
TEST_F(DriverImpTest, givenMissingMetricApiDependenciesWhenInitializingDriverImpThenGlobalDriverHandleIsNull) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -458,7 +463,7 @@ TEST(DriverImpTest, givenMissingMetricApiDependenciesWhenInitializingDriverImpTh
|
||||
EXPECT_EQ(nullptr, L0::GlobalDriver);
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenEnabledProgramDebuggingWhenCreatingExecutionEnvironmentThenDebuggingEnabledIsTrue) {
|
||||
TEST_F(DriverImpTest, givenEnabledProgramDebuggingWhenCreatingExecutionEnvironmentThenDebuggingEnabledIsTrue) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -480,7 +485,7 @@ TEST(DriverImpTest, givenEnabledProgramDebuggingWhenCreatingExecutionEnvironment
|
||||
L0::GlobalDriver = nullptr;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, whenCreatingExecutionEnvironmentThenDefaultHierarchyIsEnabled) {
|
||||
TEST_F(DriverImpTest, whenCreatingExecutionEnvironmentThenDefaultHierarchyIsEnabled) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -503,7 +508,7 @@ TEST(DriverImpTest, whenCreatingExecutionEnvironmentThenDefaultHierarchyIsEnable
|
||||
L0::GlobalDriver = nullptr;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenFlatDeviceHierarchyWhenCreatingExecutionEnvironmentThenFlatHierarchyIsEnabled) {
|
||||
TEST_F(DriverImpTest, givenFlatDeviceHierarchyWhenCreatingExecutionEnvironmentThenFlatHierarchyIsEnabled) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -525,7 +530,7 @@ TEST(DriverImpTest, givenFlatDeviceHierarchyWhenCreatingExecutionEnvironmentThen
|
||||
L0::GlobalDriver = nullptr;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenCompositeDeviceHierarchyWhenCreatingExecutionEnvironmentThenCompositeHierarchyIsEnabled) {
|
||||
TEST_F(DriverImpTest, givenCompositeDeviceHierarchyWhenCreatingExecutionEnvironmentThenCompositeHierarchyIsEnabled) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -547,7 +552,7 @@ TEST(DriverImpTest, givenCompositeDeviceHierarchyWhenCreatingExecutionEnvironmen
|
||||
L0::GlobalDriver = nullptr;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenCombinedDeviceHierarchyWhenCreatingExecutionEnvironmentThenCombinedHierarchyIsEnabled) {
|
||||
TEST_F(DriverImpTest, givenCombinedDeviceHierarchyWhenCreatingExecutionEnvironmentThenCombinedHierarchyIsEnabled) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -569,7 +574,7 @@ TEST(DriverImpTest, givenCombinedDeviceHierarchyWhenCreatingExecutionEnvironment
|
||||
L0::GlobalDriver = nullptr;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenEnableProgramDebuggingWithValue2WhenCreatingExecutionEnvironmentThenDebuggingEnabledIsTrue) {
|
||||
TEST_F(DriverImpTest, givenEnableProgramDebuggingWithValue2WhenCreatingExecutionEnvironmentThenDebuggingEnabledIsTrue) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -591,7 +596,7 @@ TEST(DriverImpTest, givenEnableProgramDebuggingWithValue2WhenCreatingExecutionEn
|
||||
L0::GlobalDriver = nullptr;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenEnabledFP64EmulationWhenCreatingExecutionEnvironmentThenFP64EmulationIsEnabled) {
|
||||
TEST_F(DriverImpTest, givenEnabledFP64EmulationWhenCreatingExecutionEnvironmentThenFP64EmulationIsEnabled) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -613,8 +618,11 @@ TEST(DriverImpTest, givenEnabledFP64EmulationWhenCreatingExecutionEnvironmentThe
|
||||
L0::GlobalDriver = nullptr;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenEnabledProgramDebuggingAndEnabledExperimentalOpenCLWhenCreatingExecutionEnvironmentThenDebuggingEnabledIsFalse) {
|
||||
TEST_F(DriverImpTest, givenEnabledProgramDebuggingAndEnabledExperimentalOpenCLWhenCreatingExecutionEnvironmentThenDebuggingEnabledIsFalse) {
|
||||
DebugManagerStateRestore restorer;
|
||||
|
||||
VariableBackup<_ze_driver_handle_t *> globalDriverHandleBackup{&GlobalDriverHandle};
|
||||
VariableBackup<uint32_t> driverCountBackup{&driverCount};
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
|
||||
@@ -637,7 +645,7 @@ TEST(DriverImpTest, givenEnabledProgramDebuggingAndEnabledExperimentalOpenCLWhen
|
||||
delete L0::GlobalDriver;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenEnableProgramDebuggingWithValue2AndEnabledExperimentalOpenCLWhenCreatingExecutionEnvironmentThenDebuggingEnabledIsFalse) {
|
||||
TEST_F(DriverImpTest, givenEnableProgramDebuggingWithValue2AndEnabledExperimentalOpenCLWhenCreatingExecutionEnvironmentThenDebuggingEnabledIsFalse) {
|
||||
DebugManagerStateRestore restorer;
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -661,7 +669,7 @@ TEST(DriverImpTest, givenEnableProgramDebuggingWithValue2AndEnabledExperimentalO
|
||||
delete L0::GlobalDriver;
|
||||
}
|
||||
|
||||
TEST(DriverImpTest, givenNoProgramDebuggingEnvVarWhenCreatingExecutionEnvironmentThenDebuggingEnabledIsFalse) {
|
||||
TEST_F(DriverImpTest, givenNoProgramDebuggingEnvVarWhenCreatingExecutionEnvironmentThenDebuggingEnabledIsFalse) {
|
||||
|
||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||
@@ -900,6 +908,7 @@ struct DriverHandleTest : public ::testing::Test {
|
||||
|
||||
driverHandle = whiteboxCast(DriverHandle::create(std::move(devices), envVariables, &returnValue));
|
||||
L0::GlobalDriverHandle = driverHandle;
|
||||
L0::driverCount = 1;
|
||||
}
|
||||
void TearDown() override {
|
||||
delete driverHandle;
|
||||
@@ -907,8 +916,17 @@ struct DriverHandleTest : public ::testing::Test {
|
||||
L0::GlobalDriverHandle = nullptr;
|
||||
}
|
||||
L0::DriverHandle *driverHandle;
|
||||
VariableBackup<_ze_driver_handle_t *> globalDriverHandleBackup{&GlobalDriverHandle};
|
||||
VariableBackup<uint32_t> driverCountBackup{&driverCount};
|
||||
};
|
||||
|
||||
TEST(DriverHandleNegativeTest, givenNotInitializedDriverWhenZeDriverGetIsCalledThenReturnZeroCount) {
|
||||
uint32_t count = 0u;
|
||||
auto result = zeDriverGet(&count, nullptr);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
|
||||
EXPECT_EQ(0U, count);
|
||||
}
|
||||
|
||||
TEST_F(DriverHandleTest, givenInitializedDriverWhenZeDriverGetIsCalledThenDriverHandleCountIsObtained) {
|
||||
uint32_t count = 0;
|
||||
auto result = zeDriverGet(&count, nullptr);
|
||||
|
||||
@@ -25,6 +25,8 @@ add_executable(${TARGET_NAME}
|
||||
target_sources(${TARGET_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_specific_config_l0.cpp
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_config_listener_l0.cpp
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_config_listener_l0.h
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/unit_tests/mock.h
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/unit_tests/white_box.h
|
||||
${NEO_SOURCE_DIR}/level_zero/core/source/dll/create_builtin_functions_lib.cpp
|
||||
|
||||
@@ -25,6 +25,8 @@ add_executable(${TARGET_NAME}
|
||||
target_sources(${TARGET_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_specific_config_l0.cpp
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_config_listener_l0.cpp
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/common/ult_config_listener_l0.h
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/unit_tests/mock.h
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/unit_tests/white_box.h
|
||||
${NEO_SOURCE_DIR}/level_zero/core/test/unit_tests/sources/builtin/create_ult_builtin_functions_lib.cpp
|
||||
|
||||
Reference in New Issue
Block a user