From 85ed1a15e460f456a86937dd13d3c26b8f5a1052 Mon Sep 17 00:00:00 2001 From: Maciej Plewka Date: Tue, 13 May 2025 12:27:02 +0000 Subject: [PATCH] fix: do not allow blit for depth image on arl Related-To: NEO-14344 Signed-off-by: Maciej Plewka --- opencl/source/command_queue/command_queue.cpp | 6 +- opencl/source/helpers/cl_blit_properties.h | 2 - .../command_queue/command_queue_tests.cpp | 63 +++++++++++++++++++ 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 | 9 +++ .../release_helper_tests_base.h | 1 + 21 files changed, 142 insertions(+), 3 deletions(-) diff --git a/opencl/source/command_queue/command_queue.cpp b/opencl/source/command_queue/command_queue.cpp index aa0e5d8b0f..e3bdb5f7d9 100644 --- a/opencl/source/command_queue/command_queue.cpp +++ b/opencl/source/command_queue/command_queue.cpp @@ -28,6 +28,7 @@ #include "shared/source/memory_manager/internal_allocation_storage.h" #include "shared/source/os_interface/os_context.h" #include "shared/source/os_interface/product_helper.h" +#include "shared/source/release_helper/release_helper.h" #include "shared/source/utilities/api_intercept.h" #include "shared/source/utilities/staging_buffer_manager.h" #include "shared/source/utilities/tag_allocator.h" @@ -269,7 +270,6 @@ CommandStreamReceiver &CommandQueue::selectCsrForBuiltinOperation(const CsrSelec if (!blitEnqueueAllowed(args)) { return getGpgpuCommandStreamReceiver(); } - bool preferBcs = true; aub_stream::EngineType preferredBcsEngineType = aub_stream::EngineType::NUM_ENGINES; switch (args.direction) { @@ -1142,11 +1142,15 @@ bool CommandQueue::blitEnqueueAllowed(const CsrSelectionArgs &args) const { bool CommandQueue::blitEnqueueImageAllowed(const size_t *origin, const size_t *region, const Image &image) const { const auto &hwInfo = device->getHardwareInfo(); auto &productHelper = device->getProductHelper(); + auto releaseHelper = device->getDevice().getReleaseHelper(); auto blitEnqueueImageAllowed = productHelper.isBlitterForImagesSupported(); if (debugManager.flags.EnableBlitterForEnqueueImageOperations.get() != -1) { blitEnqueueImageAllowed = debugManager.flags.EnableBlitterForEnqueueImageOperations.get(); } + if (releaseHelper) { + blitEnqueueImageAllowed &= !(Image::isDepthFormat(image.getImageFormat()) && !releaseHelper->isBlitImageAllowedForDepthFormat()); + } blitEnqueueImageAllowed &= !isMipMapped(image.getImageDesc()); diff --git a/opencl/source/helpers/cl_blit_properties.h b/opencl/source/helpers/cl_blit_properties.h index c22ef077d5..99e9cf6863 100644 --- a/opencl/source/helpers/cl_blit_properties.h +++ b/opencl/source/helpers/cl_blit_properties.h @@ -24,7 +24,6 @@ struct ClBlitProperties { auto rootDeviceIndex = commandStreamReceiver.getRootDeviceIndex(); auto clearColorAllocation = commandStreamReceiver.getClearColorAllocation(); BlitProperties blitProperties{}; - if (BlitterConstants::BlitDirection::bufferToBuffer == blitDirection || BlitterConstants::BlitDirection::imageToImage == blitDirection) { auto dstOffset = builtinOpParams.dstOffset.x; @@ -51,7 +50,6 @@ struct ClBlitProperties { builtinOpParams.size, builtinOpParams.srcRowPitch, builtinOpParams.srcSlicePitch, builtinOpParams.dstRowPitch, builtinOpParams.dstSlicePitch, clearColorAllocation); - if (BlitterConstants::BlitDirection::imageToImage == blitDirection) { blitProperties.blitDirection = blitDirection; setBlitPropertiesForImage(blitProperties, builtinOpParams); 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 385d383e49..965b242734 100644 --- a/opencl/test/unit_test/command_queue/command_queue_tests.cpp +++ b/opencl/test/unit_test/command_queue/command_queue_tests.cpp @@ -32,6 +32,7 @@ #include "shared/test/common/mocks/mock_graphics_allocation.h" #include "shared/test/common/mocks/mock_memory_manager.h" #include "shared/test/common/mocks/mock_os_context.h" +#include "shared/test/common/mocks/mock_release_helper.h" #include "shared/test/common/test_macros/test.h" #include "shared/test/common/test_macros/test_checks_shared.h" @@ -2147,6 +2148,68 @@ TEST(CommandQueue, givenImageWithDifferentImageTypesWhenCallingBlitEnqueueImageA } } +TEST(CommandQueue, givenImageWithDepthTypeWhenDepthNotAllowedForBlitThenBlitEnqueueForImageNotAllowed) { + DebugManagerStateRestore restorer; + debugManager.flags.EnableBlitterForEnqueueImageOperations.set(1); + MockContext context{}; + MockCommandQueue queue(&context, context.getDevice(0), 0, false); + auto releaseHelper = std::unique_ptr(new MockReleaseHelper()); + releaseHelper->isBlitImageAllowedForDepthFormatResult = false; + context.getDevice(0)->getDevice().getRootDeviceEnvironmentRef().releaseHelper.reset(releaseHelper.release()); + size_t correctRegion[3] = {10u, 10u, 0}; + size_t correctOrigin[3] = {1u, 1u, 0}; + MockImageBase image; + image.imageFormat = {CL_DEPTH, CL_UNSIGNED_INT8}; + + EXPECT_FALSE(queue.blitEnqueueImageAllowed(correctOrigin, correctRegion, image)); +} + +TEST(CommandQueue, givenImageWithNotDepthTypeWhenDepthNotAllowedForBlitThenBlitEnqueueForImageIsAllowed) { + DebugManagerStateRestore restorer; + debugManager.flags.EnableBlitterForEnqueueImageOperations.set(1); + MockContext context{}; + MockCommandQueue queue(&context, context.getDevice(0), 0, false); + auto releaseHelper = std::unique_ptr(new MockReleaseHelper()); + releaseHelper->isBlitImageAllowedForDepthFormatResult = false; + context.getDevice(0)->getDevice().getRootDeviceEnvironmentRef().releaseHelper.reset(releaseHelper.release()); + size_t correctRegion[3] = {10u, 10u, 0}; + size_t correctOrigin[3] = {1u, 1u, 0}; + MockImageBase image; + image.imageFormat = {CL_R, CL_UNSIGNED_INT8}; + + EXPECT_TRUE(queue.blitEnqueueImageAllowed(correctOrigin, correctRegion, image)); +} + +TEST(CommandQueue, givenImageWithDepthTypeWhenDepthAllowedForBlitThenBlitEnqueueForImageIsAllowed) { + DebugManagerStateRestore restorer; + debugManager.flags.EnableBlitterForEnqueueImageOperations.set(1); + MockContext context{}; + MockCommandQueue queue(&context, context.getDevice(0), 0, false); + auto releaseHelper = std::unique_ptr(new MockReleaseHelper()); + releaseHelper->isBlitImageAllowedForDepthFormatResult = true; + context.getDevice(0)->getDevice().getRootDeviceEnvironmentRef().releaseHelper.reset(releaseHelper.release()); + size_t correctRegion[3] = {10u, 10u, 0}; + size_t correctOrigin[3] = {1u, 1u, 0}; + MockImageBase image; + image.imageFormat = {CL_DEPTH, CL_UNSIGNED_INT8}; + + EXPECT_TRUE(queue.blitEnqueueImageAllowed(correctOrigin, correctRegion, image)); +} + +TEST(CommandQueue, givenImageWithDepthTypeWhenReleaseHelperNotAvailableThenBlitEnqueueForImageIsAllowed) { + DebugManagerStateRestore restorer; + debugManager.flags.EnableBlitterForEnqueueImageOperations.set(1); + MockContext context{}; + MockCommandQueue queue(&context, context.getDevice(0), 0, false); + context.getDevice(0)->getDevice().getRootDeviceEnvironmentRef().releaseHelper.reset(); + size_t correctRegion[3] = {10u, 10u, 0}; + size_t correctOrigin[3] = {1u, 1u, 0}; + MockImageBase image; + image.imageFormat = {CL_DEPTH, CL_UNSIGNED_INT8}; + + EXPECT_TRUE(queue.blitEnqueueImageAllowed(correctOrigin, correctRegion, image)); +} + TEST(CommandQueue, given64KBTileWith3DImageTypeWhenCallingBlitEnqueueImageAllowedThenCorrectResultIsReturned) { DebugManagerStateRestore restorer; MockContext context{}; 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 6d2c0a79ba..4a393e3190 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 @@ -170,3 +170,12 @@ 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()); + } +} \ No newline at end of file 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 b343acc3bf..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 @@ -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;