From a19fa245ab287ae7fde7d16c593e2f0b41f37f05 Mon Sep 17 00:00:00 2001 From: Maciej Plewka Date: Thu, 8 May 2025 15:45:44 +0000 Subject: [PATCH] fix: Abort for blit usage on depth image on ARL Related-To: NEO-14344 Signed-off-by: Maciej Plewka --- opencl/source/helpers/cl_blit_properties.h | 9 ++- .../command_stream_receiver_hw_2_tests.cpp | 78 +++++++++++++++++++ shared/source/helpers/blit_properties.h | 1 + shared/source/release_helper/release_helper.h | 2 + .../release_helper/release_helper_1274.cpp | 5 ++ .../release_helper/release_helper_base.inl | 4 + .../test/common/mocks/mock_release_helper.h | 1 + .../release_helper_12_55_tests.cpp | 4 + .../release_helper_12_56_tests.cpp | 4 + .../release_helper_12_57_tests.cpp | 4 + .../release_helper_12_60_tests.cpp | 4 + .../release_helper_12_61_tests.cpp | 4 + .../release_helper_12_70_tests.cpp | 4 + .../release_helper_12_71_tests.cpp | 4 + .../release_helper_12_74_tests.cpp | 8 ++ .../release_helper_20_01_tests.cpp | 4 + .../release_helper_20_04_tests.cpp | 4 + .../release_helper_30_00_tests.cpp | 4 + .../release_helper_30_01_tests.cpp | 4 + .../release_helper_tests_base.cpp | 10 ++- .../release_helper_tests_base.h | 3 +- 21 files changed, 161 insertions(+), 4 deletions(-) diff --git a/opencl/source/helpers/cl_blit_properties.h b/opencl/source/helpers/cl_blit_properties.h index c22ef077d5..1d48685640 100644 --- a/opencl/source/helpers/cl_blit_properties.h +++ b/opencl/source/helpers/cl_blit_properties.h @@ -8,6 +8,7 @@ #pragma once #include "shared/source/command_stream/command_stream_receiver.h" #include "shared/source/helpers/blit_properties.h" +#include "shared/source/release_helper/release_helper.h" #include "opencl/source/built_ins/builtins_dispatch_builder.h" #include "opencl/source/mem_obj/image.h" @@ -24,7 +25,8 @@ struct ClBlitProperties { auto rootDeviceIndex = commandStreamReceiver.getRootDeviceIndex(); auto clearColorAllocation = commandStreamReceiver.getClearColorAllocation(); BlitProperties blitProperties{}; - + auto releaseHelper = commandStreamReceiver.getReleaseHelper(); + bool isBlitAllowedForDepthImage = releaseHelper ? releaseHelper->isBlitImageAllowedForDepthFormat() : true; if (BlitterConstants::BlitDirection::bufferToBuffer == blitDirection || BlitterConstants::BlitDirection::imageToImage == blitDirection) { auto dstOffset = builtinOpParams.dstOffset.x; @@ -51,9 +53,9 @@ struct ClBlitProperties { builtinOpParams.size, builtinOpParams.srcRowPitch, builtinOpParams.srcSlicePitch, builtinOpParams.dstRowPitch, builtinOpParams.dstSlicePitch, clearColorAllocation); - if (BlitterConstants::BlitDirection::imageToImage == blitDirection) { blitProperties.blitDirection = blitDirection; + blitProperties.isBlitAllowedForDepthFormat = isBlitAllowedForDepthImage; setBlitPropertiesForImage(blitProperties, builtinOpParams); } blitProperties.transform1DArrayTo2DArrayIfNeeded(); @@ -140,6 +142,7 @@ struct ClBlitProperties { if (BlitterConstants::BlitDirection::hostPtrToImage == blitDirection || BlitterConstants::BlitDirection::imageToHostPtr == blitDirection) { + blitProperties.isBlitAllowedForDepthFormat = isBlitAllowedForDepthImage; setBlitPropertiesForImage(blitProperties, builtinOpParams); } @@ -180,6 +183,7 @@ struct ClBlitProperties { bool src1DBuffer = false, dst1DBuffer = false; if (srcImage) { + UNRECOVERABLE_IF(!blitProperties.isBlitAllowedForDepthFormat && Image::isDepthFormat(srcImage->getImageFormat())); const auto &imageDesc = srcImage->getImageDesc(); blitProperties.srcSize.x = imageDesc.image_width; blitProperties.srcSize.y = std::max(imageDesc.image_height, size_t(1)); @@ -200,6 +204,7 @@ struct ClBlitProperties { } if (dstImage) { + UNRECOVERABLE_IF(!blitProperties.isBlitAllowedForDepthFormat && Image::isDepthFormat(dstImage->getImageFormat())); const auto &imageDesc = dstImage->getImageDesc(); blitProperties.dstSize.x = imageDesc.image_width; blitProperties.dstSize.y = std::max(imageDesc.image_height, size_t(1)); diff --git a/opencl/test/unit_test/command_stream/command_stream_receiver_hw_2_tests.cpp b/opencl/test/unit_test/command_stream/command_stream_receiver_hw_2_tests.cpp index f930538099..57dd5233cf 100644 --- a/opencl/test/unit_test/command_stream/command_stream_receiver_hw_2_tests.cpp +++ b/opencl/test/unit_test/command_stream/command_stream_receiver_hw_2_tests.cpp @@ -25,6 +25,7 @@ #include "shared/test/common/mocks/mock_gmm_resource_info.h" #include "shared/test/common/mocks/mock_internal_allocation_storage.h" #include "shared/test/common/mocks/mock_memory_manager.h" +#include "shared/test/common/mocks/mock_release_helper.h" #include "shared/test/common/mocks/mock_timestamp_container.h" #include "shared/test/common/test_macros/test.h" #include "shared/test/common/utilities/base_object_utils.h" @@ -2206,6 +2207,83 @@ HWTEST_F(BcsTests, givenHostPtrToImageWhenBlitBufferIsCalledThenBlitCmdIsFound) auto cmdIterator = find(hwParser.cmdList.begin(), hwParser.cmdList.end()); EXPECT_NE(hwParser.cmdList.end(), cmdIterator); } + +HWTEST_F(BcsTests, givenSrcAndDstImageWhenDepthImageIsNotAllowedForBlitOperationThenAbortThrown) { + if (!pDevice->getHardwareInfo().capabilityTable.supportsImages) { + GTEST_SKIP(); + } + auto releaseHelper = std::unique_ptr(new MockReleaseHelper()); + releaseHelper->isBlitImageAllowedForDepthFormatResult = false; + pDevice->getRootDeviceEnvironmentRef().releaseHelper.reset(releaseHelper.release()); + cl_image_desc imgDesc = Image1dDefaults::imageDesc; + std::unique_ptr image(Image2dArrayHelper<>::create(context.get(), &imgDesc)); + + BlitProperties blitProperties{}; + EXPECT_EQ(GMM_YUV_PLANE_ENUM::GMM_NO_PLANE, blitProperties.dstPlane); + EXPECT_EQ(GMM_YUV_PLANE_ENUM::GMM_NO_PLANE, blitProperties.srcPlane); + + BuiltinOpParams builtinOpParams{}; + builtinOpParams.srcMemObj = image.get(); + builtinOpParams.dstMemObj = image.get(); + reinterpret_cast(image.get())->imageFormat = {CL_DEPTH, CL_UNSIGNED_INT8}; + builtinOpParams.size = {1, 1, 1}; + + auto &csr = pDevice->getUltCommandStreamReceiver(); + EXPECT_THROW(ClBlitProperties::constructProperties(BlitterConstants::BlitDirection::imageToImage, + csr, + builtinOpParams), + std::exception); +} +HWTEST_F(BcsTests, givenDstImageAreDepthDepthImageIsNotAllowedForBlitOperationThenAbortThrown) { + if (!pDevice->getHardwareInfo().capabilityTable.supportsImages) { + GTEST_SKIP(); + } + auto releaseHelper = std::unique_ptr(new MockReleaseHelper()); + releaseHelper->isBlitImageAllowedForDepthFormatResult = false; + pDevice->getRootDeviceEnvironmentRef().releaseHelper.reset(releaseHelper.release()); + cl_image_desc imgDesc = Image1dDefaults::imageDesc; + std::unique_ptr image(Image2dArrayHelper<>::create(context.get(), &imgDesc)); + + BlitProperties blitProperties{}; + EXPECT_EQ(GMM_YUV_PLANE_ENUM::GMM_NO_PLANE, blitProperties.dstPlane); + EXPECT_EQ(GMM_YUV_PLANE_ENUM::GMM_NO_PLANE, blitProperties.srcPlane); + + BuiltinOpParams builtinOpParams{}; + builtinOpParams.dstMemObj = image.get(); + reinterpret_cast(image.get())->imageFormat = {CL_DEPTH, CL_UNSIGNED_INT8}; + builtinOpParams.size = {1, 1, 1}; + + auto &csr = pDevice->getUltCommandStreamReceiver(); + EXPECT_THROW(ClBlitProperties::constructProperties(BlitterConstants::BlitDirection::hostPtrToImage, + csr, + builtinOpParams), + std::exception); +} +HWTEST_F(BcsTests, givenSrcImageWhenDepthImageIsNotAllowedForBlitOperationThenAbortThrown) { + if (!pDevice->getHardwareInfo().capabilityTable.supportsImages) { + GTEST_SKIP(); + } + auto releaseHelper = std::unique_ptr(new MockReleaseHelper()); + releaseHelper->isBlitImageAllowedForDepthFormatResult = false; + pDevice->getRootDeviceEnvironmentRef().releaseHelper.reset(releaseHelper.release()); + cl_image_desc imgDesc = Image1dDefaults::imageDesc; + std::unique_ptr image(Image2dArrayHelper<>::create(context.get(), &imgDesc)); + + BlitProperties blitProperties{}; + EXPECT_EQ(GMM_YUV_PLANE_ENUM::GMM_NO_PLANE, blitProperties.dstPlane); + EXPECT_EQ(GMM_YUV_PLANE_ENUM::GMM_NO_PLANE, blitProperties.srcPlane); + + BuiltinOpParams builtinOpParams{}; + builtinOpParams.srcMemObj = image.get(); + reinterpret_cast(image.get())->imageFormat = {CL_DEPTH, CL_UNSIGNED_INT8}; + builtinOpParams.size = {1, 1, 1}; + + auto &csr = pDevice->getUltCommandStreamReceiver(); + EXPECT_THROW(ClBlitProperties::constructProperties(BlitterConstants::BlitDirection::imageToHostPtr, + csr, + builtinOpParams), + std::exception); +} HWTEST_F(BcsTests, given1DTiledArrayImageWhenConstructPropertiesThenImageTransformedTo2DArray) { if (!pDevice->getHardwareInfo().capabilityTable.supportsImages) { GTEST_SKIP(); diff --git a/shared/source/helpers/blit_properties.h b/shared/source/helpers/blit_properties.h index 3ef487bc7c..547e1278b4 100644 --- a/shared/source/helpers/blit_properties.h +++ b/shared/source/helpers/blit_properties.h @@ -105,6 +105,7 @@ struct BlitProperties { GMM_YUV_PLANE_ENUM dstPlane = GMM_YUV_PLANE_ENUM::GMM_NO_PLANE; GMM_YUV_PLANE_ENUM srcPlane = GMM_YUV_PLANE_ENUM::GMM_NO_PLANE; bool isSystemMemoryPoolUsed = false; + bool isBlitAllowedForDepthFormat = true; }; } // namespace NEO diff --git a/shared/source/release_helper/release_helper.h b/shared/source/release_helper/release_helper.h index b1fecb8f36..6002c3d697 100644 --- a/shared/source/release_helper/release_helper.h +++ b/shared/source/release_helper/release_helper.h @@ -65,6 +65,7 @@ class ReleaseHelper { virtual bool isNumRtStacksPerDssFixedValue() const = 0; virtual bool getFtrXe2Compression() const = 0; virtual uint32_t computeSlmValues(uint32_t slmSize, bool isHeapless) const = 0; + virtual bool isBlitImageAllowedForDepthFormat() const = 0; protected: ReleaseHelper(HardwareIpVersion hardwareIpVersion) : hardwareIpVersion(hardwareIpVersion) {} @@ -109,6 +110,7 @@ class ReleaseHelperHw : public ReleaseHelper { bool isNumRtStacksPerDssFixedValue() const override; bool getFtrXe2Compression() const override; uint32_t computeSlmValues(uint32_t slmSize, bool isHeapless) const override; + bool isBlitImageAllowedForDepthFormat() const override; protected: ReleaseHelperHw(HardwareIpVersion hardwareIpVersion) : ReleaseHelper(hardwareIpVersion) {} diff --git a/shared/source/release_helper/release_helper_1274.cpp b/shared/source/release_helper/release_helper_1274.cpp index 1cc4e77697..4c076734a7 100644 --- a/shared/source/release_helper/release_helper_1274.cpp +++ b/shared/source/release_helper/release_helper_1274.cpp @@ -44,6 +44,11 @@ bool ReleaseHelperHw::getFtrXe2Compression() const { return false; } +template <> +bool ReleaseHelperHw::isBlitImageAllowedForDepthFormat() const { + return false; +} + template <> const SizeToPreferredSlmValueArray &ReleaseHelperHw::getSizeToPreferredSlmValue(bool isHeapless) const { using PREFERRED_SLM_ALLOCATION_SIZE = typename XeHpgCoreFamily::INTERFACE_DESCRIPTOR_DATA::PREFERRED_SLM_ALLOCATION_SIZE; diff --git a/shared/source/release_helper/release_helper_base.inl b/shared/source/release_helper/release_helper_base.inl index ebfe8f4351..fea9dbc975 100644 --- a/shared/source/release_helper/release_helper_base.inl +++ b/shared/source/release_helper/release_helper_base.inl @@ -171,5 +171,9 @@ template uint32_t ReleaseHelperHw::computeSlmValues(uint32_t slmSize, bool isHeapless) const { return 0u; } +template +bool ReleaseHelperHw::isBlitImageAllowedForDepthFormat() const { + return true; +} } // namespace NEO diff --git a/shared/test/common/mocks/mock_release_helper.h b/shared/test/common/mocks/mock_release_helper.h index e8cf7ecaa5..6e02d24d3c 100644 --- a/shared/test/common/mocks/mock_release_helper.h +++ b/shared/test/common/mocks/mock_release_helper.h @@ -39,6 +39,7 @@ class MockReleaseHelper : public ReleaseHelper { ADDMETHOD_CONST_NOBASE(isLocalOnlyAllowed, bool, {}, ()); ADDMETHOD_CONST_NOBASE(isDummyBlitWaRequired, bool, false, ()); ADDMETHOD_CONST_NOBASE(isNumRtStacksPerDssFixedValue, bool, true, ()); + ADDMETHOD_CONST_NOBASE(isBlitImageAllowedForDepthFormat, bool, true, ()); ADDMETHOD_CONST_NOBASE(getFtrXe2Compression, bool, false, ()); ADDMETHOD_CONST_NOBASE(isDirectSubmissionLightSupported, bool, false, ()); ADDMETHOD_CONST_NOBASE(computeSlmValues, uint32_t, {}, (uint32_t slmSize, bool isHeapless)); diff --git a/shared/test/unit_test/release_helper/release_helper_12_55_tests.cpp b/shared/test/unit_test/release_helper/release_helper_12_55_tests.cpp index 8327883fe5..c6565086bb 100644 --- a/shared/test/unit_test/release_helper/release_helper_12_55_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_12_55_tests.cpp @@ -73,6 +73,10 @@ TEST_F(ReleaseHelper1255Tests, whenIsDummyBlitWaRequiredCalledThenFalseReturned) whenIsDummyBlitWaRequiredCalledThenFalseReturned(); } +TEST_F(ReleaseHelper1255Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper1255Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_12_56_tests.cpp b/shared/test/unit_test/release_helper/release_helper_12_56_tests.cpp index bcfd330c61..1f16ec6dca 100644 --- a/shared/test/unit_test/release_helper/release_helper_12_56_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_12_56_tests.cpp @@ -73,6 +73,10 @@ TEST_F(ReleaseHelper1256Tests, whenIsDummyBlitWaRequiredCalledThenFalseReturned) whenIsDummyBlitWaRequiredCalledThenFalseReturned(); } +TEST_F(ReleaseHelper1256Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper1256Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_12_57_tests.cpp b/shared/test/unit_test/release_helper/release_helper_12_57_tests.cpp index 9355aa171c..ab5a43d210 100644 --- a/shared/test/unit_test/release_helper/release_helper_12_57_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_12_57_tests.cpp @@ -73,6 +73,10 @@ TEST_F(ReleaseHelper1257Tests, whenIsDummyBlitWaRequiredCalledThenFalseReturned) whenIsDummyBlitWaRequiredCalledThenFalseReturned(); } +TEST_F(ReleaseHelper1257Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper1257Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_12_60_tests.cpp b/shared/test/unit_test/release_helper/release_helper_12_60_tests.cpp index 57978cce38..3a609ec34e 100644 --- a/shared/test/unit_test/release_helper/release_helper_12_60_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_12_60_tests.cpp @@ -62,6 +62,10 @@ TEST_F(ReleaseHelper1260Tests, whenIsDummyBlitWaRequiredCalledThenTrueReturned) whenIsDummyBlitWaRequiredCalledThenTrueReturned(); } +TEST_F(ReleaseHelper1260Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper1260Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_12_61_tests.cpp b/shared/test/unit_test/release_helper/release_helper_12_61_tests.cpp index 6851793a4f..f377fc46e1 100644 --- a/shared/test/unit_test/release_helper/release_helper_12_61_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_12_61_tests.cpp @@ -61,6 +61,10 @@ TEST_F(ReleaseHelper1261Tests, whenIsDummyBlitWaRequiredCalledThenTrueReturned) whenIsDummyBlitWaRequiredCalledThenTrueReturned(); } +TEST_F(ReleaseHelper1261Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper1261Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_12_70_tests.cpp b/shared/test/unit_test/release_helper/release_helper_12_70_tests.cpp index 3500268507..023223bea0 100644 --- a/shared/test/unit_test/release_helper/release_helper_12_70_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_12_70_tests.cpp @@ -75,6 +75,10 @@ TEST_F(ReleaseHelper1270Tests, whenIsDummyBlitWaRequiredCalledThenTrueReturned) whenIsDummyBlitWaRequiredCalledThenTrueReturned(); } +TEST_F(ReleaseHelper1270Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper1270Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_12_71_tests.cpp b/shared/test/unit_test/release_helper/release_helper_12_71_tests.cpp index beb10f9875..41a6eaad38 100644 --- a/shared/test/unit_test/release_helper/release_helper_12_71_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_12_71_tests.cpp @@ -75,6 +75,10 @@ TEST_F(ReleaseHelper1271Tests, whenIsDummyBlitWaRequiredCalledThenTrueReturned) whenIsDummyBlitWaRequiredCalledThenTrueReturned(); } +TEST_F(ReleaseHelper1271Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper1271Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_12_74_tests.cpp b/shared/test/unit_test/release_helper/release_helper_12_74_tests.cpp index 7840df6214..a92c40c9a1 100644 --- a/shared/test/unit_test/release_helper/release_helper_12_74_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_12_74_tests.cpp @@ -101,3 +101,11 @@ TEST_F(ReleaseHelper1274Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorr EXPECT_EQ(13u, preferredSlmValueArray[5].valueToProgram); } } +TEST_F(ReleaseHelper1274Tests, whenIsBlitImageAllowedForDepthFormatCalledThenFalseReturned) { + for (auto &revision : getRevisions()) { + ipVersion.revision = revision; + releaseHelper = ReleaseHelper::create(ipVersion); + ASSERT_NE(nullptr, releaseHelper); + EXPECT_FALSE(releaseHelper->isBlitImageAllowedForDepthFormat()); + } +} \ No newline at end of file diff --git a/shared/test/unit_test/release_helper/release_helper_20_01_tests.cpp b/shared/test/unit_test/release_helper/release_helper_20_01_tests.cpp index bfc690594d..955940f59a 100644 --- a/shared/test/unit_test/release_helper/release_helper_20_01_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_20_01_tests.cpp @@ -72,6 +72,10 @@ TEST_F(ReleaseHelper2001Tests, whenIsDummyBlitWaRequiredCalledThenFalseReturned) whenIsDummyBlitWaRequiredCalledThenFalseReturned(); } +TEST_F(ReleaseHelper2001Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper2001Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_20_04_tests.cpp b/shared/test/unit_test/release_helper/release_helper_20_04_tests.cpp index a848906161..c1e11443f2 100644 --- a/shared/test/unit_test/release_helper/release_helper_20_04_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_20_04_tests.cpp @@ -74,6 +74,10 @@ TEST_F(ReleaseHelper2004Tests, whenIsDummyBlitWaRequiredCalledThenFalseReturned) whenIsDummyBlitWaRequiredCalledThenFalseReturned(); } +TEST_F(ReleaseHelper2004Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper2004Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_30_00_tests.cpp b/shared/test/unit_test/release_helper/release_helper_30_00_tests.cpp index 98147f27b4..44409e42d3 100644 --- a/shared/test/unit_test/release_helper/release_helper_30_00_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_30_00_tests.cpp @@ -76,6 +76,10 @@ TEST_F(ReleaseHelper3000Tests, whenIsDummyBlitWaRequiredCalledThenFalseReturned) whenIsDummyBlitWaRequiredCalledThenFalseReturned(); } +TEST_F(ReleaseHelper3000Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper3000Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_30_01_tests.cpp b/shared/test/unit_test/release_helper/release_helper_30_01_tests.cpp index 1543fa7953..fb2770cfc5 100644 --- a/shared/test/unit_test/release_helper/release_helper_30_01_tests.cpp +++ b/shared/test/unit_test/release_helper/release_helper_30_01_tests.cpp @@ -76,6 +76,10 @@ TEST_F(ReleaseHelper3001Tests, whenIsDummyBlitWaRequiredCalledThenFalseReturned) whenIsDummyBlitWaRequiredCalledThenFalseReturned(); } +TEST_F(ReleaseHelper3001Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned) { + whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); +} + TEST_F(ReleaseHelper3001Tests, whenGettingPreferredSlmSizeThenAllEntriesHaveCorrectValues) { for (auto &revision : getRevisions()) { ipVersion.revision = revision; diff --git a/shared/test/unit_test/release_helper/release_helper_tests_base.cpp b/shared/test/unit_test/release_helper/release_helper_tests_base.cpp index 10877a711a..b6f5332b45 100644 --- a/shared/test/unit_test/release_helper/release_helper_tests_base.cpp +++ b/shared/test/unit_test/release_helper/release_helper_tests_base.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2023-2024 Intel Corporation + * Copyright (C) 2023-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -170,3 +170,11 @@ void ReleaseHelperTestsBase::whenIsDummyBlitWaRequiredCalledThenFalseReturned() EXPECT_FALSE(releaseHelper->isDummyBlitWaRequired()); } } +void ReleaseHelperTestsBase::whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned() { + for (auto &revision : getRevisions()) { + ipVersion.revision = revision; + releaseHelper = ReleaseHelper::create(ipVersion); + ASSERT_NE(nullptr, releaseHelper); + EXPECT_TRUE(releaseHelper->isBlitImageAllowedForDepthFormat()); + } +} diff --git a/shared/test/unit_test/release_helper/release_helper_tests_base.h b/shared/test/unit_test/release_helper/release_helper_tests_base.h index fe925c3ae6..e03a717979 100644 --- a/shared/test/unit_test/release_helper/release_helper_tests_base.h +++ b/shared/test/unit_test/release_helper/release_helper_tests_base.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2023-2024 Intel Corporation + * Copyright (C) 2023-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -34,6 +34,7 @@ struct ReleaseHelperTestsBase : public ::testing::Test { void whenGettingSupportedNumGrfsThenValuesUpTo256Returned(); void whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnDebugKey(); void whenGettingThreadsPerEuConfigsThenCorrectValueIsReturnedBasedOnNumThreadPerEu(); + void whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned(); virtual std::vector getRevisions() = 0; std::unique_ptr releaseHelper;