Skip to content

Commit 18b06eb

Browse files
Revert "Extend image functionality"
Signed-off-by: Kamil Diedrich <kamil.diedrich@intel.com>
1 parent 7fc348d commit 18b06eb

File tree

19 files changed

+123
-893
lines changed

19 files changed

+123
-893
lines changed

level_zero/api/core/ze_core_loader.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,6 @@ zeGetImageExpProcAddrTable(
597597

598598
ze_result_t result = ZE_RESULT_SUCCESS;
599599
pDdiTable->pfnGetMemoryPropertiesExp = zeImageGetMemoryPropertiesExp;
600-
pDdiTable->pfnViewCreateExp = zeImageViewCreateExp;
601600
driver_ddiTable.core_ddiTable.ImageExp = *pDdiTable;
602601
return result;
603602
}

level_zero/api/extensions/public/ze_exp_ext.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,6 @@ zeImageGetMemoryPropertiesExp(
3030
return L0::Image::fromHandle(hImage)->getMemoryProperties(pMemoryProperties);
3131
}
3232

33-
ZE_APIEXPORT ze_result_t ZE_APICALL
34-
zeImageViewCreateExp(
35-
ze_context_handle_t hContext,
36-
ze_device_handle_t hDevice,
37-
const ze_image_desc_t *desc,
38-
ze_image_handle_t hImage,
39-
ze_image_handle_t *phImageView) {
40-
return L0::Image::fromHandle(hImage)->createView(L0::Device::fromHandle(hDevice), desc, phImageView);
41-
}
42-
4333
#if defined(__cplusplus)
4434
} // extern "C"
4535
#endif

level_zero/core/source/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ set(L0_RUNTIME_SOURCES
5252
${CMAKE_CURRENT_SOURCE_DIR}/helpers/api_specific_config_l0.cpp
5353
${CMAKE_CURRENT_SOURCE_DIR}/helpers/implicit_scaling_l0.cpp
5454
${CMAKE_CURRENT_SOURCE_DIR}/helpers/l0_populate_factory.h
55-
${CMAKE_CURRENT_SOURCE_DIR}/helpers/properties_parser.h
5655
${CMAKE_CURRENT_SOURCE_DIR}/hw_helpers${BRANCH_DIR_SUFFIX}/hw_helpers.h
5756
${CMAKE_CURRENT_SOURCE_DIR}/hw_helpers/l0_hw_helper_base.inl
5857
${CMAKE_CURRENT_SOURCE_DIR}/hw_helpers/l0_hw_helper_skl_plus.inl

level_zero/core/source/helpers/properties_parser.h

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

level_zero/core/source/image/image.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ struct _ze_image_handle_t {};
1616

1717
namespace NEO {
1818
struct ImageInfo;
19-
struct ImageDescriptor;
20-
} // namespace NEO
19+
}
2120

