From 88c6c9def88f8dbc63fc69934cf920e40d4e734f Mon Sep 17 00:00:00 2001 From: Kamil Kopryk Date: Mon, 26 Jul 2021 00:08:39 +0000 Subject: [PATCH] Enable support for half_float images on BCS OCL Signed-off-by: Kamil Kopryk Related-To: NEO-4692 --- opencl/source/command_queue/command_queue.cpp | 11 +++++------ .../command_queue/command_queue_tests.cpp | 17 ----------------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/opencl/source/command_queue/command_queue.cpp b/opencl/source/command_queue/command_queue.cpp index 110d9047da..98e88bf65d 100644 --- a/opencl/source/command_queue/command_queue.cpp +++ b/opencl/source/command_queue/command_queue.cpp @@ -767,17 +767,16 @@ bool CommandQueue::blitEnqueuePreferred(cl_command_type cmdType, const BuiltinOp bool CommandQueue::blitEnqueueImageAllowed(const size_t *origin, const size_t *region, const Image &image) { const auto &hwInfo = device->getHardwareInfo(); const auto &hwHelper = HwHelper::get(hwInfo.platform.eRenderCoreFamily); - auto blitEnqueuImageAllowed = hwHelper.isBlitterForImagesSupported(hwInfo); + auto blitEnqueueImageAllowed = hwHelper.isBlitterForImagesSupported(hwInfo); if (DebugManager.flags.EnableBlitterForReadWriteImage.get() != -1) { - blitEnqueuImageAllowed = DebugManager.flags.EnableBlitterForReadWriteImage.get(); + blitEnqueueImageAllowed = DebugManager.flags.EnableBlitterForReadWriteImage.get(); } - blitEnqueuImageAllowed &= (origin[0] + region[0] <= BlitterConstants::maxBlitWidth) && (origin[1] + region[1] <= BlitterConstants::maxBlitHeight); - blitEnqueuImageAllowed &= !isMipMapped(image.getImageDesc()); - blitEnqueuImageAllowed &= !(image.getImageFormat().image_channel_data_type == CL_HALF_FLOAT); + blitEnqueueImageAllowed &= (origin[0] + region[0] <= BlitterConstants::maxBlitWidth) && (origin[1] + region[1] <= BlitterConstants::maxBlitHeight); + blitEnqueueImageAllowed &= !isMipMapped(image.getImageDesc()); - return blitEnqueuImageAllowed; + return blitEnqueueImageAllowed; } bool CommandQueue::isBlockedCommandStreamRequired(uint32_t commandType, const EventsRequest &eventsRequest, bool blockedQueue) const { diff --git a/opencl/test/unit_test/command_queue/command_queue_tests.cpp b/opencl/test/unit_test/command_queue/command_queue_tests.cpp index 4cd71ff4ab..ba5433ee83 100644 --- a/opencl/test/unit_test/command_queue/command_queue_tests.cpp +++ b/opencl/test/unit_test/command_queue/command_queue_tests.cpp @@ -1353,23 +1353,6 @@ TEST(CommandQueue, givenMipMappedImageWhenCallingBlitEnqueueImageAllowedThenCorr EXPECT_FALSE(queue.blitEnqueueImageAllowed(correctOrigin, correctRegion, image)); } -TEST(CommandQueue, givenHalfFloatImageWhenCallingBlitEnqueueImageAllowedThenCorrectResultIsReturned) { - DebugManagerStateRestore restorer; - DebugManager.flags.EnableBlitterForReadWriteImage.set(1); - MockContext context{}; - MockCommandQueue queue(&context, context.getDevice(0), 0, false); - - size_t correctRegion[3] = {10u, 10u, 0}; - size_t correctOrigin[3] = {1u, 1u, 0}; - MockImageBase image; - - image.imageFormat.image_channel_data_type = CL_HALF_FLOAT; - EXPECT_FALSE(queue.blitEnqueueImageAllowed(correctOrigin, correctRegion, image)); - - image.imageFormat.image_channel_data_type = CL_UNORM_INT8; - EXPECT_TRUE(queue.blitEnqueueImageAllowed(correctOrigin, correctRegion, image)); -} - TEST(CommandQueue, givenImageWithDifferentImageTypesWhenCallingBlitEnqueueImageAllowedThenCorrectResultIsReturned) { DebugManagerStateRestore restorer; DebugManager.flags.EnableBlitterForReadWriteImage.set(1);