1 /* 2 * Copyright (C) 2021 Intel Corporation 3 * 4 * SPDX-License-Identifier: MIT 5 * 6 */ 7 8 #pragma once 9 #include "shared/source/xe_hpc_core/hw_cmds_base.h" 10 namespace NEO { 11 12 struct PVC : public XE_HPC_COREFamily { 13 static const PLATFORM platform; 14 static const HardwareInfo hwInfo; 15 static const uint64_t defaultHardwareInfoConfig; 16 static FeatureTable featureTable; 17 static WorkaroundTable workaroundTable; 18 // Initial non-zero values for unit tests 19 static const uint32_t threadsPerEu = 8; 20 static const uint32_t maxEuPerSubslice = 8; 21 static const uint32_t maxSlicesSupported = 8; 22 static const uint32_t maxSubslicesSupported = 64; 23 static const uint32_t maxDualSubslicesSupported = 64; 24 static const RuntimeCapabilityTable capabilityTable; 25 static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig); 26 static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo); 27 static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile); 28 static void adjustHardwareInfo(HardwareInfo *hwInfo); 29 }; 30 31 class PVC_CONFIG : public PVC { 32 public: 33 static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable); 34 static void setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile); 35 static const HardwareInfo hwInfo; 36 37 private: 38 static GT_SYSTEM_INFO gtSystemInfo; 39 }; 40 41 #include "hw_cmds_pvc.inl" 42 } // namespace NEO 43