Skip to content

Commit 0a9f653

Browse files
Fix cl_properties for image 2D array
Signed-off-by: Kamil Kopryk <[email protected]> Related-To: NEO-4692
1 parent 10cff46 commit 0a9f653

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

opencl/source/helpers/cl_blit_properties.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,10 @@ struct ClBlitProperties {
165165
auto image_height = image->getImageDesc().image_height;
166166
auto image_depth = image->getImageDesc().image_depth;
167167

168+
if (image->getImageDesc().image_type == CL_MEM_OBJECT_IMAGE2D_ARRAY) {
169+
image_depth = std::max(image_depth, image->getImageDesc().image_array_size);
170+
}
171+
168172
size.x = image_width;
169173
size.y = image_height ? image_height : 1;
170174
size.z = image_depth ? image_depth : 1;

opencl/test/unit_test/command_stream/command_stream_receiver_hw_2_tests.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,6 +1306,26 @@ HWTEST_F(BcsTests, givenImage1DWhenAdjustBlitPropertiesForImageIsCalledThenValue
13061306
EXPECT_EQ(expectedBytesPerPixel, bytesPerPixel);
13071307
}
13081308

1309+
HWTEST_F(BcsTests, givenImage2DArrayWhenAdjustBlitPropertiesForImageIsCalledThenValuesAreSetCorrectly) {
1310+
cl_image_desc imgDesc = Image1dDefaults::imageDesc;
1311+
imgDesc.image_width = 10u;
1312+
imgDesc.image_height = 3u;
1313+
imgDesc.image_depth = 0u;
1314+
imgDesc.image_array_size = 4u;
1315+
imgDesc.image_type = CL_MEM_OBJECT_IMAGE2D_ARRAY;
1316+
std::unique_ptr<Image> image(Image2dArrayHelper<>::create(context.get(), &imgDesc));
1317+
Vec3<size_t> size{0, 0, 0};
1318+
size_t bytesPerPixel = 0u;
1319+
size_t expectedBytesPerPixel = image->getSurfaceFormatInfo().surfaceFormat.ImageElementSizeInBytes;
1320+
1321+
ClBlitProperties::adjustBlitPropertiesForImage(image.get(), size, bytesPerPixel);
1322+
1323+
EXPECT_EQ(imgDesc.image_width, size.x);
1324+
EXPECT_EQ(imgDesc.image_height, size.y);
1325+
EXPECT_EQ(imgDesc.image_array_size, size.z);
1326+
EXPECT_EQ(expectedBytesPerPixel, bytesPerPixel);
1327+
}
1328+
13091329
HWTEST_F(BcsTests, givenHostPtrToImageWhenConstructPropertiesIsCalledThenValuesAreSetCorrectly) {
13101330
void *hostPtr = reinterpret_cast<void *>(0x12340000);
13111331
cl_image_desc imgDesc = Image2dDefaults::imageDesc;

0 commit comments

Comments
 (0)