Cleanup images pitch programming OCL

Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-4692
This commit is contained in:
Kamil Kopryk 2021-07-19 18:29:46 +00:00 committed by Compute-Runtime-Automation
parent 0eb85bfa95
commit 30151a8f02
7 changed files with 18 additions and 19 deletions

View File

@ -419,10 +419,10 @@ class BuiltInOp<EBuiltInOps::CopyBufferToImage3d> : public BuiltinDispatchInfoBu
size_t region[] = {operationParams.size.x, operationParams.size.y, operationParams.size.z};
auto srcRowPitch = operationParams.dstRowPitch ? operationParams.dstRowPitch : region[0] * bytesPerPixel;
auto srcRowPitch = operationParams.srcRowPitch ? operationParams.srcRowPitch : region[0] * bytesPerPixel;
auto srcSlicePitch =
operationParams.dstSlicePitch ? operationParams.dstSlicePitch : ((dstImage->getImageDesc().image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY ? 1 : region[1]) * srcRowPitch);
operationParams.srcSlicePitch ? operationParams.srcSlicePitch : ((dstImage->getImageDesc().image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY ? 1 : region[1]) * srcRowPitch);
// Determine size of host ptr surface for residency purposes
size_t hostPtrSize = operationParams.srcPtr ? Image::calculateHostPtrSize(region, srcRowPitch, srcSlicePitch, bytesPerPixel, dstImage->getImageDesc().image_type) : 0;
@ -535,10 +535,10 @@ class BuiltInOp<EBuiltInOps::CopyImage3dToBuffer> : public BuiltinDispatchInfoBu
size_t region[] = {operationParams.size.x, operationParams.size.y, operationParams.size.z};
auto dstRowPitch = operationParams.srcRowPitch ? operationParams.srcRowPitch : region[0] * bytesPerPixel;
auto dstRowPitch = operationParams.dstRowPitch ? operationParams.dstRowPitch : region[0] * bytesPerPixel;
auto dstSlicePitch =
operationParams.srcSlicePitch ? operationParams.srcSlicePitch : ((srcImage->getImageDesc().image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY ? 1 : region[1]) * dstRowPitch);
operationParams.dstSlicePitch ? operationParams.dstSlicePitch : ((srcImage->getImageDesc().image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY ? 1 : region[1]) * dstRowPitch);
// Determine size of host ptr surface for residency purposes
size_t hostPtrSize = operationParams.dstPtr ? Image::calculateHostPtrSize(region, dstRowPitch, dstSlicePitch, bytesPerPixel, srcImage->getImageDesc().image_type) : 0;

View File

