diff --git a/shared/source/os_interface/windows/product_helper_wddm.cpp b/shared/source/os_interface/windows/product_helper_wddm.cpp index a84532ca0a..ee6589fe75 100644 --- a/shared/source/os_interface/windows/product_helper_wddm.cpp +++ b/shared/source/os_interface/windows/product_helper_wddm.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2024 Intel Corporation + * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -9,6 +9,7 @@ #include "shared/source/execution_environment/root_device_environment.h" #include "shared/source/helpers/hw_info.h" #include "shared/source/os_interface/product_helper.h" +#include "shared/source/release_helper/release_helper.h" #include "hw_cmds.h" @@ -18,6 +19,10 @@ int ProductHelper::configureHwInfoWddm(const HardwareInfo *inHwInfo, HardwareInf outHwInfo->capabilityTable.ftrSvm = outHwInfo->featureTable.flags.ftrSVM; this->setCapabilityCoherencyFlag(*outHwInfo, outHwInfo->capabilityTable.ftrSupportsCoherency); outHwInfo->capabilityTable.ftrSupportsCoherency &= inHwInfo->featureTable.flags.ftrL3IACoherency; + auto releaseHelper = rootDeviceEnvironment.getReleaseHelper(); + if (releaseHelper) { + outHwInfo->featureTable.flags.ftrXe2Compression = releaseHelper->getFtrXe2Compression(); + } setupDefaultEngineType(*outHwInfo, rootDeviceEnvironment); setupPreemptionMode(*outHwInfo, rootDeviceEnvironment, true); diff --git a/shared/test/unit_test/os_interface/windows/product_helper_win_tests.cpp b/shared/test/unit_test/os_interface/windows/product_helper_win_tests.cpp index 7c5d7b9c1c..f69618f2a5 100644 --- a/shared/test/unit_test/os_interface/windows/product_helper_win_tests.cpp +++ b/shared/test/unit_test/os_interface/windows/product_helper_win_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2024 Intel Corporation + * Copyright (C) 2018-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -12,6 +12,7 @@ #include "shared/source/os_interface/os_interface.h" #include "shared/source/os_interface/product_helper.h" #include "shared/source/os_interface/windows/wddm/wddm.h" +#include "shared/source/release_helper/release_helper.h" #include "shared/test/common/helpers/debug_manager_state_restore.h" #include "shared/test/common/mocks/mock_execution_environment.h" #include "shared/test/common/test_macros/hw_test.h" @@ -65,6 +66,23 @@ TEST_F(ProductHelperTestWindows, givenCorrectParametersWhenConfiguringHwInfoThen EXPECT_EQ(outHwInfo.capabilityTable.ftrSvm, ftrSvm); } +TEST_F(ProductHelperTestWindows, givenCorrectParametersWhenConfiguringHwInfoThenSetXe2CompressionCorrectly) { + + auto releaseHelper = rootDeviceEnvironment->getReleaseHelper(); + if (releaseHelper) { + outHwInfo.featureTable.flags.ftrXe2Compression = !releaseHelper->getFtrXe2Compression(); + } + + int ret = productHelper->configureHwInfoWddm(&pInHwInfo, &outHwInfo, *rootDeviceEnvironment.get()); + ASSERT_EQ(0, ret); + + if (releaseHelper) { + EXPECT_EQ(releaseHelper->getFtrXe2Compression(), outHwInfo.featureTable.flags.ftrXe2Compression); + } else { + EXPECT_EQ(false, outHwInfo.featureTable.flags.ftrXe2Compression); + } +} + TEST_F(ProductHelperTestWindows, givenInstrumentationForHardwareIsEnabledOrDisabledWhenConfiguringHwInfoThenOverrideItUsingHaveInstrumentation) { int ret;