Skip to content

Commit 9dcb1b6

Browse files
ola2308Compute-Runtime-Automation
authored andcommitted
feature: Add support for querying pitched_alloc_2dimage_linear_pitch_exp_info_t
Add support for reporting pitchAlign and maxSupportedPitch for 2D linear pitched allocations. This change addresses missing device properties required for SYCL bindless image E2E tests. And removed unused ze_bindless_image_exp.h file. Resolves: NEO-16433 Signed-off-by: Aleksandra Nizio <[email protected]>
1 parent 06f30d6 commit 9dcb1b6

File tree

9 files changed

+59
-81
lines changed

9 files changed

+59
-81
lines changed

level_zero/api/extensions/public/ze_exp_ext.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
#pragma once
99

10-
#include "level_zero/driver_experimental/ze_bindless_image_exp.h"
1110
#include <level_zero/ze_api.h>
1211
#include <level_zero/zet_api.h>
1312

level_zero/core/source/device/device_imp.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1333,9 +1333,13 @@ ze_result_t DeviceImp::getDeviceImageProperties(ze_device_image_properties_t *pD
13331333
ze_base_properties_t *extendedProperties = reinterpret_cast<ze_base_properties_t *>(pDeviceImageProperties->pNext);
13341334
while (extendedProperties) {
13351335
if (extendedProperties->stype == ZE_STRUCTURE_TYPE_PITCHED_ALLOC_DEVICE_EXP_PROPERTIES) {
1336-
ze_device_pitched_alloc_exp_properties_t *properties = reinterpret_cast<ze_device_pitched_alloc_exp_properties_t *>(extendedProperties);
1336+
auto *properties = reinterpret_cast<ze_device_pitched_alloc_exp_properties_t *>(extendedProperties);
13371337
properties->maxImageLinearHeight = deviceInfo.image2DMaxHeight;
13381338
properties->maxImageLinearWidth = deviceInfo.image2DMaxWidth;
1339+
} else if (extendedProperties->stype == ZE_STRUCTURE_TYPE_PITCHED_ALLOC_2DIMAGE_LINEAR_PITCH_EXP_INFO) {
1340+
auto *pitchInfo = reinterpret_cast<ze_pitched_alloc_2dimage_linear_pitch_exp_info_t *>(extendedProperties);
1341+
pitchInfo->pitchAlign = 64u;
1342+
pitchInfo->maxSupportedPitch = 256u * 1024u;
13391343
}
13401344
extendedProperties = reinterpret_cast<ze_base_properties_t *>(extendedProperties->pNext);
13411345
}

level_zero/core/source/helpers/properties_parser.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include "shared/source/helpers/common_types.h"
1111
#include "shared/source/helpers/surface_format_info.h"
1212

13-
#include "level_zero/driver_experimental/ze_bindless_image_exp.h"
1413
#include "level_zero/driver_experimental/zex_common.h"
1514
#include "level_zero/include/level_zero/ze_intel_gpu.h"
1615
#include "level_zero/include/level_zero/ze_stypes.h"

level_zero/core/test/unit_tests/sources/device/test_l0_device.cpp

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,60 @@ TEST(L0DeviceTest, givenSingleSliceTopologyWhenConvertingToPhysicalIdsThenSubsli
660660
EXPECT_TRUE(ret);
661661
}
662662

663+
TEST(L0DeviceTest, givenPitchedAllocAndNestedPitchInfoStructuresWhenQueryingDeviceImagePropertiesThenValuesAreSetCorrectly) {
664+
std::unique_ptr<DriverHandleImp> driverHandle(new DriverHandleImp);
665+
auto hwInfo = *NEO::defaultHwInfo;
666+
hwInfo.capabilityTable.supportsImages = true;
667+
auto neoDevice = std::unique_ptr<NEO::Device>(
668+
NEO::MockDevice::createWithNewExecutionEnvironment<NEO::MockDevice>(&hwInfo, 0));
669+
auto device = std::unique_ptr<L0::Device>(
670+
Device::create(driverHandle.get(), neoDevice.release(), false, nullptr));
671+
ASSERT_NE(nullptr, device);
672+
673+
ze_device_image_properties_t imgProps = {};
674+
imgProps.stype = ZE_STRUCTURE_TYPE_DEVICE_IMAGE_PROPERTIES;
675+
676+
ze_device_pitched_alloc_exp_properties_t pitchedProps = {};
677+
pitchedProps.stype = ZE_STRUCTURE_TYPE_PITCHED_ALLOC_DEVICE_EXP_PROPERTIES;
678+
679+
ze_pitched_alloc_2dimage_linear_pitch_exp_info_t pitchInfo = {};
680+
pitchInfo.stype = static_cast<ze_structure_type_t>(ZE_STRUCTURE_TYPE_PITCHED_ALLOC_2DIMAGE_LINEAR_PITCH_EXP_INFO);
681+
682+
imgProps.pNext = &pitchedProps;
683+
pitchedProps.pNext = &pitchInfo;
684+
685+
auto result = device->getDeviceImageProperties(&imgProps);
686+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
687+
688+
EXPECT_EQ(64u, pitchInfo.pitchAlign);
689+
EXPECT_EQ(256u * 1024u, pitchInfo.maxSupportedPitch);
690+
}
691+
692+
TEST(L0DeviceTest, givenPitchedAllocLinearPitchInfoStructWhenQueryingDeviceImagePropertiesThenCorrectValuesAreReturned) {
693+
std::unique_ptr<DriverHandleImp> driverHandle(new DriverHandleImp);
694+
auto hwInfo = *NEO::defaultHwInfo;
695+
hwInfo.capabilityTable.supportsImages = true;
696+
auto neoDevice = std::unique_ptr<NEO::Device>(
697+
NEO::MockDevice::createWithNewExecutionEnvironment<NEO::MockDevice>(&hwInfo, 0));
698+
auto device = std::unique_ptr<L0::Device>(
699+
Device::create(driverHandle.get(), neoDevice.release(), false, nullptr));
700+
ASSERT_NE(nullptr, device);
701+
702+
ze_device_image_properties_t imgProps = {};
703+
imgProps.stype = ZE_STRUCTURE_TYPE_DEVICE_IMAGE_PROPERTIES;
704+
705+
ze_pitched_alloc_2dimage_linear_pitch_exp_info_t pitchInfo = {};
706+
pitchInfo.stype = static_cast<ze_structure_type_t>(ZE_STRUCTURE_TYPE_PITCHED_ALLOC_2DIMAGE_LINEAR_PITCH_EXP_INFO);
707+
708+
imgProps.pNext = &pitchInfo;
709+
710+
auto result = device->getDeviceImageProperties(&imgProps);
711+
EXPECT_EQ(ZE_RESULT_SUCCESS, result);
712+
713+
EXPECT_EQ(64u, pitchInfo.pitchAlign);
714+
EXPECT_EQ(256u * 1024u, pitchInfo.maxSupportedPitch);
715+
}
716+
663717
struct DeviceTest : public ::testing::Test {
664718
void SetUp() override {
665719
debugManager.flags.CreateMultipleRootDevices.set(numRootDevices);

level_zero/include/level_zero/driver_experimental/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
#
66

77
set(L0_API_DRIVER_EXPERIMENTAL_INCLUDE_FILES
8-
${CMAKE_CURRENT_SOURCE_DIR}/ze_bindless_image_exp.h
98
${CMAKE_CURRENT_SOURCE_DIR}/zex_api.h
109
${CMAKE_CURRENT_SOURCE_DIR}/zex_cmdlist.h
1110
${CMAKE_CURRENT_SOURCE_DIR}/zex_common.h

level_zero/include/level_zero/driver_experimental/ze_bindless_image_exp.h

Lines changed: 0 additions & 74 deletions
This file was deleted.

scripts/packaging/l0_gpu_driver/sles_15/SPECS/l0_gpu_driver.spec

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ fi
127127
%{_includedir}/level_zero/ze_intel_gpu.h
128128
%{_includedir}/level_zero/ze_intel_results.h
129129
%{_includedir}/level_zero/ze_stypes.h
130-
%{_includedir}/level_zero/driver_experimental/ze_bindless_image_exp.h
131130
%{_includedir}/level_zero/driver_experimental/zex_api.h
132131
%{_includedir}/level_zero/driver_experimental/zex_cmdlist.h
133132
%{_includedir}/level_zero/driver_experimental/zex_context.h

scripts/packaging/l0_gpu_driver/ubuntu_20.04/debian/intel-level-zero-gpu-devel.install

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ usr/include/level_zero/zet_intel_gpu_debug.h
22
usr/include/level_zero/ze_intel_gpu.h
33
usr/include/level_zero/ze_intel_results.h
44
usr/include/level_zero/ze_stypes.h
5-
usr/include/level_zero/driver_experimental/ze_bindless_image_exp.h
65
usr/include/level_zero/driver_experimental/zex_api.h
76
usr/include/level_zero/driver_experimental/zex_cmdlist.h
87
usr/include/level_zero/driver_experimental/zex_context.h

scripts/packaging/ubuntu/debian/libze-intel-gpu-dev.install

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ usr/include/level_zero/zet_intel_gpu_debug.h
22
usr/include/level_zero/ze_intel_gpu.h
33
usr/include/level_zero/ze_intel_results.h
44
usr/include/level_zero/ze_stypes.h
5-
usr/include/level_zero/driver_experimental/ze_bindless_image_exp.h
65
usr/include/level_zero/driver_experimental/zex_api.h
76
usr/include/level_zero/driver_experimental/zex_cmdlist.h
87
usr/include/level_zero/driver_experimental/zex_context.h

0 commit comments

Comments
 (0)