2221
namespace L0 {
22+
2323
struct Image : _ze_image_handle_t {
2424
template <typename Type>
2525
struct Allocator {
@@ -31,8 +31,6 @@ struct Image : _ze_image_handle_t {
3131

3232
static ze_result_t create(uint32_t productFamily, Device *device, const ze_image_desc_t *desc, Image **pImage);
3333

34-
virtual ze_result_t createView(Device *device, const ze_image_desc_t *desc, ze_image_handle_t *pImage) = 0;
35-
3634
virtual NEO::GraphicsAllocation *getAllocation() = 0;
3735
virtual void copySurfaceStateToSSH(void *surfaceStateHeap,
3836
const uint32_t surfaceStateOffset,

level_zero/core/source/image/image_hw.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "level_zero/core/source/image/image_imp.h"
1616

1717
namespace L0 {
18+
1819
template <GFXCORE_FAMILY gfxCoreFamily>
1920
struct ImageCoreFamily : public ImageImp {
2021
using GfxFamily = typename NEO::GfxFamilyMapper<gfxCoreFamily>::GfxFamily;

level_zero/core/source/image/image_hw.inl

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,18 @@
1616
#include "shared/source/memory_manager/memory_manager.h"
1717
#include "shared/source/utilities/compiler_support.h"
1818

19-
#include "level_zero/core/source/helpers/properties_parser.h"
2019
#include "level_zero/core/source/image/image_formats.h"
2120
#include "level_zero/core/source/image/image_hw.h"
2221

2322
namespace L0 {
24-
2523
template <GFXCORE_FAMILY gfxCoreFamily>
2624
ze_result_t ImageCoreFamily<gfxCoreFamily>::initialize(Device *device, const ze_image_desc_t *desc) {
2725
using RENDER_SURFACE_STATE = typename GfxFamily::RENDER_SURFACE_STATE;
2826

29-
StructuresLookupTable lookupTable = {};
30-
auto parseResult = prepareL0StructuresLookupTable(lookupTable, desc);
31-
32-
if (parseResult != ZE_RESULT_SUCCESS) {
33-
return parseResult;
34-
}
35-
3627
bool isMediaFormatLayout = isMediaFormat(desc->format.layout);
3728

38-
imgInfo.imgDesc = lookupTable.imageProperties.imageDescriptor;
29+
auto imageDescriptor = convertDescriptor(*desc);
30+
imgInfo.imgDesc = imageDescriptor;
3931

4032
imgInfo.surfaceFormat = &ImageFormats::formats[desc->format.layout][desc->format.type];
4133
imageFormatDesc = *const_cast<ze_image_desc_t *>(desc);
@@ -65,36 +57,34 @@ ze_result_t ImageCoreFamily<gfxCoreFamily>::initialize(Device *device, const ze_
6557
}
6658

6759
imgInfo.linearStorage = surfaceType == RENDER_SURFACE_STATE::SURFACE_TYPE_SURFTYPE_1D;
68-
imgInfo.plane = isImageView ? static_cast<GMM_YUV_PLANE>(lookupTable.imageProperties.planeIndex + 1u) : GMM_NO_PLANE;
60+
imgInfo.plane = GMM_NO_PLANE;
6961
imgInfo.useLocalMemory = false;
7062
imgInfo.preferRenderCompression = false;
7163

72-
if (!isImageView) {
73-
if (lookupTable.isSharedHandle) {
74-
if (!lookupTable.sharedHandleType.isSupportedHandle) {
64+
if (desc->pNext) {
65+
const ze_base_desc_t *extendedDesc = reinterpret_cast<const ze_base_desc_t *>(desc->pNext);
66+
if (extendedDesc->stype == ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_EXPORT_DESC) {
67+
return ZE_RESULT_ERROR_UNSUPPORTED_ENUMERATION;
68+
} else if (extendedDesc->stype == ZE_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMPORT_FD) {
69+
const ze_external_memory_import_fd_t *externalMemoryImportDesc =
70+
reinterpret_cast<const ze_external_memory_import_fd_t *>(extendedDesc);
71+
if (externalMemoryImportDesc->flags & ZE_EXTERNAL_MEMORY_TYPE_FLAG_OPAQUE_FD) {
7572
return ZE_RESULT_ERROR_UNSUPPORTED_ENUMERATION;
7673
}
77-
if (lookupTable.sharedHandleType.isDMABUFHandle) {
78-
NEO::AllocationProperties properties(device->getRootDeviceIndex(), true, imgInfo, NEO::GraphicsAllocation::AllocationType::SHARED_IMAGE, device->getNEODevice()->getDeviceBitfield());
79-
allocation = device->getNEODevice()->getMemoryManager()->createGraphicsAllocationFromSharedHandle(lookupTable.sharedHandleType.fd, properties, false, false);
80-
device->getNEODevice()->getMemoryManager()->closeSharedHandle(allocation);
81-
} else if (lookupTable.sharedHandleType.isNTHandle) {
82-
auto verifyResult = device->getNEODevice()->getMemoryManager()->verifyHandle(NEO::toOsHandle(lookupTable.sharedHandleType.ntHnadle), device->getNEODevice()->getRootDeviceIndex(), true);
83-
if (!verifyResult) {
84-
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
85-
}
86-
allocation = device->getNEODevice()->getMemoryManager()->createGraphicsAllocationFromNTHandle(lookupTable.sharedHandleType.ntHnadle, device->getNEODevice()->getRootDeviceIndex());
87-
}
88-
} else {
89-
NEO::AllocationProperties properties(device->getRootDeviceIndex(), true, imgInfo, NEO::GraphicsAllocation::AllocationType::IMAGE, device->getNEODevice()->getDeviceBitfield());
9074

91-
allocation = device->getNEODevice()->getMemoryManager()->allocateGraphicsMemoryWithProperties(properties);
92-
}
93-
if (allocation == nullptr) {
94-
return ZE_RESULT_ERROR_OUT_OF_DEVICE_MEMORY;
75+
NEO::AllocationProperties properties(device->getRootDeviceIndex(), true, imgInfo, NEO::GraphicsAllocation::AllocationType::SHARED_IMAGE, device->getNEODevice()->getDeviceBitfield());
76+
77+
allocation = device->getNEODevice()->getMemoryManager()->createGraphicsAllocationFromSharedHandle(externalMemoryImportDesc->fd, properties, false, false);
78+
device->getNEODevice()->getMemoryManager()->closeSharedHandle(allocation);
79+
} else {
80+
return ZE_RESULT_ERROR_UNSUPPORTED_ENUMERATION;
9581
}
96-
}
82+
} else {
83+
NEO::AllocationProperties properties(device->getRootDeviceIndex(), true, imgInfo, NEO::GraphicsAllocation::AllocationType::IMAGE, device->getNEODevice()->getDeviceBitfield());
9784

85+
allocation = device->getNEODevice()->getMemoryManager()->allocateGraphicsMemoryWithProperties(properties);
86+
}
87+
UNRECOVERABLE_IF(allocation == nullptr);
9888
auto gmm = this->allocation->getDefaultGmm();
9989
auto gmmHelper = static_cast<const NEO::RootDeviceEnvironment &>(device->getNEODevice()->getRootDeviceEnvironment()).getGmmHelper();
10090

level_zero/core/source/image/image_imp.cpp

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace L0 {
1616
ImageAllocatorFn imageFactory[IGFX_MAX_PRODUCT] = {};
1717

1818
ImageImp::~ImageImp() {
19-
if (!isImageView && this->device != nullptr) {
19+
if (this->device != nullptr) {
2020
this->device->getNEODevice()->getMemoryManager()->freeGraphicsMemory(this->allocation);
2121
}
2222
}
@@ -26,29 +26,6 @@ ze_result_t ImageImp::destroy() {
2626
return ZE_RESULT_SUCCESS;
2727
}
2828

29-
ze_result_t ImageImp::createView(Device *device, const ze_image_desc_t *desc, ze_image_handle_t *pImage) {
30-
auto productFamily = device->getNEODevice()->getHardwareInfo().platform.eProductFamily;
31-
32-
ImageAllocatorFn allocator = nullptr;
33-
allocator = imageFactory[productFamily];
34-
35-
ImageImp *image = nullptr;
36-
37-
image = static_cast<ImageImp *>((*allocator)());
38-
image->isImageView = true;
39-
image->allocation = allocation;
40-
auto result = image->initialize(device, desc);
41-
42-
if (result != ZE_RESULT_SUCCESS) {
43-
image->destroy();
44-
image = nullptr;
45-
}
46-
47-
*pImage = image;
48-
49-
return result;
50-
}
51-
5229
ze_result_t Image::create(uint32_t productFamily, Device *device, const ze_image_desc_t *desc, Image **pImage) {
5330
ze_result_t result = ZE_RESULT_SUCCESS;
5431
ImageAllocatorFn allocator = nullptr;

level_zero/core/source/image/image_imp.h

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ struct ImageImp : public Image {
2626
return imageFormatDesc;
2727
}
2828

29-
ze_result_t createView(Device *device, const ze_image_desc_t *desc, ze_image_handle_t *pImage) override;
30-
3129
ze_result_t getMemoryProperties(ze_image_memory_properties_exp_t *pMemoryProperties) override {
3230
pMemoryProperties->rowPitch = imgInfo.rowPitch;
3331
pMemoryProperties->slicePitch = imgInfo.slicePitch;
@@ -36,8 +34,42 @@ struct ImageImp : public Image {
3634
return ZE_RESULT_SUCCESS;
3735
}
3836

37+
static NEO::ImageType convertType(const ze_image_type_t type) {
38+
switch (type) {
39+
case ZE_IMAGE_TYPE_2D:
40+
return NEO::ImageType::Image2D;
41+
case ZE_IMAGE_TYPE_3D:
42+
return NEO::ImageType::Image3D;
43+
case ZE_IMAGE_TYPE_2DARRAY:
44+
return NEO::ImageType::Image2DArray;
45+
case ZE_IMAGE_TYPE_1D:
46+
return NEO::ImageType::Image1D;
47+
case ZE_IMAGE_TYPE_1DARRAY:
48+
return NEO::ImageType::Image1DArray;
49+
case ZE_IMAGE_TYPE_BUFFER:
50+
return NEO::ImageType::Image1DBuffer;
51+
default:
52+
break;
53+
}
54+
return NEO::ImageType::Invalid;
55+
}
56+
57+
static NEO::ImageDescriptor convertDescriptor(const ze_image_desc_t &imageDesc) {
58+
NEO::ImageDescriptor desc = {};
59+
desc.fromParent = false;
60+
desc.imageArraySize = imageDesc.arraylevels;
61+
desc.imageDepth = imageDesc.depth;
62+
desc.imageHeight = imageDesc.height;
63+
desc.imageRowPitch = 0u;
64+
desc.imageSlicePitch = 0u;
65+
desc.imageType = convertType(imageDesc.type);
66+
desc.imageWidth = imageDesc.width;
67+
desc.numMipLevels = imageDesc.miplevels;
68+
desc.numSamples = 0u;
69+
return desc;
70+
}
71+
3972
protected:
40-
bool isImageView = false;
4173
Device *device = nullptr;
4274
NEO::ImageInfo imgInfo = {};
4375
NEO::GraphicsAllocation *allocation = nullptr;

level_zero/core/test/black_box_tests/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
2222
zello_fence
2323
zello_printf
2424
zello_image
25-
zello_image_view
2625
)
2726

2827
include_directories(common)
@@ -59,7 +58,6 @@ if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
5958
target_link_libraries(zello_scratch PUBLIC ocloc_lib)
6059
target_link_libraries(zello_fence PUBLIC ocloc_lib)
6160
target_link_libraries(zello_printf PUBLIC ocloc_lib)
62-
target_link_libraries(zello_image_view PUBLIC ocloc_lib)
6361
if(UNIX)
6462
target_link_libraries(zello_world_global_work_offset PUBLIC ocloc_lib)
6563
endif()

0 commit comments

Comments
 (0)