Enable support for half_float images on BCS OCL

Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-4692
This commit is contained in:
Kamil Kopryk 2021-07-26 00:08:39 +00:00 committed by Compute-Runtime-Automation
parent ad5735c60b
commit 88c6c9def8
2 changed files with 5 additions and 23 deletions

View File

@ -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 {

View File

@ -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);