@ -95,8 +95,8 @@ cl_int CommandQueueHw<GfxFamily>::enqueueReadImage(
dc.dstOffset.x = dstPtrOffset;
dc.srcOffset = origin;
dc.size = region;
dc.srcRowPitch = (srcImage->getImageDesc().image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY) ? inputSlicePitch : inputRowPitch;
dc.srcSlicePitch = inputSlicePitch;
dc.dstRowPitch = (srcImage->getImageDesc().image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY) ? inputSlicePitch : inputRowPitch;
dc.dstSlicePitch = inputSlicePitch;
if (isMipMapped(srcImage->getImageDesc())) {
dc.srcMipLevel = findMipLevel(srcImage->getImageDesc().image_type, origin);
}

View File

@ -84,8 +84,8 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteImage(
dc.dstMemObj = dstImage;
dc.dstOffset = origin;
dc.size = region;
dc.dstRowPitch = ((dstImage->getImageDesc().image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY) && (inputSlicePitch > inputRowPitch)) ? inputSlicePitch : inputRowPitch;
dc.dstSlicePitch = inputSlicePitch;
dc.srcRowPitch = ((dstImage->getImageDesc().image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY) && (inputSlicePitch > inputRowPitch)) ? inputSlicePitch : inputRowPitch;
dc.srcSlicePitch = inputSlicePitch;
if (isMipMapped(dstImage->getImageDesc())) {
dc.dstMipLevel = findMipLevel(dstImage->getImageDesc().image_type, origin);
}

View File

@ -182,10 +182,10 @@ struct ClBlitProperties {
}
static void setBlitPropertiesForImage(BlitProperties &blitProperties, const BuiltinOpParams &builtinOpParams) {
size_t srcRowPitch = builtinOpParams.dstRowPitch;
size_t dstRowPitch = builtinOpParams.srcRowPitch;
size_t srcSlicePitch = builtinOpParams.dstSlicePitch;
size_t dstSlicePitch = builtinOpParams.srcSlicePitch;
size_t srcRowPitch = builtinOpParams.srcRowPitch;
size_t dstRowPitch = builtinOpParams.dstRowPitch;
size_t srcSlicePitch = builtinOpParams.srcSlicePitch;
size_t dstSlicePitch = builtinOpParams.dstSlicePitch;
if (blitProperties.blitDirection == BlitterConstants::BlitDirection::ImageToHostPtr) {
adjustBlitPropertiesForImage(builtinOpParams.srcMemObj, blitProperties.srcSize, blitProperties.bytesPerPixel,

View File

@ -614,7 +614,7 @@ HWTEST_F(EnqueueReadImageTest, GivenImage1DarrayWhenReadImageIsCalledThenRowPitc
auto &mockBuilder = static_cast<MockBuiltinDispatchInfoBuilder &>(BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(copyBuiltIn,
pCmdQ->getClDevice()));
auto params = mockBuilder.getBuiltinOpParams();
EXPECT_EQ(params->srcRowPitch, slicePitch);
EXPECT_EQ(params->dstRowPitch, slicePitch);
// restore original builder and retrieve mock builder
auto newBuilder = builtIns->setBuiltinDispatchInfoBuilder(

View File

@ -299,7 +299,7 @@ HWTEST_F(EnqueueWriteImageTest, GivenImage1DarrayWhenWriteImageIsCalledThenRowPi
auto &mockBuilder = static_cast<MockBuiltinDispatchInfoBuilder &>(BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(copyBuiltIn,
pCmdQ->getClDevice()));
auto params = mockBuilder.getBuiltinOpParams();
EXPECT_EQ(params->dstRowPitch, slicePitch);
EXPECT_EQ(params->srcRowPitch, slicePitch);
// restore original builder and retrieve mock builder
auto newBuilder = builtIns->setBuiltinDispatchInfoBuilder(

View File

@ -1463,9 +1463,8 @@ HWTEST_F(BcsTests, givenHostPtrToImageWithInputRowSlicePitchesWhenConstructPrope
builtinOpParams.size = {2, 3, 1};
auto inputRowPitch = 0x20u;
auto inputSlicePitch = 0x400u;
builtinOpParams.dstRowPitch = inputRowPitch;
builtinOpParams.dstSlicePitch = inputSlicePitch;
builtinOpParams.srcRowPitch = inputRowPitch;
builtinOpParams.srcSlicePitch = inputSlicePitch;
auto dstRowPitchExpected = image.get()->getImageDesc().image_row_pitch;
auto dstSlicePitchExpected = image.get()->getImageDesc().image_slice_pitch;
@ -1491,8 +1490,8 @@ HWTEST_F(BcsTests, givenImageToHostPtrWithInputRowSlicePitchesWhenConstructPrope
builtinOpParams.size = {2, 3, 1};
auto inputRowPitch = 0x20u;
auto inputSlicePitch = 0x400u;
builtinOpParams.srcRowPitch = inputRowPitch;
builtinOpParams.srcSlicePitch = inputSlicePitch;
builtinOpParams.dstRowPitch = inputRowPitch;
builtinOpParams.dstSlicePitch = inputSlicePitch;
auto srcRowPitchExpected = image.get()->getImageDesc().image_row_pitch;
auto srcSlicePitchExpected = image.get()->getImageDesc().image_slice_pitch;