From 9dd6c4013c54431ab23106fd0f6fb7df0955dfe7 Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Mon, 16 Jan 2023 11:26:14 +0000 Subject: [PATCH] Reduce scope of Tile64 for 3D surface WA for DG2 platforms Related-To: NEO-7607, HSD-1409882685 Signed-off-by: Mateusz Jablonski --- .../dg2/os_agnostic_hw_info_config_dg2.inl | 8 +++- .../dg2/hw_info_config_tests_dg2.cpp | 40 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/shared/source/xe_hpg_core/dg2/os_agnostic_hw_info_config_dg2.inl b/shared/source/xe_hpg_core/dg2/os_agnostic_hw_info_config_dg2.inl index bd83e54e41..d8432b27f9 100644 --- a/shared/source/xe_hpg_core/dg2/os_agnostic_hw_info_config_dg2.inl +++ b/shared/source/xe_hpg_core/dg2/os_agnostic_hw_info_config_dg2.inl @@ -158,7 +158,13 @@ bool ProductHelperHw::isBlitterForImagesSupported() const { template <> bool ProductHelperHw::isTile64With3DSurfaceOnBCSSupported(const HardwareInfo &hwInfo) const { - return getSteppingFromHwRevId(hwInfo) >= REVISION_C; + if (DG2::isG10(hwInfo) && GfxCoreHelper::isWorkaroundRequired(REVISION_A0, REVISION_C, hwInfo, *this)) { + return false; + } + if (DG2::isG11(hwInfo) && GfxCoreHelper::isWorkaroundRequired(REVISION_A0, REVISION_B, hwInfo, *this)) { + return false; + } + return true; } template <> diff --git a/shared/test/unit_test/xe_hpg_core/dg2/hw_info_config_tests_dg2.cpp b/shared/test/unit_test/xe_hpg_core/dg2/hw_info_config_tests_dg2.cpp index 51dc858d0d..46f2af4e14 100644 --- a/shared/test/unit_test/xe_hpg_core/dg2/hw_info_config_tests_dg2.cpp +++ b/shared/test/unit_test/xe_hpg_core/dg2/hw_info_config_tests_dg2.cpp @@ -309,6 +309,46 @@ DG2TEST_F(ProductHelperTestDg2, givenDg2G10A0WhenConfigureCalledThenDisableCompr } } +DG2TEST_F(ProductHelperTestDg2, givenDg2G10WhenAskingForTile64For3dSurfaceOnBcsSupportThenReturnSuccessOnlyForCStepping) { + auto &productHelper = getHelper(); + + for (uint8_t revision : {REVISION_A0, REVISION_A1, REVISION_B, REVISION_C}) { + HardwareInfo hwInfo = *defaultHwInfo; + hwInfo.platform.usRevId = productHelper.getHwRevIdFromStepping(revision, hwInfo); + hwInfo.platform.usDeviceID = dg2G10DeviceIds[0]; + + auto expectedValue = revision == REVISION_C; + + EXPECT_EQ(expectedValue, productHelper.isTile64With3DSurfaceOnBCSSupported(hwInfo)); + } +} + +DG2TEST_F(ProductHelperTestDg2, givenDg2G11WhenAskingForTile64For3dSurfaceOnBcsSupportThenReturnSuccessOnlyForHigherThanAStepping) { + auto &productHelper = getHelper(); + + for (uint8_t revision : {REVISION_A0, REVISION_A1, REVISION_B, REVISION_C}) { + HardwareInfo hwInfo = *defaultHwInfo; + hwInfo.platform.usRevId = productHelper.getHwRevIdFromStepping(revision, hwInfo); + hwInfo.platform.usDeviceID = dg2G11DeviceIds[0]; + + auto expectedValue = revision >= REVISION_B; + + EXPECT_EQ(expectedValue, productHelper.isTile64With3DSurfaceOnBCSSupported(hwInfo)); + } +} + +DG2TEST_F(ProductHelperTestDg2, givenDg2G12WhenAskingForTile64For3dSurfaceOnBcsSupportThenReturnSuccess) { + auto &productHelper = getHelper(); + + for (uint8_t revision : {REVISION_A0, REVISION_A1, REVISION_B, REVISION_C}) { + HardwareInfo hwInfo = *defaultHwInfo; + hwInfo.platform.usRevId = productHelper.getHwRevIdFromStepping(revision, hwInfo); + hwInfo.platform.usDeviceID = dg2G12DeviceIds[0]; + + EXPECT_TRUE(productHelper.isTile64With3DSurfaceOnBCSSupported(hwInfo)); + } +} + DG2TEST_F(ProductHelperTestDg2, givenRevisionEnumAndPlatformFamilyTypeThenProperValueForIsWorkaroundRequiredIsReturned) { uint32_t steppings[] = { REVISION_A0,