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