mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
fix: add missing extension ults
Related-To: NEO-9988 Signed-off-by: Jakub Nowacki <jakub.nowacki@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
7ef85b5853
commit
4ca596c535
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2020-2024 Intel Corporation
|
||||
# Copyright (C) 2020-2025 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
@@ -7,10 +7,10 @@
|
||||
target_sources(${L0_STATIC_LIB_NAME}
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}additional_extension_function_address.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/definitions${BRANCH_DIR_SUFFIX}additional_extension_function_address.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/driver_handle.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/driver_handle_imp.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}driver_handle_imp_helper.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/driver_handle_imp_helper.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/driver_handle_imp.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/driver.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/driver.h
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2024 Intel Corporation
|
||||
* Copyright (C) 2024-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
@@ -10,6 +10,8 @@
|
||||
#include "level_zero/ze_intel_gpu.h"
|
||||
#include "level_zero/zet_intel_gpu_metric.h"
|
||||
|
||||
#include "additional_extensions_support.h"
|
||||
|
||||
namespace L0 {
|
||||
const std::vector<std::pair<std::string, uint32_t>> DriverHandleImp::extensionsSupported = {
|
||||
{ZE_FLOAT_ATOMICS_EXT_NAME, ZE_FLOAT_ATOMICS_EXT_VERSION_CURRENT},
|
||||
@@ -27,8 +29,8 @@ const std::vector<std::pair<std::string, uint32_t>> DriverHandleImp::extensionsS
|
||||
{ZE_DEVICE_IP_VERSION_EXT_NAME, ZE_DEVICE_IP_VERSION_VERSION_CURRENT},
|
||||
{ZE_CACHE_RESERVATION_EXT_NAME, ZE_CACHE_RESERVATION_EXT_VERSION_CURRENT},
|
||||
{ZE_IMAGE_COPY_EXT_NAME, ZE_IMAGE_COPY_EXT_VERSION_CURRENT},
|
||||
{ZE_IMAGE_VIEW_EXT_NAME, ZE_IMAGE_VIEW_EXP_VERSION_CURRENT},
|
||||
{ZE_IMAGE_VIEW_PLANAR_EXT_NAME, ZE_IMAGE_VIEW_PLANAR_EXP_VERSION_CURRENT},
|
||||
{ZE_IMAGE_VIEW_EXT_NAME, ZE_IMAGE_VIEW_EXT_VERSION_CURRENT},
|
||||
{ZE_IMAGE_VIEW_PLANAR_EXT_NAME, ZE_IMAGE_VIEW_PLANAR_EXT_VERSION_CURRENT},
|
||||
{ZE_EVENT_QUERY_KERNEL_TIMESTAMPS_EXT_NAME, ZE_EVENT_QUERY_KERNEL_TIMESTAMPS_EXT_VERSION_CURRENT},
|
||||
{ZE_RTAS_BUILDER_EXP_NAME, ZE_RTAS_BUILDER_EXP_VERSION_CURRENT},
|
||||
{ZE_KERNEL_MAX_GROUP_SIZE_PROPERTIES_EXT_NAME, ZE_KERNEL_MAX_GROUP_SIZE_PROPERTIES_EXT_VERSION_CURRENT},
|
||||
@@ -52,5 +54,8 @@ const std::vector<std::pair<std::string, uint32_t>> DriverHandleImp::extensionsS
|
||||
// Metrics Driver experimental extensions
|
||||
{ZET_INTEL_METRIC_APPEND_MARKER_EXP_NAME, ZET_INTEL_METRIC_APPEND_MARKER_EXP_VERSION_CURRENT},
|
||||
{ZET_INTEL_METRIC_SOURCE_ID_EXP_NAME, ZET_INTEL_METRIC_SOURCE_ID_EXP_VERSION_CURRENT},
|
||||
{ZET_INTEL_METRIC_CALCULATE_EXP_NAME, ZET_INTEL_METRIC_CALCULATE_EXP_VERSION_CURRENT}};
|
||||
{ZET_INTEL_METRIC_CALCULATE_EXP_NAME, ZET_INTEL_METRIC_CALCULATE_EXP_VERSION_CURRENT},
|
||||
|
||||
#include "additional_extensions_support.inl"
|
||||
};
|
||||
} // namespace L0
|
||||
|
||||
@@ -312,5 +312,29 @@ void GetMemHandlePtrTestFixture::tearDown() {
|
||||
|
||||
PageFaultDeviceFixture::PageFaultDeviceFixture() = default;
|
||||
PageFaultDeviceFixture::~PageFaultDeviceFixture() = default;
|
||||
|
||||
void ExtensionFixture::setUp() {
|
||||
DeviceFixture::setUp();
|
||||
|
||||
uint32_t count = 0;
|
||||
ze_result_t res = DeviceFixture::driverHandle->getExtensionProperties(&count, nullptr);
|
||||
EXPECT_NE(0u, count);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
|
||||
extensionProperties.resize(count);
|
||||
res = DeviceFixture::driverHandle->getExtensionProperties(&count, extensionProperties.data());
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
}
|
||||
|
||||
void ExtensionFixture::tearDown() {
|
||||
DeviceFixture::tearDown();
|
||||
}
|
||||
|
||||
void ExtensionFixture::verifyExtensionDefinition(const char *extName, unsigned int extVersion) {
|
||||
auto it = std::find_if(extensionProperties.begin(), extensionProperties.end(), [&extName](const auto &extension) { return (strcmp(extension.name, extName) == 0); });
|
||||
EXPECT_NE(it, extensionProperties.end());
|
||||
EXPECT_EQ((*it).version, extVersion);
|
||||
}
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
@@ -331,5 +331,13 @@ struct MultiSubDeviceWithContextGroupAndImplicitScalingTest : public MultiSubDev
|
||||
HardwareInfo hardwareInfo;
|
||||
};
|
||||
|
||||
struct ExtensionFixture : public DeviceFixture {
|
||||
void setUp();
|
||||
void tearDown();
|
||||
void verifyExtensionDefinition(const char *extName, unsigned int extVersion);
|
||||
|
||||
std::vector<ze_driver_extension_properties_t> extensionProperties;
|
||||
};
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "level_zero/core/source/cmdlist/cmdlist_hw_immediate.h"
|
||||
#include "level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper.h"
|
||||
#include "level_zero/core/test/unit_tests/fixtures/device_fixture.h"
|
||||
#include "level_zero/core/test/unit_tests/fixtures/in_order_cmd_list_fixture.h"
|
||||
#include "level_zero/core/test/unit_tests/mocks/mock_event.h"
|
||||
#include "level_zero/core/test/unit_tests/mocks/mock_image.h"
|
||||
@@ -35,37 +36,17 @@
|
||||
namespace L0 {
|
||||
namespace ult {
|
||||
|
||||
using InOrderCmdListTests = InOrderCmdListFixture;
|
||||
using InOrderCmdListExtensionsTests = Test<ExtensionFixture>;
|
||||
|
||||
HWTEST_F(InOrderCmdListTests, givenDriverHandleWhenAskingForExtensionsThenReturnCorrectVersions) {
|
||||
uint32_t count = 0;
|
||||
ze_result_t res = driverHandle->getExtensionProperties(&count, nullptr);
|
||||
EXPECT_NE(0u, count);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
|
||||
std::vector<ze_driver_extension_properties_t> extensionProperties;
|
||||
extensionProperties.resize(count);
|
||||
|
||||
res = driverHandle->getExtensionProperties(&count, extensionProperties.data());
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
|
||||
auto it = std::find_if(extensionProperties.begin(), extensionProperties.end(), [](const auto &extension) { return (strcmp(extension.name, ZE_EVENT_POOL_COUNTER_BASED_EXP_NAME) == 0); });
|
||||
EXPECT_NE(it, extensionProperties.end());
|
||||
EXPECT_EQ((*it).version, ZE_EVENT_POOL_COUNTER_BASED_EXP_VERSION_CURRENT);
|
||||
|
||||
it = std::find_if(extensionProperties.begin(), extensionProperties.end(), [](const auto &extension) { return (strcmp(extension.name, ZEX_COUNTER_BASED_EVENT_EXT_NAME) == 0); });
|
||||
EXPECT_NE(it, extensionProperties.end());
|
||||
EXPECT_EQ((*it).version, ZEX_COUNTER_BASED_EVENT_VERSION_1_0);
|
||||
|
||||
it = std::find_if(extensionProperties.begin(), extensionProperties.end(), [](const auto &extension) { return (strcmp(extension.name, ZE_INTEL_COMMAND_LIST_MEMORY_SYNC) == 0); });
|
||||
EXPECT_NE(it, extensionProperties.end());
|
||||
EXPECT_EQ((*it).version, ZE_INTEL_COMMAND_LIST_MEMORY_SYNC_EXP_VERSION_CURRENT);
|
||||
|
||||
it = std::find_if(extensionProperties.begin(), extensionProperties.end(), [](const auto &extension) { return (strcmp(extension.name, ZEX_INTEL_EVENT_SYNC_MODE_EXP_NAME) == 0); });
|
||||
EXPECT_NE(it, extensionProperties.end());
|
||||
EXPECT_EQ((*it).version, ZEX_INTEL_EVENT_SYNC_MODE_EXP_VERSION_CURRENT);
|
||||
HWTEST_F(InOrderCmdListExtensionsTests, givenDriverHandleWhenAskingForExtensionsThenReturnCorrectVersions) {
|
||||
verifyExtensionDefinition(ZE_EVENT_POOL_COUNTER_BASED_EXP_NAME, ZE_EVENT_POOL_COUNTER_BASED_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZEX_COUNTER_BASED_EVENT_EXT_NAME, ZEX_COUNTER_BASED_EVENT_VERSION_1_0);
|
||||
verifyExtensionDefinition(ZE_INTEL_COMMAND_LIST_MEMORY_SYNC, ZE_INTEL_COMMAND_LIST_MEMORY_SYNC_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZEX_INTEL_EVENT_SYNC_MODE_EXP_NAME, ZEX_INTEL_EVENT_SYNC_MODE_EXP_VERSION_CURRENT);
|
||||
}
|
||||
|
||||
using InOrderCmdListTests = InOrderCmdListFixture;
|
||||
|
||||
HWTEST_F(InOrderCmdListTests, givenCmdListWhenAskingForQwordDataSizeThenReturnFalse) {
|
||||
auto immCmdList = createImmCmdList<FamilyType::gfxCoreFamily>();
|
||||
|
||||
|
||||
@@ -135,13 +135,6 @@ TEST_F(DriverHandleImpTest, givenDriverImpWhenCallingupdateRootDeviceBitFieldsTh
|
||||
}
|
||||
|
||||
using DriverVersionTest = Test<DeviceFixture>;
|
||||
TEST_F(DriverVersionTest, givenSupportedExtensionsWhenCheckIfDeviceIpVersionIsSupportedThenCorrectResultsAreReturned) {
|
||||
auto &supportedExt = driverHandle->extensionsSupported;
|
||||
auto it = std::find_if(supportedExt.begin(), supportedExt.end(), [](const auto &supportedExt) { return supportedExt.first == ZE_DEVICE_IP_VERSION_EXT_NAME; });
|
||||
EXPECT_NE(it, supportedExt.end());
|
||||
EXPECT_EQ(it->second, ZE_DEVICE_IP_VERSION_VERSION_CURRENT);
|
||||
}
|
||||
|
||||
TEST_F(DriverVersionTest, givenCallToGetExtensionPropertiesThenSupportedExtensionsAreReturned) {
|
||||
std::vector<std::pair<std::string, uint32_t>> additionalExtensions;
|
||||
device->getL0GfxCoreHelper().appendPlatformSpecificExtensions(additionalExtensions, device->getProductHelper(), device->getHwInfo());
|
||||
@@ -1678,41 +1671,41 @@ TEST(MultiDriverHandleTest, givenMultiplesDifferentDevicesWhenGetDriverHandleThe
|
||||
globalDriverHandles->clear();
|
||||
}
|
||||
|
||||
using DriverExtensionsTest = Test<DeviceFixture>;
|
||||
TEST_F(DriverExtensionsTest, givenSupportedExtensionsWhenCheckIfImageMemoryPropertiesExpIsSupportedThenCorrectResultsAreReturned) {
|
||||
uint32_t count = 0;
|
||||
ze_result_t res = driverHandle->getExtensionProperties(&count, nullptr);
|
||||
EXPECT_NE(0u, count);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
using DriverExtensionsTest = Test<ExtensionFixture>;
|
||||
|
||||
std::vector<ze_driver_extension_properties_t> extensionProperties;
|
||||
extensionProperties.resize(count);
|
||||
TEST_F(DriverExtensionsTest, givenDriverHandleWhenAskingForExtensionsThenReturnCorrectVersions) {
|
||||
verifyExtensionDefinition(ZE_FLOAT_ATOMICS_EXT_NAME, ZE_FLOAT_ATOMICS_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_RELAXED_ALLOCATION_LIMITS_EXP_NAME, ZE_RELAXED_ALLOCATION_LIMITS_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_MODULE_PROGRAM_EXP_NAME, ZE_MODULE_PROGRAM_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_KERNEL_SCHEDULING_HINTS_EXP_NAME, ZE_SCHEDULING_HINTS_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_GLOBAL_OFFSET_EXP_NAME, ZE_GLOBAL_OFFSET_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_PCI_PROPERTIES_EXT_NAME, ZE_PCI_PROPERTIES_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_MEMORY_COMPRESSION_HINTS_EXT_NAME, ZE_MEMORY_COMPRESSION_HINTS_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_MEMORY_FREE_POLICIES_EXT_NAME, ZE_MEMORY_FREE_POLICIES_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_DEVICE_MEMORY_PROPERTIES_EXT_NAME, ZE_DEVICE_MEMORY_PROPERTIES_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_RAYTRACING_EXT_NAME, ZE_RAYTRACING_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_CONTEXT_POWER_SAVING_HINT_EXP_NAME, ZE_POWER_SAVING_HINT_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_DEVICE_LUID_EXT_NAME, ZE_DEVICE_LUID_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_DEVICE_IP_VERSION_EXT_NAME, ZE_DEVICE_IP_VERSION_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_CACHE_RESERVATION_EXT_NAME, ZE_CACHE_RESERVATION_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_IMAGE_COPY_EXT_NAME, ZE_IMAGE_COPY_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_IMAGE_VIEW_EXT_NAME, ZE_IMAGE_VIEW_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_IMAGE_VIEW_PLANAR_EXT_NAME, ZE_IMAGE_VIEW_PLANAR_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_EVENT_QUERY_KERNEL_TIMESTAMPS_EXT_NAME, ZE_EVENT_QUERY_KERNEL_TIMESTAMPS_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_RTAS_BUILDER_EXP_NAME, ZE_RTAS_BUILDER_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_KERNEL_MAX_GROUP_SIZE_PROPERTIES_EXT_NAME, ZE_KERNEL_MAX_GROUP_SIZE_PROPERTIES_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_LINKAGE_INSPECTION_EXT_NAME, ZE_LINKAGE_INSPECTION_EXT_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_IMMEDIATE_COMMAND_LIST_APPEND_EXP_NAME, ZE_IMMEDIATE_COMMAND_LIST_APPEND_EXP_VERSION_1_0);
|
||||
verifyExtensionDefinition(ZE_GET_KERNEL_BINARY_EXP_NAME, ZE_KERNEL_GET_BINARY_EXP_VERSION_1_0);
|
||||
verifyExtensionDefinition(ZE_EXTERNAL_SEMAPHORES_EXTENSION_NAME, ZE_EXTERNAL_SEMAPHORE_EXT_VERSION_1_0);
|
||||
|
||||
res = driverHandle->getExtensionProperties(&count, extensionProperties.data());
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
|
||||
auto it = std::find_if(extensionProperties.begin(), extensionProperties.end(), [](const auto &extension) { return (strcmp(extension.name, ZE_IMAGE_MEMORY_PROPERTIES_EXP_NAME) == 0); });
|
||||
EXPECT_NE(it, extensionProperties.end());
|
||||
uint32_t expectedVersion = ZE_MAKE_VERSION(1, 0);
|
||||
EXPECT_EQ(expectedVersion, (*it).version);
|
||||
}
|
||||
|
||||
TEST_F(DriverExtensionsTest, givenSupportedExtensionsWhenCheckIfImageQueryAllocationIsSupportedThenCorrectResultsAreReturned) {
|
||||
uint32_t count = 0;
|
||||
ze_result_t res = driverHandle->getExtensionProperties(&count, nullptr);
|
||||
EXPECT_NE(0u, count);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
|
||||
std::vector<ze_driver_extension_properties_t> extensionProperties;
|
||||
extensionProperties.resize(count);
|
||||
|
||||
res = driverHandle->getExtensionProperties(&count, extensionProperties.data());
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
|
||||
auto it = std::find_if(extensionProperties.begin(), extensionProperties.end(), [](const auto &extension) { return (strcmp(extension.name, ZE_IMAGE_QUERY_ALLOC_PROPERTIES_EXT_NAME) == 0); });
|
||||
EXPECT_NE(it, extensionProperties.end());
|
||||
uint32_t expectedVersion = ZE_MAKE_VERSION(1, 0);
|
||||
EXPECT_EQ(expectedVersion, (*it).version);
|
||||
// Driver experimental extensions
|
||||
verifyExtensionDefinition(ZE_INTEL_DEVICE_MODULE_DP_PROPERTIES_EXP_NAME, ZE_INTEL_DEVICE_MODULE_DP_PROPERTIES_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_INTEL_GET_DRIVER_VERSION_STRING_EXP_NAME, ZE_INTEL_GET_DRIVER_VERSION_STRING_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_INTEL_DEVICE_BLOCK_ARRAY_EXP_NAME, ZE_INTEL_DEVICE_BLOCK_ARRAY_EXP_PROPERTIES_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_INTEL_KERNEL_GET_PROGRAM_BINARY_EXP_NAME, ZE_INTEL_KERNEL_GET_PROGRAM_BINARY_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_IMAGE_MEMORY_PROPERTIES_EXP_NAME, ZE_IMAGE_MEMORY_PROPERTIES_EXP_VERSION_CURRENT);
|
||||
verifyExtensionDefinition(ZE_IMAGE_QUERY_ALLOC_PROPERTIES_EXT_NAME, ZE_IMAGE_QUERY_ALLOC_PROPERTIES_EXT_VERSION_CURRENT);
|
||||
}
|
||||
|
||||
} // namespace ult
|
||||
|
||||
Reference in New Issue
Block a user