Move sku_info tests to shared

Signed-off-by: Daniel Chabrowski <daniel.chabrowski@intel.com>
This commit is contained in:
Daniel Chabrowski
2022-06-14 13:56:16 +00:00
committed by Compute-Runtime-Automation
parent 939d109362
commit fd121d8b6b
7 changed files with 21 additions and 31 deletions

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2018-2021 Intel Corporation
# Copyright (C) 2018-2022 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
@ -14,7 +14,6 @@ set(IGDRCL_SRCS_tests_sharings_va
${CMAKE_CURRENT_SOURCE_DIR}/kernel_va_image_arg_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/mock_va_sharing.h
${CMAKE_CURRENT_SOURCE_DIR}/va_base_object_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/va_device_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/va_sharing_linux_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/va_sharing_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/va_sharing_factory_tests.cpp

View File

@ -1,6 +0,0 @@
/*
* Copyright (C) 2020-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/

View File

@ -1,18 +0,0 @@
#
# Copyright (C) 2018-2021 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
set(IGDRCL_SRCS_tests_sku_info
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/sku_info_base_reference.h
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}sku_info_transfer_tests.cpp
)
if(WIN32)
list(APPEND IGDRCL_SRCS_tests_sku_info
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}sku_info_receiver_tests.cpp
)
endif()
target_sources(igdrcl_tests PRIVATE ${IGDRCL_SRCS_tests_sku_info})

View File

@ -1,172 +0,0 @@
/*
* Copyright (C) 2018-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "shared/source/gmm_helper/gmm_lib.h"
#include "sku_info.h"
namespace NEO {
struct SkuInfoBaseReference {
static void fillReferenceFtrForTransfer(_SKU_FEATURE_TABLE &refFtrTable) {
memset(&refFtrTable, 0, sizeof(refFtrTable));
refFtrTable.FtrStandardMipTailFormat = 1;
refFtrTable.FtrULT = 1;
refFtrTable.FtrEDram = 1;
refFtrTable.FtrFrameBufferLLC = 1;
refFtrTable.FtrCrystalwell = 1;
refFtrTable.FtrDisplayEngineS3d = 1;
refFtrTable.FtrTileY = 1;
refFtrTable.FtrDisplayYTiling = 1;
refFtrTable.FtrFbc = 1;
refFtrTable.FtrLCIA = 1;
refFtrTable.FtrIA32eGfxPTEs = 1;
refFtrTable.FtrWddm2GpuMmu = 1;
refFtrTable.FtrWddm2_1_64kbPages = 1;
refFtrTable.FtrTranslationTable = 1;
refFtrTable.FtrUserModeTranslationTable = 1;
refFtrTable.FtrWddm2Svm = 1;
refFtrTable.FtrLLCBypass = 1;
refFtrTable.FtrE2ECompression = 1;
refFtrTable.FtrLinearCCS = 1;
refFtrTable.FtrCCSRing = 1;
refFtrTable.FtrCCSNode = 1;
refFtrTable.FtrMemTypeMocsDeferPAT = 1;
refFtrTable.FtrLocalMemory = 1;
refFtrTable.FtrLocalMemoryAllows4KB = 1;
refFtrTable.FtrSVM = 1;
refFtrTable.FtrFlatPhysCCS = 1;
refFtrTable.FtrMultiTileArch = 1;
refFtrTable.FtrCCSMultiInstance = 1;
refFtrTable.FtrPpgtt64KBWalkOptimization = 1;
refFtrTable.FtrUnified3DMediaCompressionFormats = 1;
refFtrTable.Ftr57bGPUAddressing = 1;
}
static void fillReferenceWaForTransfer(_WA_TABLE &refWaTable) {
memset(&refWaTable, 0, sizeof(refWaTable));
refWaTable.WaFbcLinearSurfaceStride = 1;
refWaTable.WaDisableEdramForDisplayRT = 1;
refWaTable.WaEncryptedEdramOnlyPartials = 1;
refWaTable.WaLosslessCompressionSurfaceStride = 1;
refWaTable.WaRestrictPitch128KB = 1;
refWaTable.WaLimit128BMediaCompr = 1;
refWaTable.WaUntypedBufferCompression = 1;
refWaTable.WaAuxTable16KGranular = 1;
refWaTable.WaAuxTable64KGranular = 1;
}
static void fillReferenceFtrToReceive(FeatureTable &refFtrTable) {
refFtrTable = {};
refFtrTable.flags.ftrDesktop = true;
refFtrTable.flags.ftrChannelSwizzlingXOREnabled = true;
refFtrTable.flags.ftrIVBM0M1Platform = true;
refFtrTable.flags.ftrSGTPVSKUStrapPresent = true;
refFtrTable.flags.ftr5Slice = true;
refFtrTable.flags.ftrGpGpuMidBatchPreempt = true;
refFtrTable.flags.ftrGpGpuThreadGroupLevelPreempt = true;
refFtrTable.flags.ftrGpGpuMidThreadLevelPreempt = true;
refFtrTable.flags.ftrIoMmuPageFaulting = true;
refFtrTable.flags.ftrWddm2Svm = true;
refFtrTable.flags.ftrPooledEuEnabled = true;
refFtrTable.flags.ftrResourceStreamer = true;
refFtrTable.flags.ftrPPGTT = true;
refFtrTable.flags.ftrSVM = true;
refFtrTable.flags.ftrEDram = true;
refFtrTable.flags.ftrL3IACoherency = true;
refFtrTable.flags.ftrIA32eGfxPTEs = true;
refFtrTable.flags.ftr3dMidBatchPreempt = true;
refFtrTable.flags.ftr3dObjectLevelPreempt = true;
refFtrTable.flags.ftrPerCtxtPreemptionGranularityControl = true;
refFtrTable.flags.ftrTileY = true;
refFtrTable.flags.ftrDisplayYTiling = true;
refFtrTable.flags.ftrTranslationTable = true;
refFtrTable.flags.ftrUserModeTranslationTable = true;
refFtrTable.flags.ftrEnableGuC = true;
refFtrTable.flags.ftrFbc = true;
refFtrTable.flags.ftrFbc2AddressTranslation = true;
refFtrTable.flags.ftrFbcBlitterTracking = true;
refFtrTable.flags.ftrFbcCpuTracking = true;
refFtrTable.flags.ftrULT = true;
refFtrTable.flags.ftrLCIA = true;
refFtrTable.flags.ftrGttCacheInvalidation = true;
refFtrTable.flags.ftrTileMappedResource = true;
refFtrTable.flags.ftrAstcHdr2D = true;
refFtrTable.flags.ftrAstcLdr2D = true;
refFtrTable.flags.ftrStandardMipTailFormat = true;
refFtrTable.flags.ftrFrameBufferLLC = true;
refFtrTable.flags.ftrCrystalwell = true;
refFtrTable.flags.ftrLLCBypass = true;
refFtrTable.flags.ftrDisplayEngineS3d = true;
refFtrTable.flags.ftrWddm2GpuMmu = true;
refFtrTable.flags.ftrWddm2_1_64kbPages = true;
refFtrTable.flags.ftrKmdDaf = true;
refFtrTable.flags.ftrSimulationMode = true;
refFtrTable.flags.ftrE2ECompression = true;
refFtrTable.flags.ftrLinearCCS = true;
refFtrTable.flags.ftrCCSRing = true;
refFtrTable.flags.ftrCCSNode = true;
refFtrTable.flags.ftrRcsNode = true;
refFtrTable.flags.ftrMemTypeMocsDeferPAT = true;
refFtrTable.flags.ftrLocalMemory = true;
refFtrTable.flags.ftrLocalMemoryAllows4KB = true;
refFtrTable.flags.ftrFlatPhysCCS = true;
refFtrTable.flags.ftrMultiTileArch = true;
refFtrTable.flags.ftrCCSMultiInstance = true;
refFtrTable.flags.ftrPpgtt64KBWalkOptimization = true;
refFtrTable.flags.ftrUnified3DMediaCompressionFormats = true;
refFtrTable.flags.ftr57bGPUAddressing = true;
}
static void fillReferenceWaToReceive(WorkaroundTable &refWaTable) {
refWaTable = {};
refWaTable.flags.waDoNotUseMIReportPerfCount = true;
refWaTable.flags.waEnablePreemptionGranularityControlByUMD = true;
refWaTable.flags.waSendMIFLUSHBeforeVFE = true;
refWaTable.flags.waReportPerfCountUseGlobalContextID = true;
refWaTable.flags.waDisableLSQCROPERFforOCL = true;
refWaTable.flags.waMsaa8xTileYDepthPitchAlignment = true;
refWaTable.flags.waLosslessCompressionSurfaceStride = true;
refWaTable.flags.waFbcLinearSurfaceStride = true;
refWaTable.flags.wa4kAlignUVOffsetNV12LinearSurface = true;
refWaTable.flags.waEncryptedEdramOnlyPartials = true;
refWaTable.flags.waDisableEdramForDisplayRT = true;
refWaTable.flags.waForcePcBbFullCfgRestore = true;
refWaTable.flags.waCompressedResourceRequiresConstVA21 = true;
refWaTable.flags.waDisablePerCtxtPreemptionGranularityControl = true;
refWaTable.flags.waLLCCachingUnsupported = true;
refWaTable.flags.waUseVAlign16OnTileXYBpp816 = true;
refWaTable.flags.waModifyVFEStateAfterGPGPUPreemption = true;
refWaTable.flags.waCSRUncachable = true;
refWaTable.flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true;
refWaTable.flags.waRestrictPitch128KB = true;
refWaTable.flags.waLimit128BMediaCompr = true;
refWaTable.flags.waUntypedBufferCompression = true;
refWaTable.flags.waAuxTable16KGranular = true;
refWaTable.flags.waDisableFusedThreadScheduling = true;
refWaTable.flags.waAuxTable64KGranular = true;
}
}; // namespace SkuInfoBaseReference
} // namespace NEO

View File

@ -1,98 +0,0 @@
/*
* Copyright (C) 2018-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/sku_info/operations/windows/sku_info_receiver.h"
#include "opencl/test/unit_test/sku_info/sku_info_base_reference.h"
#include "gtest/gtest.h"
using namespace NEO;
inline bool operator==(const FeatureTable &lhs, const FeatureTable &rhs) {
return lhs.ftrBcsInfo == rhs.ftrBcsInfo && lhs.packed == rhs.packed;
}
TEST(SkuInfoReceiverTest, givenAdapterInfoWhenReceivingThenUpdateFtrTable) {
FeatureTable refFeatureTable = {};
FeatureTable requestedFeatureTable = {};
ADAPTER_INFO adapterInfo = {};
memset(&adapterInfo.SkuTable, ~0, sizeof(adapterInfo.SkuTable));
EXPECT_EQ(1lu, requestedFeatureTable.ftrBcsInfo.to_ulong());
SkuInfoReceiver::receiveFtrTableFromAdapterInfo(&requestedFeatureTable, &adapterInfo);
SkuInfoBaseReference::fillReferenceFtrToReceive(refFeatureTable);
EXPECT_EQ(1lu, requestedFeatureTable.ftrBcsInfo.to_ulong());
EXPECT_TRUE(refFeatureTable == requestedFeatureTable);
refFeatureTable.flags.ftr3dMidBatchPreempt = false;
requestedFeatureTable.flags.ftr3dMidBatchPreempt = true;
EXPECT_FALSE(refFeatureTable == requestedFeatureTable);
}
TEST(SkuInfoReceiverTest, givenFeatureTableWhenDifferentDataThenEqualityOperatorReturnsCorrectScore) {
FeatureTable refFeatureTable = {};
FeatureTable requestedFeatureTable = {};
refFeatureTable.ftrBcsInfo = 1;
requestedFeatureTable.ftrBcsInfo = 0;
EXPECT_FALSE(refFeatureTable == requestedFeatureTable);
refFeatureTable.ftrBcsInfo = 0;
requestedFeatureTable.ftrBcsInfo = 1;
EXPECT_FALSE(refFeatureTable == requestedFeatureTable);
refFeatureTable.ftrBcsInfo = 1;
requestedFeatureTable.ftrBcsInfo = 1;
refFeatureTable.packed[0] = 1u;
requestedFeatureTable.packed[0] = 0;
EXPECT_FALSE(refFeatureTable == requestedFeatureTable);
refFeatureTable.packed[0] = 0;
requestedFeatureTable.packed[0] = 1;
EXPECT_FALSE(refFeatureTable == requestedFeatureTable);
refFeatureTable.packed[0] = 0;
requestedFeatureTable.packed[0] = 0;
refFeatureTable.packed[1] = 0;
requestedFeatureTable.packed[1] = 1;
EXPECT_FALSE(refFeatureTable == requestedFeatureTable);
refFeatureTable.packed[0] = 0;
requestedFeatureTable.packed[0] = 0;
refFeatureTable.packed[1] = 1;
requestedFeatureTable.packed[1] = 0;
EXPECT_FALSE(refFeatureTable == requestedFeatureTable);
refFeatureTable.packed[1] = 1;
requestedFeatureTable.packed[1] = 1;
EXPECT_TRUE(refFeatureTable == requestedFeatureTable);
}
TEST(SkuInfoReceiverTest, givenAdapterInfoWhenReceivingThenUpdateWaTable) {
WorkaroundTable refWaTable = {};
WorkaroundTable requestedWaTable = {};
ADAPTER_INFO adapterInfo = {};
memset(&adapterInfo.WaTable, ~0, sizeof(adapterInfo.WaTable));
SkuInfoReceiver::receiveWaTableFromAdapterInfo(&requestedWaTable, &adapterInfo);
SkuInfoBaseReference::fillReferenceWaToReceive(refWaTable);
EXPECT_TRUE(memcmp(&requestedWaTable, &refWaTable, sizeof(WorkaroundTable)) == 0);
}

View File

@ -1,47 +0,0 @@
/*
* Copyright (C) 2018-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/sku_info/operations/sku_info_transfer.h"
#include "opencl/test/unit_test/sku_info/sku_info_base_reference.h"
#include "gtest/gtest.h"
using namespace NEO;
TEST(SkuInfoTransferTest, givenFeatureTableWhenFillingStructureForGmmThenCopyOnlySelectedValues) {
_SKU_FEATURE_TABLE requestedFtrTable = {};
_SKU_FEATURE_TABLE refFtrTable = {};
FeatureTable featureTable;
for (auto &e : featureTable.packed) {
e = std::numeric_limits<uint32_t>::max();
}
SkuInfoTransfer::transferFtrTableForGmm(&requestedFtrTable, &featureTable);
SkuInfoBaseReference::fillReferenceFtrForTransfer(refFtrTable);
EXPECT_TRUE(memcmp(&requestedFtrTable, &refFtrTable, sizeof(_SKU_FEATURE_TABLE)) == 0);
}
TEST(SkuInfoTransferTest, givenWaTableWhenFillingStructureForGmmThenCopyOnlySelectedValues) {
_WA_TABLE requestedWaTable = {};
_WA_TABLE refWaTable = {};
WorkaroundTable waTable;
refWaTable = {};
for (auto &e : waTable.packed) {
e = std::numeric_limits<uint32_t>::max();
}
SkuInfoTransfer::transferWaTableForGmm(&requestedWaTable, &waTable);
SkuInfoBaseReference::fillReferenceWaForTransfer(refWaTable);
EXPECT_TRUE(memcmp(&requestedWaTable, &refWaTable, sizeof(_WA_TABLE)) == 0);
}