mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 05:56:36 +08:00
Move DG2 hw info config tests to shared
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
c98e253377
commit
bea54b9fb8
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2021 Intel Corporation
|
# Copyright (C) 2021-2022 Intel Corporation
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
#
|
#
|
||||||
@@ -15,12 +15,10 @@ if(TESTS_DG2)
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/get_device_info_dg2.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/get_device_info_dg2.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/hw_helper_tests_dg2.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/hw_helper_tests_dg2.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/hw_info_tests_dg2.cpp
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/memory_manager_tests_dg2.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/memory_manager_tests_dg2.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/sampler_tests_dg2.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/sampler_tests_dg2.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/test_cmds_programming_dg2.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/test_cmds_programming_dg2.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/test_device_caps_dg2.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/test_device_caps_dg2.cpp
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/test_hw_info_config_dg2.cpp
|
|
||||||
)
|
)
|
||||||
target_sources(igdrcl_tests PRIVATE ${IGDRCL_SRCS_tests_xe_hpg_core_dg2})
|
target_sources(igdrcl_tests PRIVATE ${IGDRCL_SRCS_tests_xe_hpg_core_dg2})
|
||||||
add_subdirectories()
|
add_subdirectories()
|
||||||
|
|||||||
@@ -18,4 +18,5 @@ HWTEST_EXCLUDE_PRODUCT(HwInfoConfigTest, givenHwInfoConfigWhenAskedIfTile64With3
|
|||||||
HWTEST_EXCLUDE_PRODUCT(HwInfoConfigTestXeHpAndLater, givenXeHPAndLaterPlatformWhenAskedIfTile64With3DSurfaceOnBCSIsSupportedThenFalseIsReturned, IGFX_DG2);
|
HWTEST_EXCLUDE_PRODUCT(HwInfoConfigTestXeHpAndLater, givenXeHPAndLaterPlatformWhenAskedIfTile64With3DSurfaceOnBCSIsSupportedThenFalseIsReturned, IGFX_DG2);
|
||||||
HWTEST_EXCLUDE_PRODUCT(WddmMemoryManagerSimpleTest, givenLinearStreamWhenItIsAllocatedThenItIsInLocalMemoryHasCpuPointerAndHasStandardHeap64kbAsGpuAddress, IGFX_DG2);
|
HWTEST_EXCLUDE_PRODUCT(WddmMemoryManagerSimpleTest, givenLinearStreamWhenItIsAllocatedThenItIsInLocalMemoryHasCpuPointerAndHasStandardHeap64kbAsGpuAddress, IGFX_DG2);
|
||||||
HWTEST_EXCLUDE_PRODUCT(HwInfoConfigTest, WhenAllowRenderCompressionIsCalledThenTrueIsReturned, IGFX_DG2);
|
HWTEST_EXCLUDE_PRODUCT(HwInfoConfigTest, WhenAllowRenderCompressionIsCalledThenTrueIsReturned, IGFX_DG2);
|
||||||
HWTEST_EXCLUDE_PRODUCT(HwInfoConfigTest, whenConvertingTimestampsToCsDomainThenNothingIsChanged, IGFX_DG2);
|
HWTEST_EXCLUDE_PRODUCT(HwInfoConfigTest, whenConvertingTimestampsToCsDomainThenNothingIsChanged, IGFX_DG2);
|
||||||
|
HWTEST_EXCLUDE_PRODUCT(HwHelperTestXeHPAndLater, GiveCcsNodeThenDefaultEngineTypeIsCcs, IGFX_DG2);
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2021 Intel Corporation
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "shared/source/helpers/hw_helper.h"
|
|
||||||
#include "shared/source/helpers/hw_info.h"
|
|
||||||
#include "shared/test/common/helpers/default_hw_info.h"
|
|
||||||
#include "shared/test/common/test_macros/test.h"
|
|
||||||
|
|
||||||
#include "opencl/test/unit_test/helpers/gtest_helpers.h"
|
|
||||||
|
|
||||||
using namespace NEO;
|
|
||||||
|
|
||||||
using Dg2ConfigHwInfoTests = ::testing::Test;
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2ConfigHwInfoTests, givenDg2ConfigWhenSetupHardwearInfoMultiTileThenGtSystemInfoIsSetCorrect) {
|
|
||||||
HardwareInfo hwInfo = *defaultHwInfo;
|
|
||||||
GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
|
|
||||||
|
|
||||||
DG2_CONFIG::setupHardwareInfoMultiTile(&hwInfo, false, false);
|
|
||||||
EXPECT_EQ(8u, gtSystemInfo.CsrSizeInMb);
|
|
||||||
EXPECT_FALSE(gtSystemInfo.IsL3HashModeEnabled);
|
|
||||||
EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated);
|
|
||||||
}
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2021 Intel Corporation
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "shared/source/helpers/hw_helper.h"
|
|
||||||
#include "shared/source/os_interface/hw_info_config.h"
|
|
||||||
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
|
||||||
#include "shared/test/common/helpers/default_hw_info.h"
|
|
||||||
#include "shared/test/common/test_macros/test.h"
|
|
||||||
|
|
||||||
using namespace NEO;
|
|
||||||
|
|
||||||
using Dg2HwInfoConfig = ::testing::Test;
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenHwInfoErrorneousConfigStringThenThrow) {
|
|
||||||
HardwareInfo hwInfo = *defaultHwInfo;
|
|
||||||
GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
|
|
||||||
|
|
||||||
uint64_t config = 0xdeadbeef;
|
|
||||||
gtSystemInfo = {0};
|
|
||||||
EXPECT_ANY_THROW(hardwareInfoSetup[productFamily](&hwInfo, false, config));
|
|
||||||
EXPECT_EQ(0u, gtSystemInfo.SliceCount);
|
|
||||||
EXPECT_EQ(0u, gtSystemInfo.SubSliceCount);
|
|
||||||
EXPECT_EQ(0u, gtSystemInfo.DualSubSliceCount);
|
|
||||||
EXPECT_EQ(0u, gtSystemInfo.EUCount);
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenHwInfoConfigWhenAdditionalKernelExecInfoSupportCheckedThenCorrectValueIsReturned) {
|
|
||||||
const auto &hwInfoConfig = *HwInfoConfig::get(defaultHwInfo->platform.eProductFamily);
|
|
||||||
auto hwInfo = *defaultHwInfo;
|
|
||||||
EXPECT_FALSE(hwInfoConfig.isDisableOverdispatchAvailable(hwInfo));
|
|
||||||
|
|
||||||
hwInfo.platform.usRevId = hwInfoConfig.getHwRevIdFromStepping(REVISION_B, hwInfo);
|
|
||||||
EXPECT_TRUE(hwInfoConfig.isDisableOverdispatchAvailable(hwInfo));
|
|
||||||
}
|
|
||||||
|
|
||||||
HWTEST_EXCLUDE_PRODUCT(HwHelperTestXeHPAndLater, GiveCcsNodeThenDefaultEngineTypeIsCcs, IGFX_DG2);
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, whenAdjustingDefaultEngineTypeThenSelectEngineTypeBasedOnRevisionId) {
|
|
||||||
auto hardwareInfo = *defaultHwInfo;
|
|
||||||
hardwareInfo.featureTable.flags.ftrCCSNode = true;
|
|
||||||
auto &hwHelper = HwHelper::get(renderCoreFamily);
|
|
||||||
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
|
||||||
|
|
||||||
hardwareInfo.capabilityTable.defaultEngineType = defaultHwInfo->capabilityTable.defaultEngineType;
|
|
||||||
hardwareInfo.platform.usRevId = hwInfoConfig.getHwRevIdFromStepping(REVISION_A0, hardwareInfo);
|
|
||||||
hwHelper.adjustDefaultEngineType(&hardwareInfo);
|
|
||||||
EXPECT_EQ(aub_stream::ENGINE_RCS, hardwareInfo.capabilityTable.defaultEngineType);
|
|
||||||
|
|
||||||
hardwareInfo.capabilityTable.defaultEngineType = defaultHwInfo->capabilityTable.defaultEngineType;
|
|
||||||
hardwareInfo.platform.usRevId = hwInfoConfig.getHwRevIdFromStepping(REVISION_B, hardwareInfo);
|
|
||||||
hwHelper.adjustDefaultEngineType(&hardwareInfo);
|
|
||||||
EXPECT_EQ(aub_stream::ENGINE_CCS, hardwareInfo.capabilityTable.defaultEngineType);
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenA0OrA1SteppingWhenAskingIfWAIsRequiredThenReturnTrue) {
|
|
||||||
auto hwInfoConfig = HwInfoConfig::get(productFamily);
|
|
||||||
std::array<std::pair<uint32_t, bool>, 4> revisions = {
|
|
||||||
{{REVISION_A0, true},
|
|
||||||
{REVISION_A1, true},
|
|
||||||
{REVISION_B, false},
|
|
||||||
{REVISION_C, false}}};
|
|
||||||
|
|
||||||
for (const auto &[revision, paramBool] : revisions) {
|
|
||||||
auto hwInfo = *defaultHwInfo;
|
|
||||||
hwInfo.platform.usRevId = hwInfoConfig->getHwRevIdFromStepping(revision, hwInfo);
|
|
||||||
|
|
||||||
hwInfoConfig->configureHardwareCustom(&hwInfo, nullptr);
|
|
||||||
|
|
||||||
EXPECT_EQ(paramBool, hwInfoConfig->isDefaultEngineTypeAdjustmentRequired(hwInfo));
|
|
||||||
EXPECT_EQ(paramBool, hwInfoConfig->isAllocationSizeAdjustmentRequired(hwInfo));
|
|
||||||
EXPECT_EQ(paramBool, hwInfoConfig->isPrefetchDisablingRequired(hwInfo));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenProgramPipeControlPriorToNonPipelinedStateCommandWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnCcsThenTrueIsReturned) {
|
|
||||||
DebugManagerStateRestore restorer;
|
|
||||||
DebugManager.flags.ProgramPipeControlPriorToNonPipelinedStateCommand.set(true);
|
|
||||||
|
|
||||||
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
|
||||||
auto hwInfo = *defaultHwInfo;
|
|
||||||
auto isRcs = false;
|
|
||||||
|
|
||||||
EXPECT_TRUE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenProgramPipeControlPriorToNonPipelinedStateCommandWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnRcsThenTrueIsReturned) {
|
|
||||||
DebugManagerStateRestore restorer;
|
|
||||||
DebugManager.flags.ProgramPipeControlPriorToNonPipelinedStateCommand.set(true);
|
|
||||||
|
|
||||||
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
|
||||||
auto hwInfo = *defaultHwInfo;
|
|
||||||
auto isRcs = true;
|
|
||||||
|
|
||||||
EXPECT_TRUE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenProgramPipeControlPriorToNonPipelinedStateCommandDisabledWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnRcsThenFalseIsReturned) {
|
|
||||||
DebugManagerStateRestore restorer;
|
|
||||||
DebugManager.flags.ProgramPipeControlPriorToNonPipelinedStateCommand.set(0);
|
|
||||||
|
|
||||||
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
|
||||||
auto hwInfo = *defaultHwInfo;
|
|
||||||
auto isRcs = true;
|
|
||||||
|
|
||||||
EXPECT_FALSE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenHwInfoConfigWithMultipleCSSWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnCcsThenTrueIsReturned) {
|
|
||||||
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
|
||||||
auto hwInfo = *defaultHwInfo;
|
|
||||||
hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled = 2;
|
|
||||||
auto isRcs = false;
|
|
||||||
|
|
||||||
EXPECT_TRUE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenHwInfoConfigWithMultipleCSSWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnRcsThenFalseIsReturned) {
|
|
||||||
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
|
||||||
auto hwInfo = *defaultHwInfo;
|
|
||||||
hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled = 2;
|
|
||||||
auto isRcs = true;
|
|
||||||
|
|
||||||
EXPECT_FALSE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenDg2WhenIsBlitterForImagesSupportedIsCalledThenTrueIsReturned) {
|
|
||||||
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
|
||||||
EXPECT_TRUE(hwInfoConfig.isBlitterForImagesSupported());
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenB0rCSteppingWhenAskingIfTile64With3DSurfaceOnBCSIsSupportedThenReturnTrue) {
|
|
||||||
auto hwInfoConfig = HwInfoConfig::get(productFamily);
|
|
||||||
std::array<std::pair<uint32_t, bool>, 4> revisions = {
|
|
||||||
{{REVISION_A0, false},
|
|
||||||
{REVISION_A1, false},
|
|
||||||
{REVISION_B, false},
|
|
||||||
{REVISION_C, true}}};
|
|
||||||
|
|
||||||
for (const auto &[revision, paramBool] : revisions) {
|
|
||||||
auto hwInfo = *defaultHwInfo;
|
|
||||||
hwInfo.platform.usRevId = hwInfoConfig->getHwRevIdFromStepping(revision, hwInfo);
|
|
||||||
|
|
||||||
hwInfoConfig->configureHardwareCustom(&hwInfo, nullptr);
|
|
||||||
|
|
||||||
EXPECT_EQ(paramBool, hwInfoConfig->isTile64With3DSurfaceOnBCSSupported(hwInfo));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DG2TEST_F(Dg2HwInfoConfig, givenA0SteppingAnd128EuWhenConfigureCalledThenDisableCompression) {
|
|
||||||
auto hwInfoConfig = HwInfoConfig::get(productFamily);
|
|
||||||
|
|
||||||
for (uint8_t revision : {REVISION_A0, REVISION_A1}) {
|
|
||||||
for (uint32_t euCount : {127, 128, 129}) {
|
|
||||||
HardwareInfo hwInfo = *defaultHwInfo;
|
|
||||||
hwInfo.featureTable.flags.ftrE2ECompression = true;
|
|
||||||
|
|
||||||
hwInfo.platform.usRevId = hwInfoConfig->getHwRevIdFromStepping(revision, hwInfo);
|
|
||||||
hwInfo.gtSystemInfo.EUCount = euCount;
|
|
||||||
|
|
||||||
hwInfoConfig->configureHardwareCustom(&hwInfo, nullptr);
|
|
||||||
|
|
||||||
auto compressionExpected = (euCount == 128) ? true : (revision != REVISION_A0);
|
|
||||||
|
|
||||||
EXPECT_EQ(compressionExpected, hwInfo.capabilityTable.ftrRenderCompressedBuffers);
|
|
||||||
EXPECT_EQ(compressionExpected, hwInfo.capabilityTable.ftrRenderCompressedImages);
|
|
||||||
EXPECT_EQ(compressionExpected, hwInfoConfig->allowCompression(hwInfo));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -5,7 +5,9 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "shared/source/helpers/hw_helper.h"
|
||||||
#include "shared/source/os_interface/hw_info_config.h"
|
#include "shared/source/os_interface/hw_info_config.h"
|
||||||
|
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
||||||
#include "shared/test/common/helpers/default_hw_info.h"
|
#include "shared/test/common/helpers/default_hw_info.h"
|
||||||
#include "shared/test/common/test_macros/test.h"
|
#include "shared/test/common/test_macros/test.h"
|
||||||
|
|
||||||
@@ -21,4 +23,169 @@ DG2TEST_F(HwInfoConfigTestDg2, whenConvertingTimestampsToCsDomainThenGpuTicksAre
|
|||||||
|
|
||||||
hwInfoConfig->convertTimestampsFromOaToCsDomain(gpuTicks);
|
hwInfoConfig->convertTimestampsFromOaToCsDomain(gpuTicks);
|
||||||
EXPECT_EQ(expectedGpuTicks, gpuTicks);
|
EXPECT_EQ(expectedGpuTicks, gpuTicks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenDg2ConfigWhenSetupHardwareInfoMultiTileThenGtSystemInfoIsSetCorrect) {
|
||||||
|
HardwareInfo hwInfo = *defaultHwInfo;
|
||||||
|
GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
|
||||||
|
|
||||||
|
DG2_CONFIG::setupHardwareInfoMultiTile(&hwInfo, false, false);
|
||||||
|
EXPECT_EQ(8u, gtSystemInfo.CsrSizeInMb);
|
||||||
|
EXPECT_FALSE(gtSystemInfo.IsL3HashModeEnabled);
|
||||||
|
EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated);
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenHwInfoErrorneousConfigStringThenThrow) {
|
||||||
|
HardwareInfo hwInfo = *defaultHwInfo;
|
||||||
|
GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
|
||||||
|
|
||||||
|
uint64_t config = 0xdeadbeef;
|
||||||
|
gtSystemInfo = {0};
|
||||||
|
EXPECT_ANY_THROW(hardwareInfoSetup[productFamily](&hwInfo, false, config));
|
||||||
|
EXPECT_EQ(0u, gtSystemInfo.SliceCount);
|
||||||
|
EXPECT_EQ(0u, gtSystemInfo.SubSliceCount);
|
||||||
|
EXPECT_EQ(0u, gtSystemInfo.DualSubSliceCount);
|
||||||
|
EXPECT_EQ(0u, gtSystemInfo.EUCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenHwInfoConfigWhenAdditionalKernelExecInfoSupportCheckedThenCorrectValueIsReturned) {
|
||||||
|
const auto &hwInfoConfig = *HwInfoConfig::get(defaultHwInfo->platform.eProductFamily);
|
||||||
|
auto hwInfo = *defaultHwInfo;
|
||||||
|
EXPECT_FALSE(hwInfoConfig.isDisableOverdispatchAvailable(hwInfo));
|
||||||
|
|
||||||
|
hwInfo.platform.usRevId = hwInfoConfig.getHwRevIdFromStepping(REVISION_B, hwInfo);
|
||||||
|
EXPECT_TRUE(hwInfoConfig.isDisableOverdispatchAvailable(hwInfo));
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, whenAdjustingDefaultEngineTypeThenSelectEngineTypeBasedOnRevisionId) {
|
||||||
|
auto hardwareInfo = *defaultHwInfo;
|
||||||
|
hardwareInfo.featureTable.flags.ftrCCSNode = true;
|
||||||
|
auto &hwHelper = HwHelper::get(renderCoreFamily);
|
||||||
|
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
||||||
|
|
||||||
|
hardwareInfo.capabilityTable.defaultEngineType = defaultHwInfo->capabilityTable.defaultEngineType;
|
||||||
|
hardwareInfo.platform.usRevId = hwInfoConfig.getHwRevIdFromStepping(REVISION_A0, hardwareInfo);
|
||||||
|
hwHelper.adjustDefaultEngineType(&hardwareInfo);
|
||||||
|
EXPECT_EQ(aub_stream::ENGINE_RCS, hardwareInfo.capabilityTable.defaultEngineType);
|
||||||
|
|
||||||
|
hardwareInfo.capabilityTable.defaultEngineType = defaultHwInfo->capabilityTable.defaultEngineType;
|
||||||
|
hardwareInfo.platform.usRevId = hwInfoConfig.getHwRevIdFromStepping(REVISION_B, hardwareInfo);
|
||||||
|
hwHelper.adjustDefaultEngineType(&hardwareInfo);
|
||||||
|
EXPECT_EQ(aub_stream::ENGINE_CCS, hardwareInfo.capabilityTable.defaultEngineType);
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenA0OrA1SteppingWhenAskingIfWAIsRequiredThenReturnTrue) {
|
||||||
|
auto hwInfoConfig = HwInfoConfig::get(productFamily);
|
||||||
|
std::array<std::pair<uint32_t, bool>, 4> revisions = {
|
||||||
|
{{REVISION_A0, true},
|
||||||
|
{REVISION_A1, true},
|
||||||
|
{REVISION_B, false},
|
||||||
|
{REVISION_C, false}}};
|
||||||
|
|
||||||
|
for (const auto &[revision, paramBool] : revisions) {
|
||||||
|
auto hwInfo = *defaultHwInfo;
|
||||||
|
hwInfo.platform.usRevId = hwInfoConfig->getHwRevIdFromStepping(revision, hwInfo);
|
||||||
|
|
||||||
|
hwInfoConfig->configureHardwareCustom(&hwInfo, nullptr);
|
||||||
|
|
||||||
|
EXPECT_EQ(paramBool, hwInfoConfig->isDefaultEngineTypeAdjustmentRequired(hwInfo));
|
||||||
|
EXPECT_EQ(paramBool, hwInfoConfig->isAllocationSizeAdjustmentRequired(hwInfo));
|
||||||
|
EXPECT_EQ(paramBool, hwInfoConfig->isPrefetchDisablingRequired(hwInfo));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenProgramPipeControlPriorToNonPipelinedStateCommandWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnCcsThenTrueIsReturned) {
|
||||||
|
DebugManagerStateRestore restorer;
|
||||||
|
DebugManager.flags.ProgramPipeControlPriorToNonPipelinedStateCommand.set(true);
|
||||||
|
|
||||||
|
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
||||||
|
auto hwInfo = *defaultHwInfo;
|
||||||
|
auto isRcs = false;
|
||||||
|
|
||||||
|
EXPECT_TRUE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenProgramPipeControlPriorToNonPipelinedStateCommandWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnRcsThenTrueIsReturned) {
|
||||||
|
DebugManagerStateRestore restorer;
|
||||||
|
DebugManager.flags.ProgramPipeControlPriorToNonPipelinedStateCommand.set(true);
|
||||||
|
|
||||||
|
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
||||||
|
auto hwInfo = *defaultHwInfo;
|
||||||
|
auto isRcs = true;
|
||||||
|
|
||||||
|
EXPECT_TRUE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenProgramPipeControlPriorToNonPipelinedStateCommandDisabledWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnRcsThenFalseIsReturned) {
|
||||||
|
DebugManagerStateRestore restorer;
|
||||||
|
DebugManager.flags.ProgramPipeControlPriorToNonPipelinedStateCommand.set(0);
|
||||||
|
|
||||||
|
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
||||||
|
auto hwInfo = *defaultHwInfo;
|
||||||
|
auto isRcs = true;
|
||||||
|
|
||||||
|
EXPECT_FALSE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenHwInfoConfigWithMultipleCSSWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnCcsThenTrueIsReturned) {
|
||||||
|
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
||||||
|
auto hwInfo = *defaultHwInfo;
|
||||||
|
hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled = 2;
|
||||||
|
auto isRcs = false;
|
||||||
|
|
||||||
|
EXPECT_TRUE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenHwInfoConfigWithMultipleCSSWhenIsPipeControlPriorToNonPipelinedStateCommandsWARequiredIsCalledOnRcsThenFalseIsReturned) {
|
||||||
|
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
||||||
|
auto hwInfo = *defaultHwInfo;
|
||||||
|
hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled = 2;
|
||||||
|
auto isRcs = true;
|
||||||
|
|
||||||
|
EXPECT_FALSE(hwInfoConfig.isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs));
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenDg2WhenIsBlitterForImagesSupportedIsCalledThenTrueIsReturned) {
|
||||||
|
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
||||||
|
EXPECT_TRUE(hwInfoConfig.isBlitterForImagesSupported());
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenB0rCSteppingWhenAskingIfTile64With3DSurfaceOnBCSIsSupportedThenReturnTrue) {
|
||||||
|
auto hwInfoConfig = HwInfoConfig::get(productFamily);
|
||||||
|
std::array<std::pair<uint32_t, bool>, 4> revisions = {
|
||||||
|
{{REVISION_A0, false},
|
||||||
|
{REVISION_A1, false},
|
||||||
|
{REVISION_B, false},
|
||||||
|
{REVISION_C, true}}};
|
||||||
|
|
||||||
|
for (const auto &[revision, paramBool] : revisions) {
|
||||||
|
auto hwInfo = *defaultHwInfo;
|
||||||
|
hwInfo.platform.usRevId = hwInfoConfig->getHwRevIdFromStepping(revision, hwInfo);
|
||||||
|
|
||||||
|
hwInfoConfig->configureHardwareCustom(&hwInfo, nullptr);
|
||||||
|
|
||||||
|
EXPECT_EQ(paramBool, hwInfoConfig->isTile64With3DSurfaceOnBCSSupported(hwInfo));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DG2TEST_F(HwInfoConfigTestDg2, givenA0SteppingAnd128EuWhenConfigureCalledThenDisableCompression) {
|
||||||
|
auto hwInfoConfig = HwInfoConfig::get(productFamily);
|
||||||
|
|
||||||
|
for (uint8_t revision : {REVISION_A0, REVISION_A1}) {
|
||||||
|
for (uint32_t euCount : {127, 128, 129}) {
|
||||||
|
HardwareInfo hwInfo = *defaultHwInfo;
|
||||||
|
hwInfo.featureTable.flags.ftrE2ECompression = true;
|
||||||
|
|
||||||
|
hwInfo.platform.usRevId = hwInfoConfig->getHwRevIdFromStepping(revision, hwInfo);
|
||||||
|
hwInfo.gtSystemInfo.EUCount = euCount;
|
||||||
|
|
||||||
|
hwInfoConfig->configureHardwareCustom(&hwInfo, nullptr);
|
||||||
|
|
||||||
|
auto compressionExpected = (euCount == 128) ? true : (revision != REVISION_A0);
|
||||||
|
|
||||||
|
EXPECT_EQ(compressionExpected, hwInfo.capabilityTable.ftrRenderCompressedBuffers);
|
||||||
|
EXPECT_EQ(compressionExpected, hwInfo.capabilityTable.ftrRenderCompressedImages);
|
||||||
|
EXPECT_EQ(compressionExpected, hwInfoConfig->allowCompression(hwInfo));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user