text: //==============================================================================
  // Copyright (c) 2010-2020 Advanced Micro Devices, Inc. All rights reserved.
  /// \author AMD Developer Tools Team
  /// \file
  /// \brief  CL counter definitions for GFX8
  //==============================================================================
  
  #include "gpa_counter.h"
  #include "gpa_hw_counter_gfx8.h"
  #include "gpa_hw_exposed_counters_gfx8.h"
  #include "gpa_hw_counter_cl_gfx8.h"
  
  // This file is autogenerated by the ConvertHWEnums project
  
  namespace countergfx8
  {
      GPA_HardwareCounterDesc* cl_counter_group_array_gfx8[] = {
          cb0_counters_gfx8,
          cb1_counters_gfx8,
          cb2_counters_gfx8,
          cb3_counters_gfx8,
          cpf_counters_gfx8,
          db0_counters_gfx8,
          db1_counters_gfx8,
          db2_counters_gfx8,
          db3_counters_gfx8,
          grbm_counters_gfx8,
          grbmse0_counters_gfx8,
          pa_su0_counters_gfx8,
          pa_sc0_counters_gfx8,
          spi0_counters_gfx8,
          sq0_counters_gfx8,
          sq_es0_counters_gfx8,
          sq_gs0_counters_gfx8,
          sq_vs0_counters_gfx8,
          sq_ps0_counters_gfx8,
          sq_ls0_counters_gfx8,
          sq_hs0_counters_gfx8,
          sq_cs0_counters_gfx8,
          sx0_counters_gfx8,
          ta0_counters_gfx8,
          ta1_counters_gfx8,
          ta2_counters_gfx8,
          ta3_counters_gfx8,
          ta4_counters_gfx8,
          ta5_counters_gfx8,
          ta6_counters_gfx8,
          ta7_counters_gfx8,
          ta8_counters_gfx8,
          ta9_counters_gfx8,
          ta10_counters_gfx8,
          ta11_counters_gfx8,
          ta12_counters_gfx8,
          ta13_counters_gfx8,
          ta14_counters_gfx8,
          ta15_counters_gfx8,
          tca0_counters_gfx8,
          tca1_counters_gfx8,
          tcc0_counters_gfx8,
          tcc1_counters_gfx8,
          tcc2_counters_gfx8,
          tcc3_counters_gfx8,
          tcc4_counters_gfx8,
          tcc5_counters_gfx8,
          tcc6_counters_gfx8,
          tcc7_counters_gfx8,
          tcc8_counters_gfx8,
          tcc9_counters_gfx8,
          tcc10_counters_gfx8,
          tcc11_counters_gfx8,
          tcc12_counters_gfx8,
          tcc13_counters_gfx8,
          tcc14_counters_gfx8,
          tcc15_counters_gfx8,
          td0_counters_gfx8,
          td1_counters_gfx8,
          td2_counters_gfx8,
          td3_counters_gfx8,
          td4_counters_gfx8,
          td5_counters_gfx8,
          td6_counters_gfx8,
          td7_counters_gfx8,
          td8_counters_gfx8,
          td9_counters_gfx8,
          td10_counters_gfx8,
          td11_counters_gfx8,
          td12_counters_gfx8,
          td13_counters_gfx8,
          td14_counters_gfx8,
          td15_counters_gfx8,
          tcp0_counters_gfx8,
          tcp1_counters_gfx8,
          tcp2_counters_gfx8,
          tcp3_counters_gfx8,
          tcp4_counters_gfx8,
          tcp5_counters_gfx8,
          tcp6_counters_gfx8,
          tcp7_counters_gfx8,
          tcp8_counters_gfx8,
          tcp9_counters_gfx8,
          tcp10_counters_gfx8,
          tcp11_counters_gfx8,
          tcp12_counters_gfx8,
          tcp13_counters_gfx8,
          tcp14_counters_gfx8,
          tcp15_counters_gfx8,
          gds_counters_gfx8,
          vgt0_counters_gfx8,
          ia0_counters_gfx8,
          mc0_counters_gfx8,
          srbm_counters_gfx8,
          wd_counters_gfx8,
          cpg_counters_gfx8,
          cpc_counters_gfx8,
          gpin_counters_gfx8,
      };
  
      GPA_HardwareCounterDesc* cl_exposed_counters_group_array_gfx8[] = {
          cb0_exposed_counters_gfx8,
          cb1_exposed_counters_gfx8,
          cb2_exposed_counters_gfx8,
          cb3_exposed_counters_gfx8,
          db0_exposed_counters_gfx8,
          db1_exposed_counters_gfx8,
          db2_exposed_counters_gfx8,
          db3_exposed_counters_gfx8,
          grbm_exposed_counters_gfx8,
          pa_su0_exposed_counters_gfx8,
          pa_sc0_exposed_counters_gfx8,
          spi0_exposed_counters_gfx8,
          sq0_exposed_counters_gfx8,
          sq_es0_exposed_counters_gfx8,
          sq_gs0_exposed_counters_gfx8,
          sq_vs0_exposed_counters_gfx8,
          sq_ps0_exposed_counters_gfx8,
          sq_ls0_exposed_counters_gfx8,
          sq_hs0_exposed_counters_gfx8,
          sq_cs0_exposed_counters_gfx8,
          sx0_exposed_counters_gfx8,
          ta0_exposed_counters_gfx8,
          ta1_exposed_counters_gfx8,
          ta2_exposed_counters_gfx8,
          ta3_exposed_counters_gfx8,
          ta4_exposed_counters_gfx8,
          ta5_exposed_counters_gfx8,
          ta6_exposed_counters_gfx8,
          ta7_exposed_counters_gfx8,
          ta8_exposed_counters_gfx8,
          ta9_exposed_counters_gfx8,
          ta10_exposed_counters_gfx8,
          ta11_exposed_counters_gfx8,
          ta12_exposed_counters_gfx8,
          ta13_exposed_counters_gfx8,
          ta14_exposed_counters_gfx8,
          ta15_exposed_counters_gfx8,
          tcc0_exposed_counters_gfx8,
          tcc1_exposed_counters_gfx8,
          tcc2_exposed_counters_gfx8,
          tcc3_exposed_counters_gfx8,
          tcc4_exposed_counters_gfx8,
          tcc5_exposed_counters_gfx8,
          tcc6_exposed_counters_gfx8,
          tcc7_exposed_counters_gfx8,
          tcc8_exposed_counters_gfx8,
          tcc9_exposed_counters_gfx8,
          tcc10_exposed_counters_gfx8,
          tcc11_exposed_counters_gfx8,
          tcc12_exposed_counters_gfx8,
          tcc13_exposed_counters_gfx8,
          tcc14_exposed_counters_gfx8,
          tcc15_exposed_counters_gfx8,
          tcp0_exposed_counters_gfx8,
          tcp1_exposed_counters_gfx8,
          tcp2_exposed_counters_gfx8,
          tcp3_exposed_counters_gfx8,
          tcp4_exposed_counters_gfx8,
          tcp5_exposed_counters_gfx8,
          tcp6_exposed_counters_gfx8,
          tcp7_exposed_counters_gfx8,
          tcp8_exposed_counters_gfx8,
          tcp9_exposed_counters_gfx8,
          tcp10_exposed_counters_gfx8,
          tcp11_exposed_counters_gfx8,
          tcp12_exposed_counters_gfx8,
          tcp13_exposed_counters_gfx8,
          tcp14_exposed_counters_gfx8,
          tcp15_exposed_counters_gfx8,
          vgt0_exposed_counters_gfx8,
      };
  
      GPA_CounterGroupDesc hw_cl_groups_gfx8[] = {
          {0, "CB0", 0, 396, 4, 4},
          {1, "CB1", 1, 396, 4, 4},
          {2, "CB2", 2, 396, 4, 4},
          {3, "CB3", 3, 396, 4, 4},
          {4, "CPF", 0, 19, 2, 4},
          {5, "DB0", 0, 257, 4, 6},
          {6, "DB1", 1, 257, 4, 6},
          {7, "DB2", 2, 257, 4, 6},
          {8, "DB3", 3, 257, 4, 6},
          {9, "GRBM", 0, 34, 2, 0},
          {10, "GRBMSE", 0, 15, 4, 0},
          {11, "PA_SU", 0, 153, 4, 6},
          {12, "PA_SC", 0, 397, 8, 4},
          {13, "SPI", 0, 197, 6, 16},
          {14, "SQ", 0, 299, 16, 16},
          {15, "SQ_ES", 0, 299, 16, 16},
          {16, "SQ_GS", 0, 299, 16, 16},
          {17, "SQ_VS", 0, 299, 16, 16},
          {18, "SQ_PS", 0, 299, 16, 16},
          {19, "SQ_LS", 0, 299, 16, 16},
          {20, "SQ_HS", 0, 299, 16, 16},
          {21, "SQ_CS", 0, 299, 16, 16},
          {22, "SX", 0, 34, 4, 8},
          {23, "TA0", 0, 119, 2, 4},
          {24, "TA1", 1, 119, 2, 4},
          {25, "TA2", 2, 119, 2, 4},
          {26, "TA3", 3, 119, 2, 4},
          {27, "TA4", 4, 119, 2, 4},
          {28, "TA5", 5, 119, 2, 4},
          {29, "TA6", 6, 119, 2, 4},
          {30, "TA7", 7, 119, 2, 4},
          {31, "TA8", 8, 119, 2, 4},
          {32, "TA9", 9, 119, 2, 4},
          {33, "TA10", 10, 119, 2, 4},
          {34, "TA11", 11, 119, 2, 4},
          {35, "TA12", 12, 119, 2, 4},
          {36, "TA13", 13, 119, 2, 4},
          {37, "TA14", 14, 119, 2, 4},
          {38, "TA15", 15, 119, 2, 4},
          {39, "TCA0", 0, 35, 4, 8},
          {40, "TCA1", 1, 35, 4, 8},
          {41, "TCC0", 0, 192, 4, 8},
          {42, "TCC1", 1, 192, 4, 8},
          {43, "TCC2", 2, 192, 4, 8},
          {44, "TCC3", 3, 192, 4, 8},
          {45, "TCC4", 4, 192, 4, 8},
          {46, "TCC5", 5, 192, 4, 8},
          {47, "TCC6", 6, 192, 4, 8},
          {48, "TCC7", 7, 192, 4, 8},
          {49, "TCC8", 8, 192, 4, 8},
          {50, "TCC9", 9, 192, 4, 8},
          {51, "TCC10", 10, 192, 4, 8},
          {52, "TCC11", 11, 192, 4, 8},
          {53, "TCC12", 12, 192, 4, 8},
          {54, "TCC13", 13, 192, 4, 8},
          {55, "TCC14", 14, 192, 4, 8},
          {56, "TCC15", 15, 192, 4, 8},
          {57, "TD0", 0, 55, 2, 4},
          {58, "TD1", 1, 55, 2, 4},
          {59, "TD2", 2, 55, 2, 4},
          {60, "TD3", 3, 55, 2, 4},
          {61, "TD4", 4, 55, 2, 4},
          {62, "TD5", 5, 55, 2, 4},
          {63, "TD6", 6, 55, 2, 4},
          {64, "TD7", 7, 55, 2, 4},
          {65, "TD8", 8, 55, 2, 4},
          {66, "TD9", 9, 55, 2, 4},
          {67, "TD10", 10, 55, 2, 4},
          {68, "TD11", 11, 55, 2, 4},
          {69, "TD12", 12, 55, 2, 4},
          {70, "TD13", 13, 55, 2, 4},
          {71, "TD14", 14, 55, 2, 4},
          {72, "TD15", 15, 55, 2, 4},
          {73, "TCP0", 0, 180, 4, 6},
          {74, "TCP1", 1, 180, 4, 6},
          {75, "TCP2", 2, 180, 4, 6},
          {76, "TCP3", 3, 180, 4, 6},
          {77, "TCP4", 4, 180, 4, 6},
          {78, "TCP5", 5, 180, 4, 6},
          {79, "TCP6", 6, 180, 4, 6},
          {80, "TCP7", 7, 180, 4, 6},
          {81, "TCP8", 8, 180, 4, 6},
          {82, "TCP9", 9, 180, 4, 6},
          {83, "TCP10", 10, 180, 4, 6},
          {84, "TCP11", 11, 180, 4, 6},
          {85, "TCP12", 12, 180, 4, 6},
          {86, "TCP13", 13, 180, 4, 6},
          {87, "TCP14", 14, 180, 4, 6},
          {88, "TCP15", 15, 180, 4, 6},
          {89, "GDS", 0, 121, 4, 4},
          {90, "VGT", 0, 147, 4, 6},
          {91, "IA", 0, 24, 4, 4},
          {92, "MC", 0, 33, 4, 0},
          {93, "SRBM", 0, 27, 2, 0},
          {94, "WD", 0, 37, 4, 0},
          {95, "CPG", 0, 48, 2, 4},
          {96, "CPC", 0, 24, 2, 4},
          {97, "GPIN", 0, 5, 5, 0},
      };
  
      GPA_CounterGroupExposedCounterDesc hw_cl_exposed_counters_by_group_gfx8[] = {
          {0, 0, {7, 116, 117, 118, 118, 126, 127, 128, 162, 257, 259}},
          {1, 396, {7, 116, 117, 118, 118, 126, 127, 128, 162, 257, 259}},
          {2, 792, {7, 116, 117, 118, 118, 126, 127, 128, 162, 257, 259}},
          {3, 1188, {7, 116, 117, 118, 118, 126, 127, 128, 162, 257, 259}},
          {5, 1603, {4, 15, 28, 46, 48, 55, 60, 63, 144, 174, 175, 176, 177, 178, 179}},
          {6, 1860, {4, 15, 28, 46, 48, 55, 60, 63, 144, 174, 175, 176, 177, 178, 179}},
          {7, 2117, {4, 15, 28, 46, 48, 55, 60, 63, 144, 174, 175, 176, 177, 178, 179}},
          {8, 2374, {4, 15, 28, 46, 48, 55, 60, 63, 144, 174, 175, 176, 177, 178, 179}},
          {9, 2631, {0, 2}},
          {11, 2680, {8, 14, 21, 54, 55, 56, 57, 61, 62, 73, 74, 105, 109}},
          {12, 2833, {163, 164, 165, 166, 239, 240, 241, 242, 263}},
          {13, 3230, {1, 10, 17, 20, 26, 32, 38, 44, 48, 54, 58, 59, 62, 64, 65, 68, 70, 75}},
          {14, 3427, {4, 14, 26, 27, 28, 30, 31, 32, 33, 34, 35, 61, 81, 86, 89, 97}},
          {15, 3726, {4, 14, 26, 27, 28, 30, 31, 32, 33, 34, 35, 61, 81, 86, 89, 97}},
          {16, 4025, {4, 14, 26, 27, 28, 30, 31, 32, 33, 34, 35, 61, 81, 86, 89, 97}},
          {17, 4324, {4, 14, 26, 27, 28, 30, 31, 32, 33, 34, 35, 61, 81, 86, 89, 97}},
          {18, 4623, {4, 14, 26, 27, 28, 30, 31, 32, 33, 34, 35, 61, 81, 86, 89, 97}},
          {19, 4922, {4, 14, 26, 27, 28, 30, 31, 32, 33, 34, 35, 61, 81, 86, 89, 97}},
          {20, 5221, {4, 14, 26, 27, 28, 30, 31, 32, 33, 34, 35, 61, 81, 86, 89, 97}},
          {21, 5520, {4, 14, 26, 27, 28, 30, 31, 32, 33, 34, 35, 61, 81, 86, 89, 97}},
          {22, 5819, {12, 14, 17, 19, 22, 24, 27, 29}},
          {23, 5853, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {24, 5972, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {25, 6091, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {26, 6210, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {27, 6329, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {28, 6448, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {29, 6567, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {30, 6686, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {31, 6805, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {32, 6924, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {33, 7043, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {34, 7162, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {35, 7281, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {36, 7400, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {37, 7519, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {38, 7638, {15, 68, 69, 70, 71, 89, 90, 91, 92, 93, 94, 95, 96, 97, 101, 102}},
          {41, 7827, {18, 19, 26, 28, 35}},
          {42, 8019, {18, 19, 26, 28, 35}},
          {43, 8211, {18, 19, 26, 28, 35}},
          {44, 8403, {18, 19, 26, 28, 35}},
          {45, 8595, {18, 19, 26, 28, 35}},
          {46, 8787, {18, 19, 26, 28, 35}},
          {47, 8979, {18, 19, 26, 28, 35}},
          {48, 9171, {18, 19, 26, 28, 35}},
          {49, 9363, {18, 19, 26, 28, 35}},
          {50, 9555, {18, 19, 26, 28, 35}},
          {51, 9747, {18, 19, 26, 28, 35}},
          {52, 9939, {18, 19, 26, 28, 35}},
          {53, 10131, {18, 19, 26, 28, 35}},
          {54, 10323, {18, 19, 26, 28, 35}},
          {55, 10515, {18, 19, 26, 28, 35}},
          {56, 10707, {18, 19, 26, 28, 35}},
          {73, 11779, {3}},
          {74, 11959, {3}},
          {75, 12139, {3}},
          {76, 12319, {3}},
          {77, 12499, {3}},
          {78, 12679, {3}},
          {79, 12859, {3}},
          {80, 13039, {3}},
          {81, 13219, {3}},
          {82, 13399, {3}},
          {83, 13579, {3}},
          {84, 13759, {3}},
          {85, 13939, {3}},
          {86, 14119, {3}},
          {87, 14299, {3}},
          {88, 14479, {3}},
          {90, 14780, {1, 9, 20, 96, 105, 124}},
      };
  
      GPA_PaddedCounterDesc cl_padded_counter_by_group_gfx8[] = {
      {}
      };
  
      GPA_SQCounterGroupDesc hw_cl_sq_groups_gfx8[] = {
          {14, 0, SQ_ALL},
          {15, 0, SQ_ES},
          {16, 0, SQ_GS},
          {17, 0, SQ_VS},
          {18, 0, SQ_PS},
          {19, 0, SQ_LS},
          {20, 0, SQ_HS},
          {21, 0, SQ_CS},
      };
  
  
      unsigned int hw_cl_sq_isolated_groups_gfx8[] = {
          23, // Ta
          24, // Ta
          25, // Ta
          26, // Ta
          27, // Ta
          28, // Ta
          29, // Ta
          30, // Ta
          31, // Ta
          32, // Ta
          33, // Ta
          34, // Ta
          35, // Ta
          36, // Ta
          37, // Ta
          38, // Ta
          39, // Tca
          40, // Tca
          41, // Tcc
          42, // Tcc
          43, // Tcc
          44, // Tcc
          45, // Tcc
          46, // Tcc
          47, // Tcc
          48, // Tcc
          49, // Tcc
          50, // Tcc
          51, // Tcc
          52, // Tcc
          53, // Tcc
          54, // Tcc
          55, // Tcc
          56, // Tcc
          57, // Td
          58, // Td
          59, // Td
          60, // Td
          61, // Td
          62, // Td
          63, // Td
          64, // Td
          65, // Td
          66, // Td
          67, // Td
          68, // Td
          69, // Td
          70, // Td
          71, // Td
          72, // Td
          73, // Tcp
          74, // Tcp
          75, // Tcp
          76, // Tcp
          77, // Tcp
          78, // Tcp
          79, // Tcp
          80, // Tcp
          81, // Tcp
          82, // Tcp
          83, // Tcp
          84, // Tcp
          85, // Tcp
          86, // Tcp
          87, // Tcp
          88, // Tcp
      };
  
      const std::set<unsigned int> hw_cl_timestamp_block_ids_gfx8 =       {}; ///< Timestamp block id's for CL for gfx8 family
      const std::set<unsigned int> hw_cl_time_counter_indices_gfx8 =      {}; ///< Timestamp counter indices for CL for gfx8 family
      const unsigned int           hw_cl_group_count_gfx8                = sizeof(hw_cl_groups_gfx8) / sizeof(GPA_CounterGroupDesc);
      const unsigned int           hw_cl_exposed_counters_group_count_gfx8 = 70;
      const unsigned int           cl_padded_counter_group_count_gfx8 = 0;
      const unsigned int           hw_cl_sq_group_count_gfx8              = sizeof(hw_cl_sq_groups_gfx8) / sizeof(GPA_SQCounterGroupDesc);
      const unsigned int           hw_cl_sq_isolated_group_count_gfx8      = sizeof(hw_cl_sq_isolated_groups_gfx8) / sizeof(unsigned int);
  }; // namespace
  