platform/drm-tests: Add mali_stats test

Add mali_stats to drm-tests. This test includes a library for accessing
Mali performance counters, along with a simple test program
demonstrating how to use it.

Notes and technical specifications on these performance counters can be
found at go/mali-perf-metrics-notes.

BUG=b:221476799
TEST=Tested on asurada

Change-Id: I2127b04763f6200c6197cf91dac69fb4f4903136
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/drm-tests/+/3502554
Reviewed-by: Fritz Koenig <frkoenig@chromium.org>
Reviewed-by: Miguel Casas-Sanchez <mcasas@chromium.org>
Tested-by: Justin Green <greenjustin@google.com>
Commit-Queue: Justin Green <greenjustin@google.com>
diff --git a/Makefile b/Makefile
index 6a84647..e9227f0 100644
--- a/Makefile
+++ b/Makefile
@@ -22,6 +22,7 @@
 	CC_BINARY(drm_cursor_test) \
 	CC_BINARY(gamma_test) \
 	CC_BINARY(linear_bo_test) \
+	CC_BINARY(mali_stats) \
 	CC_BINARY(mapped_access_perf_test) \
 	CC_BINARY(mapped_texture_test) \
 	CC_BINARY(mmap_test) \
@@ -82,13 +83,17 @@
 
 v4l2_stateful_decoder.o: $(SRC)/v4l2_stateful_decoder.c
 v4l2_stateful_decoder.o: $(SRC)/bitstreams/bitstream_helper.h
-v4l2_stateful_decoder.o: $(SRC)/v4l2_macros.h
+v4l2_stateful_decoder.o: $(SRC)/v4l2_macros.h $(SRC)/logging.h
 CC_BINARY(v4l2_stateful_decoder): v4l2_stateful_decoder.o
 CC_BINARY(v4l2_stateful_decoder): CC_STATIC_LIBRARY(libbitstreams.pic.a)
 CC_BINARY(v4l2_stateful_decoder): CC_STATIC_LIBRARY(libbsdrm.pic.a)
 CC_BINARY(v4l2_stateful_decoder): LDLIBS += $(DRM_LIBS)
 CC_BINARY(v4l2_stateful_decoder): LDLIBS += -lssl -lcrypto
 
+CC_BINARY(mali_stats): mali_stats.o
+CC_BINARY(mali_stats): $(SRC)/logging.h $(SRC)/mali/mali_ioctl.h
+CC_BINARY(mali_stats): CC_STATIC_LIBRARY(libmali.pic.a)
+
 CC_BINARY(v4l2_stateful_encoder): v4l2_stateful_encoder.o
 ifeq ($(USE_V4LPLUGIN),1)
 CC_BINARY(v4l2_stateful_encoder): LDLIBS += -lv4l2
diff --git a/logging.h b/logging.h
new file mode 100644
index 0000000..d795a09
--- /dev/null
+++ b/logging.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2022 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifndef __LOGGING_H__
+#define __LOGGING_H__
+
+enum logging_levels {
+  kLoggingDebug = -1,
+  kLoggingInfo = 0,
+  kLoggingError,
+  kLoggingFatal,
+  kLoggingLevelMax
+};
+
+#define DEFAULT_LOG_LEVEL kLoggingInfo
+
+#define LOG(level, stream, fmt, ...)       \
+  do {                                     \
+    if (level >= DEFAULT_LOG_LEVEL) {      \
+      fprintf(stream, fmt, ##__VA_ARGS__); \
+      fprintf(stream, "\n");               \
+      fflush(stream);                      \
+    }                                      \
+  } while (0)
+
+#define LOG_DEBUG(fmt, ...) LOG(kLoggingDebug, stderr, fmt, ##__VA_ARGS__)
+#define LOG_INFO(fmt, ...) LOG(kLoggingInfo, stderr, fmt, ##__VA_ARGS__)
+#define LOG_ERROR(fmt, ...) LOG(kLoggingError, stderr, fmt, ##__VA_ARGS__)
+#define LOG_FATAL(fmt, ...)                         \
+  do {                                              \
+    LOG(kLoggingFatal, stderr, fmt, ##__VA_ARGS__); \
+    exit(EXIT_FAILURE);                             \
+  } while (0)
+
+#endif  // __LOGGING_H__
diff --git a/mali/mali_gpu_perf_metrics.c b/mali/mali_gpu_perf_metrics.c
new file mode 100644
index 0000000..03d970d
--- /dev/null
+++ b/mali/mali_gpu_perf_metrics.c
@@ -0,0 +1,284 @@
+/*
+ * Copyright 2022 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "mali/mali_gpu_perf_metrics.h"
+
+#include <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <unistd.h>
+
+#include "logging.h"
+#include "mali/mali_gpu_props.h"
+#include "mali/mali_ioctl.h"
+
+int num_shader_cores;
+int num_l2_caches;
+MaliGpuModel model;
+
+int gpufd = -1;
+int reader_fd = -1;
+
+struct kbase_hwcnt_reader_metadata reader_metadata;
+
+// The model logic here is also taken from gfx-pps.
+void populate_model(int product_id) {
+  int masked_product_id = product_id & 0xF00F;
+  switch (product_id) {
+    case 0x6956:
+      model = gpu_model_t60x;
+      break;
+    case 0x0620:
+      model = gpu_model_t62x;
+      break;
+    case 0x0720:
+      model = gpu_model_t72x;
+      break;
+    case 0x0750:
+      model = gpu_model_t76x;
+      break;
+    case 0x0820:
+      model = gpu_model_t82x;
+      break;
+    case 0x0830:
+      model = gpu_model_t83x;
+      break;
+    case 0x0860:
+      model = gpu_model_t86x;
+      break;
+    case 0x0880:
+      model = gpu_model_tfrx;
+      break;
+    default:
+      switch (masked_product_id) {
+        case 0x6000:
+          model = gpu_model_tmix;
+          break;
+        case 0x6001:
+          model = gpu_model_thex;
+          break;
+        case 0x7000:
+          model = gpu_model_tsix;
+          break;
+        case 0x7001:
+          model = gpu_model_tnox;
+          break;
+        case 0x7002:
+          model = gpu_model_tgox;
+          break;
+        case 0x7003:
+          model = gpu_model_tdvx;
+          break;
+        case 0x9000:
+          model = gpu_model_ttrx;
+          break;
+        case 0x9001:
+        case 0x9003:
+          model = gpu_model_tnax;
+          break;
+        default:
+          LOG_FATAL("Error: unsupported GPU with product ID 0x%x", product_id);
+      }
+      break;
+  }
+}
+
+void initialize_mali_perf_reader() {
+  int product_id = get_gpu_prop(gpu_prop_product_id);
+  populate_model(product_id);
+  num_shader_cores =
+      __builtin_popcount(get_gpu_prop(gpu_prop_shader_present_mask));
+  num_l2_caches = get_gpu_prop(gpu_prop_num_l2);
+
+  gpufd = open(kGpuDevice, O_RDWR | O_CLOEXEC);
+  if (gpufd < 0)
+    LOG_FATAL("Error opening GPU device! %s\n", strerror(errno));
+
+  struct kbase_ioctl_version_check version_check;
+  if (ioctl(gpufd, KBASE_IOCTL_VERSION_CHECK, &version_check) < 0)
+    LOG_FATAL("Error checking GPU version! %s\n", strerror(errno));
+  assert(version_check.major >= SUPPORTED_MAJOR_VERSION);
+  assert(version_check.minor >= SUPPORTED_MINOR_VERSION);
+
+  struct kbase_ioctl_set_flags init_flags;
+  init_flags.create_flags = BASE_CONTEXT_SYSTEM_MONITOR_SUBMIT_DISABLED;
+  if (ioctl(gpufd, KBASE_IOCTL_SET_FLAGS, &init_flags) < 0)
+    LOG_FATAL("Error initializing GPU context! %s\n", strerror(errno));
+
+  struct kbase_ioctl_hwcnt_reader_setup reader_setup;
+  reader_setup.num_buffers = 2;
+  reader_setup.job_manager_mask = 0xFFFFFFFF;
+  reader_setup.shader_mask = 0xFFFFFFFF;
+  reader_setup.tiler_mask = 0xFFFFFFFF;
+  reader_setup.mmu_l2_mask = 0xFFFFFFFF;
+  reader_fd = ioctl(gpufd, KBASE_IOCTL_HWCNT_READER_SETUP, &reader_setup);
+  if (reader_fd < 0)
+    LOG_FATAL("Error setting up hwcnt reader! %s\n", strerror(errno));
+
+  uint32_t api_version;
+  if (ioctl(reader_fd, KBASE_HWCNT_READER_GET_API_VERSION, &api_version) < 0)
+    LOG_FATAL("Error getting API version! %s\n", strerror(errno));
+  assert(api_version >= SUPPORTED_API_VERSION);
+
+  uint32_t hw_version;
+  if (ioctl(reader_fd, KBASE_HWCNT_READER_GET_HWVER, &hw_version) < 0)
+    LOG_FATAL("Error getting hardware version! %s\n", strerror(errno));
+  assert(hw_version >= SUPPORTED_HW_VERSION);
+}
+
+void cleanup_mali_perf_reader() {
+  close(gpufd);
+  close(reader_fd);
+}
+
+struct mali_counter_values get_counter_values_from_dump(
+    MaliGpuCounter counter,
+    uint32_t* dump,
+    size_t dump_size_bytes) {
+  struct mali_counter_values ret;
+  memset(&ret, 0, sizeof(struct mali_counter_values));
+
+  if (counter >> 8 != model) {
+    LOG_ERROR("Error: counter is of incorrect model type!\n");
+    return ret;
+  }
+
+  int lower_range = -1;
+  int upper_range = -1;
+  int counter_type = (counter >> 6) & 3;
+  switch (counter_type) {
+    case gpu_counter_job_manager:
+      lower_range = 0;
+      upper_range = 1;
+      break;
+    case gpu_counter_tiler:
+      lower_range = 1;
+      upper_range = 2;
+      break;
+    case gpu_counter_l2:
+      lower_range = 2;
+      upper_range = lower_range + num_l2_caches;
+      break;
+    case gpu_counter_shader:
+      lower_range = 2 + num_l2_caches;
+      upper_range = lower_range + num_shader_cores;
+      break;
+    default:
+      // This should never happen
+      break;
+  }
+
+  ret.counter = counter;
+  ret.num_values = upper_range - lower_range;
+  ret.values = (uint32_t*)malloc(ret.num_values * sizeof(uint32_t));
+
+  int index = 0;
+  int present_index = -1;
+  const int max_index = dump_size_bytes / (64 * sizeof(uint32_t));
+  while (index < max_index && present_index < upper_range) {
+    if (dump[index * 64 + 2])
+      present_index++;
+
+    if (present_index >= lower_range && present_index < upper_range) {
+      uint32_t counter_val = dump[index * 64 + (counter & 0x3F)];
+      ret.values[present_index - lower_range] = counter_val;
+    }
+
+    index++;
+  }
+
+  return ret;
+}
+
+size_t get_dump_size_bytes() {
+  uint32_t ret;
+  if (ioctl(reader_fd, KBASE_HWCNT_READER_GET_BUFFER_SIZE, &ret) < 0)
+    LOG_ERROR("Error reading dump buffer size! %s\n", strerror(errno));
+  return ret;
+}
+
+void initiate_dump() {
+  if (ioctl(reader_fd, KBASE_HWCNT_READER_CLEAR, NULL) < 0)
+    LOG_ERROR("Error clearing dump buffer! %s\n", strerror(errno));
+
+  if (ioctl(reader_fd, KBASE_HWCNT_READER_DUMP, NULL) < 0)
+    LOG_ERROR("Error dumping performance metrics! %s\n", strerror(errno));
+}
+
+void get_dump_buffer() {
+  if (ioctl(reader_fd, KBASE_HWCNT_READER_GET_BUFFER, &reader_metadata) < 0)
+    LOG_ERROR("Error getting dump buffer! %s\n", strerror(errno));
+}
+
+void put_dump_buffer() {
+  if (ioctl(reader_fd, KBASE_HWCNT_READER_PUT_BUFFER, &reader_metadata) < 0)
+    LOG_ERROR("Error putting dump buffer! %s\n", strerror(errno));
+}
+
+uint8_t* copy_dump_to_userspace(size_t dump_size_bytes) {
+  uint8_t* ret = (uint8_t*)malloc(dump_size_bytes);
+
+  int offset = 0;
+  const int kMaxWindowSize = 4096;
+  while (offset < dump_size_bytes) {
+    int curr_window_size = dump_size_bytes - offset < kMaxWindowSize
+                               ? (dump_size_bytes - offset)
+                               : kMaxWindowSize;
+
+    uint8_t* curr_window = (uint8_t*)mmap(NULL, curr_window_size, PROT_READ,
+                                          MAP_SHARED, reader_fd, offset);
+    if (curr_window == MAP_FAILED) {
+      LOG_ERROR("Error mapping dump buffer! %s\n", strerror(errno));
+      break;
+    }
+
+    memcpy(ret + offset, curr_window, curr_window_size);
+
+    munmap(curr_window, curr_window_size);
+
+    offset += kMaxWindowSize;
+  }
+
+  return ret;
+}
+
+struct mali_counter_response read_perf_metrics(MaliGpuCounter* counters,
+                                               size_t num_counters) {
+  initiate_dump();
+  get_dump_buffer();
+
+  size_t dump_size_bytes = get_dump_size_bytes();
+  uint8_t* dump_data = copy_dump_to_userspace(dump_size_bytes);
+
+  put_dump_buffer();
+
+  struct mali_counter_response ret;
+  ret.num_counters = num_counters;
+  ret.counter_values = (struct mali_counter_values*)malloc(
+      num_counters * sizeof(struct mali_counter_values));
+  for (int i = 0; i < num_counters; i++) {
+    ret.counter_values[i] = get_counter_values_from_dump(
+        counters[i], (uint32_t*)dump_data, dump_size_bytes);
+  }
+
+  free(dump_data);
+
+  return ret;
+}
+
+void free_counters(struct mali_counter_response counters) {
+  for (int i = 0; i < counters.num_counters; i++) {
+    free(counters.counter_values[i].values);
+  }
+  free(counters.counter_values);
+}
diff --git a/mali/mali_gpu_perf_metrics.h b/mali/mali_gpu_perf_metrics.h
new file mode 100644
index 0000000..3a6c813
--- /dev/null
+++ b/mali/mali_gpu_perf_metrics.h
@@ -0,0 +1,2864 @@
+/*
+ * Copyright 2022 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <stddef.h>
+#include <stdint.h>
+
+#ifndef __MALI_GPU_PERF_METRICS_H__
+#define __MALI_GPU_PERF_METRICS_H__
+
+typedef enum {
+  gpu_counter_job_manager = 0,
+  gpu_counter_tiler = 1,
+  gpu_counter_shader = 2,
+  gpu_counter_l2 = 3
+} MaliGpuCounterType;
+
+typedef enum {
+  gpu_model_t60x = 0,
+  gpu_model_t62x = 1,
+  gpu_model_t72x = 2,
+  gpu_model_t76x = 3,
+  gpu_model_t82x = 4,
+  gpu_model_t83x = 5,
+  gpu_model_t86x = 6,
+  gpu_model_tfrx = 7,
+  gpu_model_tmix = 8,
+  gpu_model_thex = 9,
+  gpu_model_tsix = 10,
+  gpu_model_tnox = 11,
+  gpu_model_tgox = 12,
+  gpu_model_tdvx = 13,
+  gpu_model_ttrx = 14,
+  gpu_model_tnax = 15
+} MaliGpuModel;
+
+// These values are computed as:
+// index_in_counter_block | counter_type << 6 | model << 8
+// The indices were derived from the gfx-pps source code. More information at:
+// https://gitlab.freedesktop.org/Fahien/gfx-pps/-/blob/master/include/pps/gpu/panfrost/hwc_names.h # nocheck
+typedef enum {
+  t60x_messages_sent = 4,
+  t60x_messages_received = 5,
+  t60x_gpu_active = 6,
+  t60x_irq_active = 7,
+  t60x_js0_jobs = 8,
+  t60x_js0_tasks = 9,
+  t60x_js0_active = 10,
+  t60x_js0_wait_read = 12,
+  t60x_js0_wait_issue = 13,
+  t60x_js0_wait_depend = 14,
+  t60x_js0_wait_finish = 15,
+  t60x_js1_jobs = 16,
+  t60x_js1_tasks = 17,
+  t60x_js1_active = 18,
+  t60x_js1_wait_read = 20,
+  t60x_js1_wait_issue = 21,
+  t60x_js1_wait_depend = 22,
+  t60x_js1_wait_finish = 23,
+  t60x_js2_jobs = 24,
+  t60x_js2_tasks = 25,
+  t60x_js2_active = 26,
+  t60x_js2_wait_read = 28,
+  t60x_js2_wait_issue = 29,
+  t60x_js2_wait_depend = 30,
+  t60x_js2_wait_finish = 31,
+  t60x_ti_jobs_processed = 67,
+  t60x_ti_triangles = 68,
+  t60x_ti_quads = 69,
+  t60x_ti_polygons = 70,
+  t60x_ti_points = 71,
+  t60x_ti_lines = 72,
+  t60x_ti_vcache_hit = 73,
+  t60x_ti_vcache_miss = 74,
+  t60x_ti_front_facing = 75,
+  t60x_ti_back_facing = 76,
+  t60x_ti_prim_visible = 77,
+  t60x_ti_prim_culled = 78,
+  t60x_ti_prim_clipped = 79,
+  t60x_ti_level0 = 80,
+  t60x_ti_level1 = 81,
+  t60x_ti_level2 = 82,
+  t60x_ti_level3 = 83,
+  t60x_ti_level4 = 84,
+  t60x_ti_level5 = 85,
+  t60x_ti_level6 = 86,
+  t60x_ti_level7 = 87,
+  t60x_ti_command_1 = 88,
+  t60x_ti_command_2 = 89,
+  t60x_ti_command_3 = 90,
+  t60x_ti_command_4 = 91,
+  t60x_ti_command_4_7 = 92,
+  t60x_ti_command_8_15 = 93,
+  t60x_ti_command_16_63 = 94,
+  t60x_ti_command_64 = 95,
+  t60x_ti_compress_in = 96,
+  t60x_ti_compress_out = 97,
+  t60x_ti_compress_flush = 98,
+  t60x_ti_timestamps = 99,
+  t60x_ti_pcache_hit = 100,
+  t60x_ti_pcache_miss = 101,
+  t60x_ti_pcache_line = 102,
+  t60x_ti_pcache_stall = 103,
+  t60x_ti_wrbuf_hit = 104,
+  t60x_ti_wrbuf_miss = 105,
+  t60x_ti_wrbuf_line = 106,
+  t60x_ti_wrbuf_partial = 107,
+  t60x_ti_wrbuf_stall = 108,
+  t60x_ti_active = 109,
+  t60x_ti_loading_desc = 110,
+  t60x_ti_index_wait = 111,
+  t60x_ti_index_range_wait = 112,
+  t60x_ti_vertex_wait = 113,
+  t60x_ti_pcache_wait = 114,
+  t60x_ti_wrbuf_wait = 115,
+  t60x_ti_bus_read = 116,
+  t60x_ti_bus_write = 117,
+  t60x_ti_utlb_stall = 123,
+  t60x_ti_utlb_replay_miss = 124,
+  t60x_ti_utlb_replay_full = 125,
+  t60x_ti_utlb_new_miss = 126,
+  t60x_ti_utlb_hit = 127,
+  t60x_frag_active = 132,
+  t60x_frag_primitives = 133,
+  t60x_frag_primitives_dropped = 134,
+  t60x_frag_cycles_desc = 135,
+  t60x_frag_cycles_plr = 136,
+  t60x_frag_cycles_vert = 137,
+  t60x_frag_cycles_trisetup = 138,
+  t60x_frag_cycles_rast = 139,
+  t60x_frag_threads = 140,
+  t60x_frag_dummy_threads = 141,  // # nocheck
+  t60x_frag_quads_rast = 142,
+  t60x_frag_quads_ezs_test = 143,
+  t60x_frag_quads_ezs_killed = 144,
+  t60x_frag_threads_lzs_test = 145,
+  t60x_frag_threads_lzs_killed = 146,
+  t60x_frag_cycles_no_tile = 147,
+  t60x_frag_num_tiles = 148,
+  t60x_frag_trans_elim = 149,
+  t60x_compute_active = 150,
+  t60x_compute_tasks = 151,
+  t60x_compute_threads = 152,
+  t60x_compute_cycles_desc = 153,
+  t60x_tripipe_active = 154,
+  t60x_arith_words = 155,
+  t60x_arith_cycles_reg = 156,
+  t60x_arith_cycles_l0 = 157,
+  t60x_arith_frag_depend = 158,
+  t60x_ls_words = 159,
+  t60x_ls_issues = 160,
+  t60x_ls_restarts = 161,
+  t60x_ls_reissues_miss = 162,
+  t60x_ls_reissues_vd = 163,
+  t60x_ls_reissue_attrib_miss = 164,
+  t60x_ls_no_wb = 165,
+  t60x_tex_words = 166,
+  t60x_tex_bubbles = 167,
+  t60x_tex_words_l0 = 168,
+  t60x_tex_words_desc = 169,
+  t60x_tex_issues = 170,
+  t60x_tex_recirc_fmiss = 171,
+  t60x_tex_recirc_desc = 172,
+  t60x_tex_recirc_multi = 173,
+  t60x_tex_recirc_pmiss = 174,
+  t60x_tex_recirc_conf = 175,
+  t60x_lsc_read_hits = 176,
+  t60x_lsc_read_misses = 177,
+  t60x_lsc_write_hits = 178,
+  t60x_lsc_write_misses = 179,
+  t60x_lsc_atomic_hits = 180,
+  t60x_lsc_atomic_misses = 181,
+  t60x_lsc_line_fetches = 182,
+  t60x_lsc_dirty_line = 183,
+  t60x_lsc_snoops = 184,
+  t60x_axi_tlb_stall = 185,
+  t60x_axi_tlb_miss = 186,
+  t60x_axi_tlb_transaction = 187,
+  t60x_ls_tlb_miss = 188,
+  t60x_ls_tlb_hit = 189,
+  t60x_axi_beats_read = 190,
+  t60x_axi_beats_written = 191,
+  t60x_mmu_hit = 196,
+  t60x_mmu_new_miss = 197,
+  t60x_mmu_replay_full = 198,
+  t60x_mmu_replay_miss = 199,
+  t60x_mmu_table_walk = 200,
+  t60x_utlb_hit = 208,
+  t60x_utlb_new_miss = 209,
+  t60x_utlb_replay_full = 210,
+  t60x_utlb_replay_miss = 211,
+  t60x_utlb_stall = 212,
+  t60x_l2_ext_write_beats = 222,
+  t60x_l2_ext_read_beats = 223,
+  t60x_l2_any_lookup = 224,
+  t60x_l2_read_lookup = 225,
+  t60x_l2_sread_lookup = 226,
+  t60x_l2_read_replay = 227,
+  t60x_l2_read_snoop = 228,
+  t60x_l2_read_hit = 229,
+  t60x_l2_clean_miss = 230,
+  t60x_l2_write_lookup = 231,
+  t60x_l2_swrite_lookup = 232,
+  t60x_l2_write_replay = 233,
+  t60x_l2_write_snoop = 234,
+  t60x_l2_write_hit = 235,
+  t60x_l2_ext_read_full = 236,
+  t60x_l2_ext_read_half = 237,
+  t60x_l2_ext_write_full = 238,
+  t60x_l2_ext_write_half = 239,
+  t60x_l2_ext_read = 240,
+  t60x_l2_ext_read_line = 241,
+  t60x_l2_ext_write = 242,
+  t60x_l2_ext_write_line = 243,
+  t60x_l2_ext_write_small = 244,
+  t60x_l2_ext_barrier = 245,
+  t60x_l2_ext_ar_stall = 246,
+  t60x_l2_ext_r_buf_full = 247,
+  t60x_l2_ext_rd_buf_full = 248,
+  t60x_l2_ext_r_raw = 249,
+  t60x_l2_ext_w_stall = 250,
+  t60x_l2_ext_w_buf_full = 251,
+  t60x_l2_ext_r_w_hazard = 252,
+  t60x_l2_tag_hazard = 253,
+  t60x_l2_snoop_full = 254,
+  t60x_l2_replay_full = 255,
+  t62x_messages_sent = 260,
+  t62x_messages_received = 261,
+  t62x_gpu_active = 262,
+  t62x_irq_active = 263,
+  t62x_js0_jobs = 264,
+  t62x_js0_tasks = 265,
+  t62x_js0_active = 266,
+  t62x_js0_wait_read = 268,
+  t62x_js0_wait_issue = 269,
+  t62x_js0_wait_depend = 270,
+  t62x_js0_wait_finish = 271,
+  t62x_js1_jobs = 272,
+  t62x_js1_tasks = 273,
+  t62x_js1_active = 274,
+  t62x_js1_wait_read = 276,
+  t62x_js1_wait_issue = 277,
+  t62x_js1_wait_depend = 278,
+  t62x_js1_wait_finish = 279,
+  t62x_js2_jobs = 280,
+  t62x_js2_tasks = 281,
+  t62x_js2_active = 282,
+  t62x_js2_wait_read = 284,
+  t62x_js2_wait_issue = 285,
+  t62x_js2_wait_depend = 286,
+  t62x_js2_wait_finish = 287,
+  t62x_ti_jobs_processed = 323,
+  t62x_ti_triangles = 324,
+  t62x_ti_quads = 325,
+  t62x_ti_polygons = 326,
+  t62x_ti_points = 327,
+  t62x_ti_lines = 328,
+  t62x_ti_vcache_hit = 329,
+  t62x_ti_vcache_miss = 330,
+  t62x_ti_front_facing = 331,
+  t62x_ti_back_facing = 332,
+  t62x_ti_prim_visible = 333,
+  t62x_ti_prim_culled = 334,
+  t62x_ti_prim_clipped = 335,
+  t62x_ti_level0 = 336,
+  t62x_ti_level1 = 337,
+  t62x_ti_level2 = 338,
+  t62x_ti_level3 = 339,
+  t62x_ti_level4 = 340,
+  t62x_ti_level5 = 341,
+  t62x_ti_level6 = 342,
+  t62x_ti_level7 = 343,
+  t62x_ti_command_1 = 344,
+  t62x_ti_command_2 = 345,
+  t62x_ti_command_3 = 346,
+  t62x_ti_command_4 = 347,
+  t62x_ti_command_5_7 = 348,
+  t62x_ti_command_8_15 = 349,
+  t62x_ti_command_16_63 = 350,
+  t62x_ti_command_64 = 351,
+  t62x_ti_compress_in = 352,
+  t62x_ti_compress_out = 353,
+  t62x_ti_compress_flush = 354,
+  t62x_ti_timestamps = 355,
+  t62x_ti_pcache_hit = 356,
+  t62x_ti_pcache_miss = 357,
+  t62x_ti_pcache_line = 358,
+  t62x_ti_pcache_stall = 359,
+  t62x_ti_wrbuf_hit = 360,
+  t62x_ti_wrbuf_miss = 361,
+  t62x_ti_wrbuf_line = 362,
+  t62x_ti_wrbuf_partial = 363,
+  t62x_ti_wrbuf_stall = 364,
+  t62x_ti_active = 365,
+  t62x_ti_loading_desc = 366,
+  t62x_ti_index_wait = 367,
+  t62x_ti_index_range_wait = 368,
+  t62x_ti_vertex_wait = 369,
+  t62x_ti_pcache_wait = 370,
+  t62x_ti_wrbuf_wait = 371,
+  t62x_ti_bus_read = 372,
+  t62x_ti_bus_write = 373,
+  t62x_ti_utlb_stall = 379,
+  t62x_ti_utlb_replay_miss = 380,
+  t62x_ti_utlb_replay_full = 381,
+  t62x_ti_utlb_new_miss = 382,
+  t62x_ti_utlb_hit = 383,
+  t62x_shader_core_active = 387,
+  t62x_frag_active = 388,
+  t62x_frag_primitives = 389,
+  t62x_frag_primitives_dropped = 390,
+  t62x_frag_cycles_desc = 391,
+  t62x_frag_cycles_fpkq_active = 392,
+  t62x_frag_cycles_vert = 393,
+  t62x_frag_cycles_trisetup = 394,
+  t62x_frag_cycles_ezs_active = 395,
+  t62x_frag_threads = 396,
+  t62x_frag_dummy_threads = 397,  // # nocheck
+  t62x_frag_quads_rast = 398,
+  t62x_frag_quads_ezs_test = 399,
+  t62x_frag_quads_ezs_killed = 400,
+  t62x_frag_threads_lzs_test = 401,
+  t62x_frag_threads_lzs_killed = 402,
+  t62x_frag_cycles_no_tile = 403,
+  t62x_frag_num_tiles = 404,
+  t62x_frag_trans_elim = 405,
+  t62x_compute_active = 406,
+  t62x_compute_tasks = 407,
+  t62x_compute_threads = 408,
+  t62x_compute_cycles_desc = 409,
+  t62x_tripipe_active = 410,
+  t62x_arith_words = 411,
+  t62x_arith_cycles_reg = 412,
+  t62x_arith_cycles_l0 = 413,
+  t62x_arith_frag_depend = 414,
+  t62x_ls_words = 415,
+  t62x_ls_issues = 416,
+  t62x_ls_restarts = 417,
+  t62x_ls_reissues_miss = 418,
+  t62x_ls_reissues_vd = 419,
+  t62x_ls_reissue_attrib_miss = 420,
+  t62x_ls_no_wb = 421,
+  t62x_tex_words = 422,
+  t62x_tex_bubbles = 423,
+  t62x_tex_words_l0 = 424,
+  t62x_tex_words_desc = 425,
+  t62x_tex_issues = 426,
+  t62x_tex_recirc_fmiss = 427,
+  t62x_tex_recirc_desc = 428,
+  t62x_tex_recirc_multi = 429,
+  t62x_tex_recirc_pmiss = 430,
+  t62x_tex_recirc_conf = 431,
+  t62x_lsc_read_hits = 432,
+  t62x_lsc_read_misses = 433,
+  t62x_lsc_write_hits = 434,
+  t62x_lsc_write_misses = 435,
+  t62x_lsc_atomic_hits = 436,
+  t62x_lsc_atomic_misses = 437,
+  t62x_lsc_line_fetches = 438,
+  t62x_lsc_dirty_line = 439,
+  t62x_lsc_snoops = 440,
+  t62x_axi_tlb_stall = 441,
+  t62x_axi_tlb_miss = 442,
+  t62x_axi_tlb_transaction = 443,
+  t62x_ls_tlb_miss = 444,
+  t62x_ls_tlb_hit = 445,
+  t62x_axi_beats_read = 446,
+  t62x_axi_beats_written = 447,
+  t62x_mmu_hit = 452,
+  t62x_mmu_new_miss = 453,
+  t62x_mmu_replay_full = 454,
+  t62x_mmu_replay_miss = 455,
+  t62x_mmu_table_walk = 456,
+  t62x_utlb_hit = 464,
+  t62x_utlb_new_miss = 465,
+  t62x_utlb_replay_full = 466,
+  t62x_utlb_replay_miss = 467,
+  t62x_utlb_stall = 468,
+  t62x_l2_ext_write_beats = 478,
+  t62x_l2_ext_read_beats = 479,
+  t62x_l2_any_lookup = 480,
+  t62x_l2_read_lookup = 481,
+  t62x_l2_sread_lookup = 482,
+  t62x_l2_read_replay = 483,
+  t62x_l2_read_snoop = 484,
+  t62x_l2_read_hit = 485,
+  t62x_l2_clean_miss = 486,
+  t62x_l2_write_lookup = 487,
+  t62x_l2_swrite_lookup = 488,
+  t62x_l2_write_replay = 489,
+  t62x_l2_write_snoop = 490,
+  t62x_l2_write_hit = 491,
+  t62x_l2_ext_read_full = 492,
+  t62x_l2_ext_read_half = 493,
+  t62x_l2_ext_write_full = 494,
+  t62x_l2_ext_write_half = 495,
+  t62x_l2_ext_read = 496,
+  t62x_l2_ext_read_line = 497,
+  t62x_l2_ext_write = 498,
+  t62x_l2_ext_write_line = 499,
+  t62x_l2_ext_write_small = 500,
+  t62x_l2_ext_barrier = 501,
+  t62x_l2_ext_ar_stall = 502,
+  t62x_l2_ext_r_buf_full = 503,
+  t62x_l2_ext_rd_buf_full = 504,
+  t62x_l2_ext_r_raw = 505,
+  t62x_l2_ext_w_stall = 506,
+  t62x_l2_ext_w_buf_full = 507,
+  t62x_l2_ext_r_w_hazard = 508,
+  t62x_l2_tag_hazard = 509,
+  t62x_l2_snoop_full = 510,
+  t62x_l2_replay_full = 511,
+  t72x_gpu_active = 516,
+  t72x_irq_active = 517,
+  t72x_js0_jobs = 518,
+  t72x_js0_tasks = 519,
+  t72x_js0_active = 520,
+  t72x_js1_jobs = 521,
+  t72x_js1_tasks = 522,
+  t72x_js1_active = 523,
+  t72x_js2_jobs = 524,
+  t72x_js2_tasks = 525,
+  t72x_js2_active = 526,
+  t72x_ti_jobs_processed = 579,
+  t72x_ti_triangles = 580,
+  t72x_ti_quads = 581,
+  t72x_ti_polygons = 582,
+  t72x_ti_points = 583,
+  t72x_ti_lines = 584,
+  t72x_ti_front_facing = 585,
+  t72x_ti_back_facing = 586,
+  t72x_ti_prim_visible = 587,
+  t72x_ti_prim_culled = 588,
+  t72x_ti_prim_clipped = 589,
+  t72x_ti_active = 598,
+  t72x_frag_active = 644,
+  t72x_frag_primitives = 645,
+  t72x_frag_primitives_dropped = 646,
+  t72x_frag_threads = 647,
+  t72x_frag_dummy_threads = 648,  // # nocheck
+  t72x_frag_quads_rast = 649,
+  t72x_frag_quads_ezs_test = 650,
+  t72x_frag_quads_ezs_killed = 651,
+  t72x_frag_threads_lzs_test = 652,
+  t72x_frag_threads_lzs_killed = 653,
+  t72x_frag_cycles_no_tile = 654,
+  t72x_frag_num_tiles = 655,
+  t72x_frag_trans_elim = 656,
+  t72x_compute_active = 657,
+  t72x_compute_tasks = 658,
+  t72x_compute_threads = 659,
+  t72x_tripipe_active = 660,
+  t72x_arith_words = 661,
+  t72x_arith_cycles_reg = 662,
+  t72x_ls_words = 663,
+  t72x_ls_issues = 664,
+  t72x_ls_restarts = 665,
+  t72x_ls_reissues_miss = 666,
+  t72x_tex_words = 667,
+  t72x_tex_bubbles = 668,
+  t72x_tex_issues = 669,
+  t72x_lsc_read_hits = 670,
+  t72x_lsc_read_misses = 671,
+  t72x_lsc_write_hits = 672,
+  t72x_lsc_write_misses = 673,
+  t72x_lsc_atomic_hits = 674,
+  t72x_lsc_atomic_misses = 675,
+  t72x_lsc_line_fetches = 676,
+  t72x_lsc_dirty_line = 677,
+  t72x_lsc_snoops = 678,
+  t72x_l2_ext_write_beat = 708,
+  t72x_l2_ext_read_beat = 709,
+  t72x_l2_read_snoop = 710,
+  t72x_l2_read_hit = 711,
+  t72x_l2_write_snoop = 712,
+  t72x_l2_write_hit = 713,
+  t72x_l2_ext_write_small = 714,
+  t72x_l2_ext_barrier = 715,
+  t72x_l2_ext_ar_stall = 716,
+  t72x_l2_ext_w_stall = 717,
+  t72x_l2_snoop_full = 718,
+  t76x_messages_sent = 772,
+  t76x_messages_received = 773,
+  t76x_gpu_active = 774,
+  t76x_irq_active = 775,
+  t76x_js0_jobs = 776,
+  t76x_js0_tasks = 777,
+  t76x_js0_active = 778,
+  t76x_js0_wait_read = 780,
+  t76x_js0_wait_issue = 781,
+  t76x_js0_wait_depend = 782,
+  t76x_js0_wait_finish = 783,
+  t76x_js1_jobs = 784,
+  t76x_js1_tasks = 785,
+  t76x_js1_active = 786,
+  t76x_js1_wait_read = 788,
+  t76x_js1_wait_issue = 789,
+  t76x_js1_wait_depend = 790,
+  t76x_js1_wait_finish = 791,
+  t76x_js2_jobs = 792,
+  t76x_js2_tasks = 793,
+  t76x_js2_active = 794,
+  t76x_js2_wait_read = 796,
+  t76x_js2_wait_issue = 797,
+  t76x_js2_wait_depend = 798,
+  t76x_js2_wait_finish = 799,
+  t76x_ti_jobs_processed = 835,
+  t76x_ti_triangles = 836,
+  t76x_ti_quads = 837,
+  t76x_ti_polygons = 838,
+  t76x_ti_points = 839,
+  t76x_ti_lines = 840,
+  t76x_ti_vcache_hit = 841,
+  t76x_ti_vcache_miss = 842,
+  t76x_ti_front_facing = 843,
+  t76x_ti_back_facing = 844,
+  t76x_ti_prim_visible = 845,
+  t76x_ti_prim_culled = 846,
+  t76x_ti_prim_clipped = 847,
+  t76x_ti_level0 = 848,
+  t76x_ti_level1 = 849,
+  t76x_ti_level2 = 850,
+  t76x_ti_level3 = 851,
+  t76x_ti_level4 = 852,
+  t76x_ti_level5 = 853,
+  t76x_ti_level6 = 854,
+  t76x_ti_level7 = 855,
+  t76x_ti_command_1 = 856,
+  t76x_ti_command_2 = 857,
+  t76x_ti_command_3 = 858,
+  t76x_ti_command_4 = 859,
+  t76x_ti_command_5_7 = 860,
+  t76x_ti_command_8_15 = 861,
+  t76x_ti_command_16_63 = 862,
+  t76x_ti_command_64 = 863,
+  t76x_ti_compress_in = 864,
+  t76x_ti_compress_out = 865,
+  t76x_ti_compress_flush = 866,
+  t76x_ti_timestamps = 867,
+  t76x_ti_pcache_hit = 868,
+  t76x_ti_pcache_miss = 869,
+  t76x_ti_pcache_line = 870,
+  t76x_ti_pcache_stall = 871,
+  t76x_ti_wrbuf_hit = 872,
+  t76x_ti_wrbuf_miss = 873,
+  t76x_ti_wrbuf_line = 874,
+  t76x_ti_wrbuf_partial = 875,
+  t76x_ti_wrbuf_stall = 876,
+  t76x_ti_active = 877,
+  t76x_ti_loading_desc = 878,
+  t76x_ti_index_wait = 879,
+  t76x_ti_index_range_wait = 880,
+  t76x_ti_vertex_wait = 881,
+  t76x_ti_pcache_wait = 882,
+  t76x_ti_wrbuf_wait = 883,
+  t76x_ti_bus_read = 884,
+  t76x_ti_bus_write = 885,
+  t76x_ti_utlb_hit = 891,
+  t76x_ti_utlb_new_miss = 892,
+  t76x_ti_utlb_replay_full = 893,
+  t76x_ti_utlb_replay_miss = 894,
+  t76x_ti_utlb_stall = 895,
+  t76x_frag_active = 900,
+  t76x_frag_primitives = 901,
+  t76x_frag_primitives_dropped = 902,
+  t76x_frag_cycles_desc = 903,
+  t76x_frag_cycles_fpkq_active = 904,
+  t76x_frag_cycles_vert = 905,
+  t76x_frag_cycles_trisetup = 906,
+  t76x_frag_cycles_ezs_active = 907,
+  t76x_frag_threads = 908,
+  t76x_frag_dummy_threads = 909,  // # nocheck
+  t76x_frag_quads_rast = 910,
+  t76x_frag_quads_ezs_test = 911,
+  t76x_frag_quads_ezs_killed = 912,
+  t76x_frag_threads_lzs_test = 913,
+  t76x_frag_threads_lzs_killed = 914,
+  t76x_frag_cycles_no_tile = 915,
+  t76x_frag_num_tiles = 916,
+  t76x_frag_trans_elim = 917,
+  t76x_compute_active = 918,
+  t76x_compute_tasks = 919,
+  t76x_compute_threads = 920,
+  t76x_compute_cycles_desc = 921,
+  t76x_tripipe_active = 922,
+  t76x_arith_words = 923,
+  t76x_arith_cycles_reg = 924,
+  t76x_arith_cycles_l0 = 925,
+  t76x_arith_frag_depend = 926,
+  t76x_ls_words = 927,
+  t76x_ls_issues = 928,
+  t76x_ls_reissue_attr = 929,
+  t76x_ls_reissues_vary = 930,
+  t76x_ls_vary_rv_miss = 931,
+  t76x_ls_vary_rv_hit = 932,
+  t76x_ls_no_unpark = 933,
+  t76x_tex_words = 934,
+  t76x_tex_bubbles = 935,
+  t76x_tex_words_l0 = 936,
+  t76x_tex_words_desc = 937,
+  t76x_tex_issues = 938,
+  t76x_tex_recirc_fmiss = 939,
+  t76x_tex_recirc_desc = 940,
+  t76x_tex_recirc_multi = 941,
+  t76x_tex_recirc_pmiss = 942,
+  t76x_tex_recirc_conf = 943,
+  t76x_lsc_read_hits = 944,
+  t76x_lsc_read_op = 945,
+  t76x_lsc_write_hits = 946,
+  t76x_lsc_write_op = 947,
+  t76x_lsc_atomic_hits = 948,
+  t76x_lsc_atomic_op = 949,
+  t76x_lsc_line_fetches = 950,
+  t76x_lsc_dirty_line = 951,
+  t76x_lsc_snoops = 952,
+  t76x_axi_tlb_stall = 953,
+  t76x_axi_tlb_miss = 954,
+  t76x_axi_tlb_transaction = 955,
+  t76x_ls_tlb_miss = 956,
+  t76x_ls_tlb_hit = 957,
+  t76x_axi_beats_read = 958,
+  t76x_axi_beats_written = 959,
+  t76x_mmu_hit = 964,
+  t76x_mmu_new_miss = 965,
+  t76x_mmu_replay_full = 966,
+  t76x_mmu_replay_miss = 967,
+  t76x_mmu_table_walk = 968,
+  t76x_mmu_requests = 969,
+  t76x_utlb_hit = 972,
+  t76x_utlb_new_miss = 973,
+  t76x_utlb_replay_full = 974,
+  t76x_utlb_replay_miss = 975,
+  t76x_utlb_stall = 976,
+  t76x_l2_ext_write_beats = 990,
+  t76x_l2_ext_read_beats = 991,
+  t76x_l2_any_lookup = 992,
+  t76x_l2_read_lookup = 993,
+  t76x_l2_sread_lookup = 994,
+  t76x_l2_read_replay = 995,
+  t76x_l2_read_snoop = 996,
+  t76x_l2_read_hit = 997,
+  t76x_l2_clean_miss = 998,
+  t76x_l2_write_lookup = 999,
+  t76x_l2_swrite_lookup = 1000,
+  t76x_l2_write_replay = 1001,
+  t76x_l2_write_snoop = 1002,
+  t76x_l2_write_hit = 1003,
+  t76x_l2_ext_read_full = 1004,
+  t76x_l2_ext_write_full = 1006,
+  t76x_l2_ext_r_w_hazard = 1007,
+  t76x_l2_ext_read = 1008,
+  t76x_l2_ext_read_line = 1009,
+  t76x_l2_ext_write = 1010,
+  t76x_l2_ext_write_line = 1011,
+  t76x_l2_ext_write_small = 1012,
+  t76x_l2_ext_barrier = 1013,
+  t76x_l2_ext_ar_stall = 1014,
+  t76x_l2_ext_r_buf_full = 1015,
+  t76x_l2_ext_rd_buf_full = 1016,
+  t76x_l2_ext_r_raw = 1017,
+  t76x_l2_ext_w_stall = 1018,
+  t76x_l2_ext_w_buf_full = 1019,
+  t76x_l2_tag_hazard = 1021,
+  t76x_l2_snoop_full = 1022,
+  t76x_l2_replay_full = 1023,
+  t82x_messages_sent = 1028,
+  t82x_messages_received = 1029,
+  t82x_gpu_active = 1030,
+  t82x_irq_active = 1031,
+  t82x_js0_jobs = 1032,
+  t82x_js0_tasks = 1033,
+  t82x_js0_active = 1034,
+  t82x_js0_wait_read = 1036,
+  t82x_js0_wait_issue = 1037,
+  t82x_js0_wait_depend = 1038,
+  t82x_js0_wait_finish = 1039,
+  t82x_js1_jobs = 1040,
+  t82x_js1_tasks = 1041,
+  t82x_js1_active = 1042,
+  t82x_js1_wait_read = 1044,
+  t82x_js1_wait_issue = 1045,
+  t82x_js1_wait_depend = 1046,
+  t82x_js1_wait_finish = 1047,
+  t82x_js2_jobs = 1048,
+  t82x_js2_tasks = 1049,
+  t82x_js2_active = 1050,
+  t82x_js2_wait_read = 1052,
+  t82x_js2_wait_issue = 1053,
+  t82x_js2_wait_depend = 1054,
+  t82x_js2_wait_finish = 1055,
+  t82x_ti_jobs_processed = 1091,
+  t82x_ti_triangles = 1092,
+  t82x_ti_quads = 1093,
+  t82x_ti_polygons = 1094,
+  t82x_ti_points = 1095,
+  t82x_ti_lines = 1096,
+  t82x_ti_front_facing = 1097,
+  t82x_ti_back_facing = 1098,
+  t82x_ti_prim_visible = 1099,
+  t82x_ti_prim_culled = 1100,
+  t82x_ti_prim_clipped = 1101,
+  t82x_ti_active = 1110,
+  t82x_frag_active = 1156,
+  t82x_frag_primitives = 1157,
+  t82x_frag_primitives_dropped = 1158,
+  t82x_frag_cycles_desc = 1159,
+  t82x_frag_cycles_fpkq_active = 1160,
+  t82x_frag_cycles_vert = 1161,
+  t82x_frag_cycles_trisetup = 1162,
+  t82x_frag_cycles_ezs_active = 1163,
+  t82x_frag_threads = 1164,
+  t82x_frag_dummy_threads = 1165,  // # nocheck
+  t82x_frag_quads_rast = 1166,
+  t82x_frag_quads_ezs_test = 1167,
+  t82x_frag_quads_ezs_killed = 1168,
+  t82x_frag_threads_lzs_test = 1169,
+  t82x_frag_threads_lzs_killed = 1170,
+  t82x_frag_cycles_no_tile = 1171,
+  t82x_frag_num_tiles = 1172,
+  t82x_frag_trans_elim = 1173,
+  t82x_compute_active = 1174,
+  t82x_compute_tasks = 1175,
+  t82x_compute_threads = 1176,
+  t82x_compute_cycles_desc = 1177,
+  t82x_tripipe_active = 1178,
+  t82x_arith_words = 1179,
+  t82x_arith_cycles_reg = 1180,
+  t82x_arith_cycles_l0 = 1181,
+  t82x_arith_frag_depend = 1182,
+  t82x_ls_words = 1183,
+  t82x_ls_issues = 1184,
+  t82x_ls_reissue_attr = 1185,
+  t82x_ls_reissues_vary = 1186,
+  t82x_ls_vary_rv_miss = 1187,
+  t82x_ls_vary_rv_hit = 1188,
+  t82x_ls_no_unpark = 1189,
+  t82x_tex_words = 1190,
+  t82x_tex_bubbles = 1191,
+  t82x_tex_words_l0 = 1192,
+  t82x_tex_words_desc = 1193,
+  t82x_tex_issues = 1194,
+  t82x_tex_recirc_fmiss = 1195,
+  t82x_tex_recirc_desc = 1196,
+  t82x_tex_recirc_multi = 1197,
+  t82x_tex_recirc_pmiss = 1198,
+  t82x_tex_recirc_conf = 1199,
+  t82x_lsc_read_hits = 1200,
+  t82x_lsc_read_op = 1201,
+  t82x_lsc_write_hits = 1202,
+  t82x_lsc_write_op = 1203,
+  t82x_lsc_atomic_hits = 1204,
+  t82x_lsc_atomic_op = 1205,
+  t82x_lsc_line_fetches = 1206,
+  t82x_lsc_dirty_line = 1207,
+  t82x_lsc_snoops = 1208,
+  t82x_axi_tlb_stall = 1209,
+  t82x_axi_tlb_miss = 1210,
+  t82x_axi_tlb_transaction = 1211,
+  t82x_ls_tlb_miss = 1212,
+  t82x_ls_tlb_hit = 1213,
+  t82x_axi_beats_read = 1214,
+  t82x_axi_beats_written = 1215,
+  t82x_mmu_hit = 1220,
+  t82x_mmu_new_miss = 1221,
+  t82x_mmu_replay_full = 1222,
+  t82x_mmu_replay_miss = 1223,
+  t82x_mmu_table_walk = 1224,
+  t82x_mmu_requests = 1225,
+  t82x_utlb_hit = 1228,
+  t82x_utlb_new_miss = 1229,
+  t82x_utlb_replay_full = 1230,
+  t82x_utlb_replay_miss = 1231,
+  t82x_utlb_stall = 1232,
+  t82x_l2_ext_write_beats = 1246,
+  t82x_l2_ext_read_beats = 1247,
+  t82x_l2_any_lookup = 1248,
+  t82x_l2_read_lookup = 1249,
+  t82x_l2_sread_lookup = 1250,
+  t82x_l2_read_replay = 1251,
+  t82x_l2_read_snoop = 1252,
+  t82x_l2_read_hit = 1253,
+  t82x_l2_clean_miss = 1254,
+  t82x_l2_write_lookup = 1255,
+  t82x_l2_swrite_lookup = 1256,
+  t82x_l2_write_replay = 1257,
+  t82x_l2_write_snoop = 1258,
+  t82x_l2_write_hit = 1259,
+  t82x_l2_ext_read_full = 1260,
+  t82x_l2_ext_write_full = 1262,
+  t82x_l2_ext_r_w_hazard = 1263,
+  t82x_l2_ext_read = 1264,
+  t82x_l2_ext_read_line = 1265,
+  t82x_l2_ext_write = 1266,
+  t82x_l2_ext_write_line = 1267,
+  t82x_l2_ext_write_small = 1268,
+  t82x_l2_ext_barrier = 1269,
+  t82x_l2_ext_ar_stall = 1270,
+  t82x_l2_ext_r_buf_full = 1271,
+  t82x_l2_ext_rd_buf_full = 1272,
+  t82x_l2_ext_r_raw = 1273,
+  t82x_l2_ext_w_stall = 1274,
+  t82x_l2_ext_w_buf_full = 1275,
+  t82x_l2_tag_hazard = 1277,
+  t82x_l2_snoop_full = 1278,
+  t82x_l2_replay_full = 1279,
+  t83x_messages_sent = 1284,
+  t83x_messages_received = 1285,
+  t83x_gpu_active = 1286,
+  t83x_irq_active = 1287,
+  t83x_js0_jobs = 1288,
+  t83x_js0_tasks = 1289,
+  t83x_js0_active = 1290,
+  t83x_js0_wait_read = 1292,
+  t83x_js0_wait_issue = 1293,
+  t83x_js0_wait_depend = 1294,
+  t83x_js0_wait_finish = 1295,
+  t83x_js1_jobs = 1296,
+  t83x_js1_tasks = 1297,
+  t83x_js1_active = 1298,
+  t83x_js1_wait_read = 1300,
+  t83x_js1_wait_issue = 1301,
+  t83x_js1_wait_depend = 1302,
+  t83x_js1_wait_finish = 1303,
+  t83x_js2_jobs = 1304,
+  t83x_js2_tasks = 1305,
+  t83x_js2_active = 1306,
+  t83x_js2_wait_read = 1308,
+  t83x_js2_wait_issue = 1309,
+  t83x_js2_wait_depend = 1310,
+  t83x_js2_wait_finish = 1311,
+  t83x_ti_jobs_processed = 1347,
+  t83x_ti_triangles = 1348,
+  t83x_ti_quads = 1349,
+  t83x_ti_polygons = 1350,
+  t83x_ti_points = 1351,
+  t83x_ti_lines = 1352,
+  t83x_ti_front_facing = 1353,
+  t83x_ti_back_facing = 1354,
+  t83x_ti_prim_visible = 1355,
+  t83x_ti_prim_culled = 1356,
+  t83x_ti_prim_clipped = 1357,
+  t83x_ti_active = 1366,
+  t83x_frag_active = 1412,
+  t83x_frag_primitives = 1413,
+  t83x_frag_primitives_dropped = 1414,
+  t83x_frag_cycles_desc = 1415,
+  t83x_frag_cycles_fpkq_active = 1416,
+  t83x_frag_cycles_vert = 1417,
+  t83x_frag_cycles_trisetup = 1418,
+  t83x_frag_cycles_ezs_active = 1419,
+  t83x_frag_threads = 1420,
+  t83x_frag_dummy_threads = 1421,  // # nocheck
+  t83x_frag_quads_rast = 1422,
+  t83x_frag_quads_ezs_test = 1423,
+  t83x_frag_quads_ezs_killed = 1424,
+  t83x_frag_threads_lzs_test = 1425,
+  t83x_frag_threads_lzs_killed = 1426,
+  t83x_frag_cycles_no_tile = 1427,
+  t83x_frag_num_tiles = 1428,
+  t83x_frag_trans_elim = 1429,
+  t83x_compute_active = 1430,
+  t83x_compute_tasks = 1431,
+  t83x_compute_threads = 1432,
+  t83x_compute_cycles_desc = 1433,
+  t83x_tripipe_active = 1434,
+  t83x_arith_words = 1435,
+  t83x_arith_cycles_reg = 1436,
+  t83x_arith_cycles_l0 = 1437,
+  t83x_arith_frag_depend = 1438,
+  t83x_ls_words = 1439,
+  t83x_ls_issues = 1440,
+  t83x_ls_reissue_attr = 1441,
+  t83x_ls_reissues_vary = 1442,
+  t83x_ls_vary_rv_miss = 1443,
+  t83x_ls_vary_rv_hit = 1444,
+  t83x_ls_no_unpark = 1445,
+  t83x_tex_words = 1446,
+  t83x_tex_bubbles = 1447,
+  t83x_tex_words_l0 = 1448,
+  t83x_tex_words_desc = 1449,
+  t83x_tex_issues = 1450,
+  t83x_tex_recirc_fmiss = 1451,
+  t83x_tex_recirc_desc = 1452,
+  t83x_tex_recirc_multi = 1453,
+  t83x_tex_recirc_pmiss = 1454,
+  t83x_tex_recirc_conf = 1455,
+  t83x_lsc_read_hits = 1456,
+  t83x_lsc_read_op = 1457,
+  t83x_lsc_write_hits = 1458,
+  t83x_lsc_write_op = 1459,
+  t83x_lsc_atomic_hits = 1460,
+  t83x_lsc_atomic_op = 1461,
+  t83x_lsc_line_fetches = 1462,
+  t83x_lsc_dirty_line = 1463,
+  t83x_lsc_snoops = 1464,
+  t83x_axi_tlb_stall = 1465,
+  t83x_axi_tlb_miss = 1466,
+  t83x_axi_tlb_transaction = 1467,
+  t83x_ls_tlb_miss = 1468,
+  t83x_ls_tlb_hit = 1469,
+  t83x_axi_beats_read = 1470,
+  t83x_axi_beats_written = 1471,
+  t83x_mmu_hit = 1476,
+  t83x_mmu_new_miss = 1477,
+  t83x_mmu_replay_full = 1478,
+  t83x_mmu_replay_miss = 1479,
+  t83x_mmu_table_walk = 1480,
+  t83x_mmu_requests = 1481,
+  t83x_utlb_hit = 1484,
+  t83x_utlb_new_miss = 1485,
+  t83x_utlb_replay_full = 1486,
+  t83x_utlb_replay_miss = 1487,
+  t83x_utlb_stall = 1488,
+  t83x_l2_ext_write_beats = 1502,
+  t83x_l2_ext_read_beats = 1503,
+  t83x_l2_any_lookup = 1504,
+  t83x_l2_read_lookup = 1505,
+  t83x_l2_sread_lookup = 1506,
+  t83x_l2_read_replay = 1507,
+  t83x_l2_read_snoop = 1508,
+  t83x_l2_read_hit = 1509,
+  t83x_l2_clean_miss = 1510,
+  t83x_l2_write_lookup = 1511,
+  t83x_l2_swrite_lookup = 1512,
+  t83x_l2_write_replay = 1513,
+  t83x_l2_write_snoop = 1514,
+  t83x_l2_write_hit = 1515,
+  t83x_l2_ext_read_full = 1516,
+  t83x_l2_ext_write_full = 1518,
+  t83x_l2_ext_r_w_hazard = 1519,
+  t83x_l2_ext_read = 1520,
+  t83x_l2_ext_read_line = 1521,
+  t83x_l2_ext_write = 1522,
+  t83x_l2_ext_write_line = 1523,
+  t83x_l2_ext_write_small = 1524,
+  t83x_l2_ext_barrier = 1525,
+  t83x_l2_ext_ar_stall = 1526,
+  t83x_l2_ext_r_buf_full = 1527,
+  t83x_l2_ext_rd_buf_full = 1528,
+  t83x_l2_ext_r_raw = 1529,
+  t83x_l2_ext_w_stall = 1530,
+  t83x_l2_ext_w_buf_full = 1531,
+  t83x_l2_tag_hazard = 1533,
+  t83x_l2_snoop_full = 1534,
+  t83x_l2_replay_full = 1535,
+  t86x_messages_sent = 1540,
+  t86x_messages_received = 1541,
+  t86x_gpu_active = 1542,
+  t86x_irq_active = 1543,
+  t86x_js0_jobs = 1544,
+  t86x_js0_tasks = 1545,
+  t86x_js0_active = 1546,
+  t86x_js0_wait_read = 1548,
+  t86x_js0_wait_issue = 1549,
+  t86x_js0_wait_depend = 1550,
+  t86x_js0_wait_finish = 1551,
+  t86x_js1_jobs = 1552,
+  t86x_js1_tasks = 1553,
+  t86x_js1_active = 1554,
+  t86x_js1_wait_read = 1556,
+  t86x_js1_wait_issue = 1557,
+  t86x_js1_wait_depend = 1558,
+  t86x_js1_wait_finish = 1559,
+  t86x_js2_jobs = 1560,
+  t86x_js2_tasks = 1561,
+  t86x_js2_active = 1562,
+  t86x_js2_wait_read = 1564,
+  t86x_js2_wait_issue = 1565,
+  t86x_js2_wait_depend = 1566,
+  t86x_js2_wait_finish = 1567,
+  t86x_ti_jobs_processed = 1603,
+  t86x_ti_triangles = 1604,
+  t86x_ti_quads = 1605,
+  t86x_ti_polygons = 1606,
+  t86x_ti_points = 1607,
+  t86x_ti_lines = 1608,
+  t86x_ti_vcache_hit = 1609,
+  t86x_ti_vcache_miss = 1610,
+  t86x_ti_front_facing = 1611,
+  t86x_ti_back_facing = 1612,
+  t86x_ti_prim_visible = 1613,
+  t86x_ti_prim_culled = 1614,
+  t86x_ti_prim_clipped = 1615,
+  t86x_ti_level0 = 1616,
+  t86x_ti_level1 = 1617,
+  t86x_ti_level2 = 1618,
+  t86x_ti_level3 = 1619,
+  t86x_ti_level4 = 1620,
+  t86x_ti_level5 = 1621,
+  t86x_ti_level6 = 1622,
+  t86x_ti_level7 = 1623,
+  t86x_ti_command_1 = 1624,
+  t86x_ti_command_2 = 1625,
+  t86x_ti_command_3 = 1626,
+  t86x_ti_command_4 = 1627,
+  t86x_ti_command_5_7 = 1628,
+  t86x_ti_command_8_15 = 1629,
+  t86x_ti_command_16_63 = 1630,
+  t86x_ti_command_64 = 1631,
+  t86x_ti_compress_in = 1632,
+  t86x_ti_compress_out = 1633,
+  t86x_ti_compress_flush = 1634,
+  t86x_ti_timestamps = 1635,
+  t86x_ti_pcache_hit = 1636,
+  t86x_ti_pcache_miss = 1637,
+  t86x_ti_pcache_line = 1638,
+  t86x_ti_pcache_stall = 1639,
+  t86x_ti_wrbuf_hit = 1640,
+  t86x_ti_wrbuf_miss = 1641,
+  t86x_ti_wrbuf_line = 1642,
+  t86x_ti_wrbuf_partial = 1643,
+  t86x_ti_wrbuf_stall = 1644,
+  t86x_ti_active = 1645,
+  t86x_ti_loading_desc = 1646,
+  t86x_ti_index_wait = 1647,
+  t86x_ti_index_range_wait = 1648,
+  t86x_ti_vertex_wait = 1649,
+  t86x_ti_pcache_wait = 1650,
+  t86x_ti_wrbuf_wait = 1651,
+  t86x_ti_bus_read = 1652,
+  t86x_ti_bus_write = 1653,
+  t86x_ti_utlb_hit = 1659,
+  t86x_ti_utlb_new_miss = 1660,
+  t86x_ti_utlb_replay_full = 1661,
+  t86x_ti_utlb_replay_miss = 1662,
+  t86x_ti_utlb_stall = 1663,
+  t86x_frag_active = 1668,
+  t86x_frag_primitives = 1669,
+  t86x_frag_primitives_dropped = 1670,
+  t86x_frag_cycles_desc = 1671,
+  t86x_frag_cycles_fpkq_active = 1672,
+  t86x_frag_cycles_vert = 1673,
+  t86x_frag_cycles_trisetup = 1674,
+  t86x_frag_cycles_ezs_active = 1675,
+  t86x_frag_threads = 1676,
+  t86x_frag_dummy_threads = 1677,  // # nocheck
+  t86x_frag_quads_rast = 1678,
+  t86x_frag_quads_ezs_test = 1679,
+  t86x_frag_quads_ezs_killed = 1680,
+  t86x_frag_threads_lzs_test = 1681,
+  t86x_frag_threads_lzs_killed = 1682,
+  t86x_frag_cycles_no_tile = 1683,
+  t86x_frag_num_tiles = 1684,
+  t86x_frag_trans_elim = 1685,
+  t86x_compute_active = 1686,
+  t86x_compute_tasks = 1687,
+  t86x_compute_threads = 1688,
+  t86x_compute_cycles_desc = 1689,
+  t86x_tripipe_active = 1690,
+  t86x_arith_words = 1691,
+  t86x_arith_cycles_reg = 1692,
+  t86x_arith_cycles_l0 = 1693,
+  t86x_arith_frag_depend = 1694,
+  t86x_ls_words = 1695,
+  t86x_ls_issues = 1696,
+  t86x_ls_reissue_attr = 1697,
+  t86x_ls_reissues_vary = 1698,
+  t86x_ls_vary_rv_miss = 1699,
+  t86x_ls_vary_rv_hit = 1700,
+  t86x_ls_no_unpark = 1701,
+  t86x_tex_words = 1702,
+  t86x_tex_bubbles = 1703,
+  t86x_tex_words_l0 = 1704,
+  t86x_tex_words_desc = 1705,
+  t86x_tex_issues = 1706,
+  t86x_tex_recirc_fmiss = 1707,
+  t86x_tex_recirc_desc = 1708,
+  t86x_tex_recirc_multi = 1709,
+  t86x_tex_recirc_pmiss = 1710,
+  t86x_tex_recirc_conf = 1711,
+  t86x_lsc_read_hits = 1712,
+  t86x_lsc_read_op = 1713,
+  t86x_lsc_write_hits = 1714,
+  t86x_lsc_write_op = 1715,
+  t86x_lsc_atomic_hits = 1716,
+  t86x_lsc_atomic_op = 1717,
+  t86x_lsc_line_fetches = 1718,
+  t86x_lsc_dirty_line = 1719,
+  t86x_lsc_snoops = 1720,
+  t86x_axi_tlb_stall = 1721,
+  t86x_axi_tlb_miss = 1722,
+  t86x_axi_tlb_transaction = 1723,
+  t86x_ls_tlb_miss = 1724,
+  t86x_ls_tlb_hit = 1725,
+  t86x_axi_beats_read = 1726,
+  t86x_axi_beats_written = 1727,
+  t86x_mmu_hit = 1732,
+  t86x_mmu_new_miss = 1733,
+  t86x_mmu_replay_full = 1734,
+  t86x_mmu_replay_miss = 1735,
+  t86x_mmu_table_walk = 1736,
+  t86x_mmu_requests = 1737,
+  t86x_utlb_hit = 1740,
+  t86x_utlb_new_miss = 1741,
+  t86x_utlb_replay_full = 1742,
+  t86x_utlb_replay_miss = 1743,
+  t86x_utlb_stall = 1744,
+  t86x_l2_ext_write_beats = 1758,
+  t86x_l2_ext_read_beats = 1759,
+  t86x_l2_any_lookup = 1760,
+  t86x_l2_read_lookup = 1761,
+  t86x_l2_sread_lookup = 1762,
+  t86x_l2_read_replay = 1763,
+  t86x_l2_read_snoop = 1764,
+  t86x_l2_read_hit = 1765,
+  t86x_l2_clean_miss = 1766,
+  t86x_l2_write_lookup = 1767,
+  t86x_l2_swrite_lookup = 1768,
+  t86x_l2_write_replay = 1769,
+  t86x_l2_write_snoop = 1770,
+  t86x_l2_write_hit = 1771,
+  t86x_l2_ext_read_full = 1772,
+  t86x_l2_ext_write_full = 1774,
+  t86x_l2_ext_r_w_hazard = 1775,
+  t86x_l2_ext_read = 1776,
+  t86x_l2_ext_read_line = 1777,
+  t86x_l2_ext_write = 1778,
+  t86x_l2_ext_write_line = 1779,
+  t86x_l2_ext_write_small = 1780,
+  t86x_l2_ext_barrier = 1781,
+  t86x_l2_ext_ar_stall = 1782,
+  t86x_l2_ext_r_buf_full = 1783,
+  t86x_l2_ext_rd_buf_full = 1784,
+  t86x_l2_ext_r_raw = 1785,
+  t86x_l2_ext_w_stall = 1786,
+  t86x_l2_ext_w_buf_full = 1787,
+  t86x_l2_tag_hazard = 1789,
+  t86x_l2_snoop_full = 1790,
+  t86x_l2_replay_full = 1791,
+  t88x_messages_sent = 1796,
+  t88x_messages_received = 1797,
+  t88x_gpu_active = 1798,
+  t88x_irq_active = 1799,
+  t88x_js0_jobs = 1800,
+  t88x_js0_tasks = 1801,
+  t88x_js0_active = 1802,
+  t88x_js0_wait_read = 1804,
+  t88x_js0_wait_issue = 1805,
+  t88x_js0_wait_depend = 1806,
+  t88x_js0_wait_finish = 1807,
+  t88x_js1_jobs = 1808,
+  t88x_js1_tasks = 1809,
+  t88x_js1_active = 1810,
+  t88x_js1_wait_read = 1812,
+  t88x_js1_wait_issue = 1813,
+  t88x_js1_wait_depend = 1814,
+  t88x_js1_wait_finish = 1815,
+  t88x_js2_jobs = 1816,
+  t88x_js2_tasks = 1817,
+  t88x_js2_active = 1818,
+  t88x_js2_wait_read = 1820,
+  t88x_js2_wait_issue = 1821,
+  t88x_js2_wait_depend = 1822,
+  t88x_js2_wait_finish = 1823,
+  t88x_ti_jobs_processed = 1859,
+  t88x_ti_triangles = 1860,
+  t88x_ti_quads = 1861,
+  t88x_ti_polygons = 1862,
+  t88x_ti_points = 1863,
+  t88x_ti_lines = 1864,
+  t88x_ti_vcache_hit = 1865,
+  t88x_ti_vcache_miss = 1866,
+  t88x_ti_front_facing = 1867,
+  t88x_ti_back_facing = 1868,
+  t88x_ti_prim_visible = 1869,
+  t88x_ti_prim_culled = 1870,
+  t88x_ti_prim_clipped = 1871,
+  t88x_ti_level0 = 1872,
+  t88x_ti_level1 = 1873,
+  t88x_ti_level2 = 1874,
+  t88x_ti_level3 = 1875,
+  t88x_ti_level4 = 1876,
+  t88x_ti_level5 = 1877,
+  t88x_ti_level6 = 1878,
+  t88x_ti_level7 = 1879,
+  t88x_ti_command_1 = 1880,
+  t88x_ti_command_2 = 1881,
+  t88x_ti_command_3 = 1882,
+  t88x_ti_command_4 = 1883,
+  t88x_ti_command_5_7 = 1884,
+  t88x_ti_command_8_15 = 1885,
+  t88x_ti_command_16_63 = 1886,
+  t88x_ti_command_64 = 1887,
+  t88x_ti_compress_in = 1888,
+  t88x_ti_compress_out = 1889,
+  t88x_ti_compress_flush = 1890,
+  t88x_ti_timestamps = 1891,
+  t88x_ti_pcache_hit = 1892,
+  t88x_ti_pcache_miss = 1893,
+  t88x_ti_pcache_line = 1894,
+  t88x_ti_pcache_stall = 1895,
+  t88x_ti_wrbuf_hit = 1896,
+  t88x_ti_wrbuf_miss = 1897,
+  t88x_ti_wrbuf_line = 1898,
+  t88x_ti_wrbuf_partial = 1899,
+  t88x_ti_wrbuf_stall = 1900,
+  t88x_ti_active = 1901,
+  t88x_ti_loading_desc = 1902,
+  t88x_ti_index_wait = 1903,
+  t88x_ti_index_range_wait = 1904,
+  t88x_ti_vertex_wait = 1905,
+  t88x_ti_pcache_wait = 1906,
+  t88x_ti_wrbuf_wait = 1907,
+  t88x_ti_bus_read = 1908,
+  t88x_ti_bus_write = 1909,
+  t88x_ti_utlb_hit = 1915,
+  t88x_ti_utlb_new_miss = 1916,
+  t88x_ti_utlb_replay_full = 1917,
+  t88x_ti_utlb_replay_miss = 1918,
+  t88x_ti_utlb_stall = 1919,
+  t88x_frag_active = 1924,
+  t88x_frag_primitives = 1925,
+  t88x_frag_primitives_dropped = 1926,
+  t88x_frag_cycles_desc = 1927,
+  t88x_frag_cycles_fpkq_active = 1928,
+  t88x_frag_cycles_vert = 1929,
+  t88x_frag_cycles_trisetup = 1930,
+  t88x_frag_cycles_ezs_active = 1931,
+  t88x_frag_threads = 1932,
+  t88x_frag_dummy_threads = 1933,  // # nocheck
+  t88x_frag_quads_rast = 1934,
+  t88x_frag_quads_ezs_test = 1935,
+  t88x_frag_quads_ezs_killed = 1936,
+  t88x_frag_threads_lzs_test = 1937,
+  t88x_frag_threads_lzs_killed = 1938,
+  t88x_frag_cycles_no_tile = 1939,
+  t88x_frag_num_tiles = 1940,
+  t88x_frag_trans_elim = 1941,
+  t88x_compute_active = 1942,
+  t88x_compute_tasks = 1943,
+  t88x_compute_threads = 1944,
+  t88x_compute_cycles_desc = 1945,
+  t88x_tripipe_active = 1946,
+  t88x_arith_words = 1947,
+  t88x_arith_cycles_reg = 1948,
+  t88x_arith_cycles_l0 = 1949,
+  t88x_arith_frag_depend = 1950,
+  t88x_ls_words = 1951,
+  t88x_ls_issues = 1952,
+  t88x_ls_reissue_attr = 1953,
+  t88x_ls_reissues_vary = 1954,
+  t88x_ls_vary_rv_miss = 1955,
+  t88x_ls_vary_rv_hit = 1956,
+  t88x_ls_no_unpark = 1957,
+  t88x_tex_words = 1958,
+  t88x_tex_bubbles = 1959,
+  t88x_tex_words_l0 = 1960,
+  t88x_tex_words_desc = 1961,
+  t88x_tex_issues = 1962,
+  t88x_tex_recirc_fmiss = 1963,
+  t88x_tex_recirc_desc = 1964,
+  t88x_tex_recirc_multi = 1965,
+  t88x_tex_recirc_pmiss = 1966,
+  t88x_tex_recirc_conf = 1967,
+  t88x_lsc_read_hits = 1968,
+  t88x_lsc_read_op = 1969,
+  t88x_lsc_write_hits = 1970,
+  t88x_lsc_write_op = 1971,
+  t88x_lsc_atomic_hits = 1972,
+  t88x_lsc_atomic_op = 1973,
+  t88x_lsc_line_fetches = 1974,
+  t88x_lsc_dirty_line = 1975,
+  t88x_lsc_snoops = 1976,
+  t88x_axi_tlb_stall = 1977,
+  t88x_axi_tlb_miss = 1978,
+  t88x_axi_tlb_transaction = 1979,
+  t88x_ls_tlb_miss = 1980,
+  t88x_ls_tlb_hit = 1981,
+  t88x_axi_beats_read = 1982,
+  t88x_axi_beats_written = 1983,
+  t88x_mmu_hit = 1988,
+  t88x_mmu_new_miss = 1989,
+  t88x_mmu_replay_full = 1990,
+  t88x_mmu_replay_miss = 1991,
+  t88x_mmu_table_walk = 1992,
+  t88x_mmu_requests = 1993,
+  t88x_utlb_hit = 1996,
+  t88x_utlb_new_miss = 1997,
+  t88x_utlb_replay_full = 1998,
+  t88x_utlb_replay_miss = 1999,
+  t88x_utlb_stall = 2000,
+  t88x_l2_ext_write_beats = 2014,
+  t88x_l2_ext_read_beats = 2015,
+  t88x_l2_any_lookup = 2016,
+  t88x_l2_read_lookup = 2017,
+  t88x_l2_sread_lookup = 2018,
+  t88x_l2_read_replay = 2019,
+  t88x_l2_read_snoop = 2020,
+  t88x_l2_read_hit = 2021,
+  t88x_l2_clean_miss = 2022,
+  t88x_l2_write_lookup = 2023,
+  t88x_l2_swrite_lookup = 2024,
+  t88x_l2_write_replay = 2025,
+  t88x_l2_write_snoop = 2026,
+  t88x_l2_write_hit = 2027,
+  t88x_l2_ext_read_full = 2028,
+  t88x_l2_ext_write_full = 2030,
+  t88x_l2_ext_r_w_hazard = 2031,
+  t88x_l2_ext_read = 2032,
+  t88x_l2_ext_read_line = 2033,
+  t88x_l2_ext_write = 2034,
+  t88x_l2_ext_write_line = 2035,
+  t88x_l2_ext_write_small = 2036,
+  t88x_l2_ext_barrier = 2037,
+  t88x_l2_ext_ar_stall = 2038,
+  t88x_l2_ext_r_buf_full = 2039,
+  t88x_l2_ext_rd_buf_full = 2040,
+  t88x_l2_ext_r_raw = 2041,
+  t88x_l2_ext_w_stall = 2042,
+  t88x_l2_ext_w_buf_full = 2043,
+  t88x_l2_tag_hazard = 2045,
+  t88x_l2_snoop_full = 2046,
+  t88x_l2_replay_full = 2047,
+  thex_messages_sent = 2052,
+  thex_messages_received = 2053,
+  thex_gpu_active = 2054,
+  thex_irq_active = 2055,
+  thex_js0_jobs = 2056,
+  thex_js0_tasks = 2057,
+  thex_js0_active = 2058,
+  thex_js0_wait_read = 2060,
+  thex_js0_wait_issue = 2061,
+  thex_js0_wait_depend = 2062,
+  thex_js0_wait_finish = 2063,
+  thex_js1_jobs = 2064,
+  thex_js1_tasks = 2065,
+  thex_js1_active = 2066,
+  thex_js1_wait_read = 2068,
+  thex_js1_wait_issue = 2069,
+  thex_js1_wait_depend = 2070,
+  thex_js1_wait_finish = 2071,
+  thex_js2_jobs = 2072,
+  thex_js2_tasks = 2073,
+  thex_js2_active = 2074,
+  thex_js2_wait_read = 2076,
+  thex_js2_wait_issue = 2077,
+  thex_js2_wait_depend = 2078,
+  thex_js2_wait_finish = 2079,
+  thex_tiler_active = 2116,
+  thex_jobs_processed = 2117,
+  thex_triangles = 2118,
+  thex_lines = 2119,
+  thex_points = 2120,
+  thex_front_facing = 2121,
+  thex_back_facing = 2122,
+  thex_prim_visible = 2123,
+  thex_prim_culled = 2124,
+  thex_prim_clipped = 2125,
+  thex_prim_sat_culled = 2126,
+  thex_bus_read = 2129,
+  thex_bus_write = 2131,
+  thex_loading_desc = 2132,
+  thex_idvs_pos_shad_req = 2133,
+  thex_idvs_pos_shad_wait = 2134,
+  thex_idvs_pos_shad_stall = 2135,
+  thex_idvs_pos_fifo_full = 2136,
+  thex_prefetch_stall = 2137,
+  thex_vcache_hit = 2138,
+  thex_vcache_miss = 2139,
+  thex_vcache_line_wait = 2140,
+  thex_vfetch_pos_read_wait = 2141,
+  thex_vfetch_vertex_wait = 2142,
+  thex_vfetch_stall = 2143,
+  thex_primassy_stall = 2144,
+  thex_bbox_gen_stall = 2145,
+  thex_idvs_vbu_hit = 2146,
+  thex_idvs_vbu_miss = 2147,
+  thex_idvs_vbu_line_deallocate = 2148,
+  thex_idvs_var_shad_req = 2149,
+  thex_idvs_var_shad_stall = 2150,
+  thex_binner_stall = 2151,
+  thex_iter_stall = 2152,
+  thex_compress_miss = 2153,
+  thex_compress_stall = 2154,
+  thex_pcache_hit = 2155,
+  thex_pcache_miss = 2156,
+  thex_pcache_miss_stall = 2157,
+  thex_pcache_evict_stall = 2158,
+  thex_pmgr_ptr_wr_stall = 2159,
+  thex_pmgr_ptr_rd_stall = 2160,
+  thex_pmgr_cmd_wr_stall = 2161,
+  thex_wrbuf_active = 2162,
+  thex_wrbuf_hit = 2163,
+  thex_wrbuf_miss = 2164,
+  thex_wrbuf_no_free_line_stall = 2165,
+  thex_wrbuf_no_axi_id_stall = 2166,
+  thex_wrbuf_axi_stall = 2167,
+  thex_utlb_trans = 2171,
+  thex_utlb_trans_hit = 2172,
+  thex_utlb_trans_stall = 2173,
+  thex_utlb_trans_miss_delay = 2174,
+  thex_utlb_mmu_req = 2175,
+  thex_frag_active = 2180,
+  thex_frag_primitives = 2181,
+  thex_frag_prim_rast = 2182,
+  thex_frag_fpk_active = 2183,
+  thex_frag_starving = 2184,
+  thex_frag_warps = 2185,
+  thex_frag_partial_warps = 2186,
+  thex_frag_quads_rast = 2187,
+  thex_frag_quads_ezs_test = 2188,
+  thex_frag_quads_ezs_update = 2189,
+  thex_frag_quads_ezs_kill = 2190,
+  thex_frag_lzs_test = 2191,
+  thex_frag_lzs_kill = 2192,
+  thex_frag_ptiles = 2194,
+  thex_frag_trans_elim = 2195,
+  thex_quad_fpk_killer = 2196,
+  thex_compute_active = 2198,
+  thex_compute_tasks = 2199,
+  thex_compute_warps = 2200,
+  thex_compute_starving = 2201,
+  thex_exec_core_active = 2202,
+  thex_exec_active = 2203,
+  thex_exec_instr_count = 2204,
+  thex_exec_instr_diverged = 2205,
+  thex_exec_instr_starving = 2206,
+  thex_arith_instr_single_fma = 2207,
+  thex_arith_instr_double = 2208,
+  thex_arith_instr_msg = 2209,
+  thex_arith_instr_msg_only = 2210,
+  thex_tex_instr = 2211,
+  thex_tex_instr_mipmap = 2212,
+  thex_tex_instr_compressed = 2213,
+  thex_tex_instr_3d = 2214,
+  thex_tex_instr_trilinear = 2215,
+  thex_tex_coord_issue = 2216,
+  thex_tex_coord_stall = 2217,
+  thex_tex_starve_cache = 2218,
+  thex_tex_starve_filter = 2219,
+  thex_ls_mem_read_full = 2220,
+  thex_ls_mem_read_short = 2221,
+  thex_ls_mem_write_full = 2222,
+  thex_ls_mem_write_short = 2223,
+  thex_ls_mem_atomic = 2224,
+  thex_vary_instr = 2225,
+  thex_vary_slot_32 = 2226,
+  thex_vary_slot_16 = 2227,
+  thex_attr_instr = 2228,
+  thex_arith_instr_fp_mul = 2229,
+  thex_beats_rd_ftc = 2230,
+  thex_beats_rd_ftc_ext = 2231,
+  thex_beats_rd_lsc = 2232,
+  thex_beats_rd_lsc_ext = 2233,
+  thex_beats_rd_tex = 2234,
+  thex_beats_rd_tex_ext = 2235,
+  thex_beats_rd_other = 2236,
+  thex_beats_wr_lsc = 2237,
+  thex_beats_wr_tib = 2238,
+  thex_mmu_requests = 2244,
+  thex_l2_rd_msg_in = 2256,
+  thex_l2_rd_msg_in_stall = 2257,
+  thex_l2_wr_msg_in = 2258,
+  thex_l2_wr_msg_in_stall = 2259,
+  thex_l2_snp_msg_in = 2260,
+  thex_l2_snp_msg_in_stall = 2261,
+  thex_l2_rd_msg_out = 2262,
+  thex_l2_rd_msg_out_stall = 2263,
+  thex_l2_wr_msg_out = 2264,
+  thex_l2_any_lookup = 2265,
+  thex_l2_read_lookup = 2266,
+  thex_l2_write_lookup = 2267,
+  thex_l2_ext_snoop_lookup = 2268,
+  thex_l2_ext_read = 2269,
+  thex_l2_ext_read_nosnp = 2270,
+  thex_l2_ext_read_unique = 2271,
+  thex_l2_ext_read_beats = 2272,
+  thex_l2_ext_ar_stall = 2273,
+  thex_l2_ext_ar_cnt_q1 = 2274,
+  thex_l2_ext_ar_cnt_q2 = 2275,
+  thex_l2_ext_ar_cnt_q3 = 2276,
+  thex_l2_ext_rresp_0_127 = 2277,
+  thex_l2_ext_rresp_128_191 = 2278,
+  thex_l2_ext_rresp_192_255 = 2279,
+  thex_l2_ext_rresp_256_319 = 2280,
+  thex_l2_ext_rresp_320_383 = 2281,
+  thex_l2_ext_write = 2282,
+  thex_l2_ext_write_nosnp_full = 2283,
+  thex_l2_ext_write_nosnp_ptl = 2284,
+  thex_l2_ext_write_snp_full = 2285,
+  thex_l2_ext_write_snp_ptl = 2286,
+  thex_l2_ext_write_beats = 2287,
+  thex_l2_ext_w_stall = 2288,
+  thex_l2_ext_aw_cnt_q1 = 2289,
+  thex_l2_ext_aw_cnt_q2 = 2290,
+  thex_l2_ext_aw_cnt_q3 = 2291,
+  thex_l2_ext_snoop = 2292,
+  thex_l2_ext_snoop_stall = 2293,
+  thex_l2_ext_snoop_resp_clean = 2294,
+  thex_l2_ext_snoop_resp_data = 2295,
+  thex_l2_ext_snoop_internal = 2296,
+  tmix_messages_sent = 2308,
+  tmix_messages_received = 2309,
+  tmix_gpu_active = 2310,
+  tmix_irq_active = 2311,
+  tmix_js0_jobs = 2312,
+  tmix_js0_tasks = 2313,
+  tmix_js0_active = 2314,
+  tmix_js0_wait_read = 2316,
+  tmix_js0_wait_issue = 2317,
+  tmix_js0_wait_depend = 2318,
+  tmix_js0_wait_finish = 2319,
+  tmix_js1_jobs = 2320,
+  tmix_js1_tasks = 2321,
+  tmix_js1_active = 2322,
+  tmix_js1_wait_read = 2324,
+  tmix_js1_wait_issue = 2325,
+  tmix_js1_wait_depend = 2326,
+  tmix_js1_wait_finish = 2327,
+  tmix_js2_jobs = 2328,
+  tmix_js2_tasks = 2329,
+  tmix_js2_active = 2330,
+  tmix_js2_wait_read = 2332,
+  tmix_js2_wait_issue = 2333,
+  tmix_js2_wait_depend = 2334,
+  tmix_js2_wait_finish = 2335,
+  tmix_tiler_active = 2372,
+  tmix_jobs_processed = 2373,
+  tmix_triangles = 2374,
+  tmix_lines = 2375,
+  tmix_points = 2376,
+  tmix_front_facing = 2377,
+  tmix_back_facing = 2378,
+  tmix_prim_visible = 2379,
+  tmix_prim_culled = 2380,
+  tmix_prim_clipped = 2381,
+  tmix_prim_sat_culled = 2382,
+  tmix_bin_alloc_init = 2383,
+  tmix_bin_alloc_overflow = 2384,
+  tmix_bus_read = 2385,
+  tmix_bus_write = 2387,
+  tmix_loading_desc = 2388,
+  tmix_idvs_pos_shad_req = 2389,
+  tmix_idvs_pos_shad_wait = 2390,
+  tmix_idvs_pos_shad_stall = 2391,
+  tmix_idvs_pos_fifo_full = 2392,
+  tmix_prefetch_stall = 2393,
+  tmix_vcache_hit = 2394,
+  tmix_vcache_miss = 2395,
+  tmix_vcache_line_wait = 2396,
+  tmix_vfetch_pos_read_wait = 2397,
+  tmix_vfetch_vertex_wait = 2398,
+  tmix_vfetch_stall = 2399,
+  tmix_primassy_stall = 2400,
+  tmix_bbox_gen_stall = 2401,
+  tmix_idvs_vbu_hit = 2402,
+  tmix_idvs_vbu_miss = 2403,
+  tmix_idvs_vbu_line_deallocate = 2404,
+  tmix_idvs_var_shad_req = 2405,
+  tmix_idvs_var_shad_stall = 2406,
+  tmix_binner_stall = 2407,
+  tmix_iter_stall = 2408,
+  tmix_compress_miss = 2409,
+  tmix_compress_stall = 2410,
+  tmix_pcache_hit = 2411,
+  tmix_pcache_miss = 2412,
+  tmix_pcache_miss_stall = 2413,
+  tmix_pcache_evict_stall = 2414,
+  tmix_pmgr_ptr_wr_stall = 2415,
+  tmix_pmgr_ptr_rd_stall = 2416,
+  tmix_pmgr_cmd_wr_stall = 2417,
+  tmix_wrbuf_active = 2418,
+  tmix_wrbuf_hit = 2419,
+  tmix_wrbuf_miss = 2420,
+  tmix_wrbuf_no_free_line_stall = 2421,
+  tmix_wrbuf_no_axi_id_stall = 2422,
+  tmix_wrbuf_axi_stall = 2423,
+  tmix_utlb_trans = 2427,
+  tmix_utlb_trans_hit = 2428,
+  tmix_utlb_trans_stall = 2429,
+  tmix_utlb_trans_miss_delay = 2430,
+  tmix_utlb_mmu_req = 2431,
+  tmix_frag_active = 2436,
+  tmix_frag_primitives = 2437,
+  tmix_frag_prim_rast = 2438,
+  tmix_frag_fpk_active = 2439,
+  tmix_frag_starving = 2440,
+  tmix_frag_warps = 2441,
+  tmix_frag_partial_warps = 2442,
+  tmix_frag_quads_rast = 2443,
+  tmix_frag_quads_ezs_test = 2444,
+  tmix_frag_quads_ezs_update = 2445,
+  tmix_frag_quads_ezs_kill = 2446,
+  tmix_frag_lzs_test = 2447,
+  tmix_frag_lzs_kill = 2448,
+  tmix_frag_ptiles = 2450,
+  tmix_frag_trans_elim = 2451,
+  tmix_quad_fpk_killer = 2452,
+  tmix_compute_active = 2454,
+  tmix_compute_tasks = 2455,
+  tmix_compute_warps = 2456,
+  tmix_compute_starving = 2457,
+  tmix_exec_core_active = 2458,
+  tmix_exec_active = 2459,
+  tmix_exec_instr_count = 2460,
+  tmix_exec_instr_diverged = 2461,
+  tmix_exec_instr_starving = 2462,
+  tmix_arith_instr_single_fma = 2463,
+  tmix_arith_instr_double = 2464,
+  tmix_arith_instr_msg = 2465,
+  tmix_arith_instr_msg_only = 2466,
+  tmix_tex_instr = 2467,
+  tmix_tex_instr_mipmap = 2468,
+  tmix_tex_instr_compressed = 2469,
+  tmix_tex_instr_3d = 2470,
+  tmix_tex_instr_trilinear = 2471,
+  tmix_tex_coord_issue = 2472,
+  tmix_tex_coord_stall = 2473,
+  tmix_tex_starve_cache = 2474,
+  tmix_tex_starve_filter = 2475,
+  tmix_ls_mem_read_full = 2476,
+  tmix_ls_mem_read_short = 2477,
+  tmix_ls_mem_write_full = 2478,
+  tmix_ls_mem_write_short = 2479,
+  tmix_ls_mem_atomic = 2480,
+  tmix_vary_instr = 2481,
+  tmix_vary_slot_32 = 2482,
+  tmix_vary_slot_16 = 2483,
+  tmix_attr_instr = 2484,
+  tmix_arith_instr_fp_mul = 2485,
+  tmix_beats_rd_ftc = 2486,
+  tmix_beats_rd_ftc_ext = 2487,
+  tmix_beats_rd_lsc = 2488,
+  tmix_beats_rd_lsc_ext = 2489,
+  tmix_beats_rd_tex = 2490,
+  tmix_beats_rd_tex_ext = 2491,
+  tmix_beats_rd_other = 2492,
+  tmix_beats_wr_lsc = 2493,
+  tmix_beats_wr_tib = 2494,
+  tmix_mmu_requests = 2500,
+  tmix_l2_rd_msg_in = 2512,
+  tmix_l2_rd_msg_in_stall = 2513,
+  tmix_l2_wr_msg_in = 2514,
+  tmix_l2_wr_msg_in_stall = 2515,
+  tmix_l2_snp_msg_in = 2516,
+  tmix_l2_snp_msg_in_stall = 2517,
+  tmix_l2_rd_msg_out = 2518,
+  tmix_l2_rd_msg_out_stall = 2519,
+  tmix_l2_wr_msg_out = 2520,
+  tmix_l2_any_lookup = 2521,
+  tmix_l2_read_lookup = 2522,
+  tmix_l2_write_lookup = 2523,
+  tmix_l2_ext_snoop_lookup = 2524,
+  tmix_l2_ext_read = 2525,
+  tmix_l2_ext_read_nosnp = 2526,
+  tmix_l2_ext_read_unique = 2527,
+  tmix_l2_ext_read_beats = 2528,
+  tmix_l2_ext_ar_stall = 2529,
+  tmix_l2_ext_ar_cnt_q1 = 2530,
+  tmix_l2_ext_ar_cnt_q2 = 2531,
+  tmix_l2_ext_ar_cnt_q3 = 2532,
+  tmix_l2_ext_rresp_0_127 = 2533,
+  tmix_l2_ext_rresp_128_191 = 2534,
+  tmix_l2_ext_rresp_192_255 = 2535,
+  tmix_l2_ext_rresp_256_319 = 2536,
+  tmix_l2_ext_rresp_320_383 = 2537,
+  tmix_l2_ext_write = 2538,
+  tmix_l2_ext_write_nosnp_full = 2539,
+  tmix_l2_ext_write_nosnp_ptl = 2540,
+  tmix_l2_ext_write_snp_full = 2541,
+  tmix_l2_ext_write_snp_ptl = 2542,
+  tmix_l2_ext_write_beats = 2543,
+  tmix_l2_ext_w_stall = 2544,
+  tmix_l2_ext_aw_cnt_q1 = 2545,
+  tmix_l2_ext_aw_cnt_q2 = 2546,
+  tmix_l2_ext_aw_cnt_q3 = 2547,
+  tmix_l2_ext_snoop = 2548,
+  tmix_l2_ext_snoop_stall = 2549,
+  tmix_l2_ext_snoop_resp_clean = 2550,
+  tmix_l2_ext_snoop_resp_data = 2551,
+  tmix_l2_ext_snoop_internal = 2552,
+  tdvx_messages_sent = 2564,
+  tdvx_messages_received = 2565,
+  tdvx_gpu_active = 2566,
+  tdvx_irq_active = 2567,
+  tdvx_js0_jobs = 2568,
+  tdvx_js0_tasks = 2569,
+  tdvx_js0_active = 2570,
+  tdvx_js0_wait_flush = 2571,
+  tdvx_js0_wait_read = 2572,
+  tdvx_js0_wait_issue = 2573,
+  tdvx_js0_wait_depend = 2574,
+  tdvx_js0_wait_finish = 2575,
+  tdvx_js1_jobs = 2576,
+  tdvx_js1_tasks = 2577,
+  tdvx_js1_active = 2578,
+  tdvx_js1_wait_flush = 2579,
+  tdvx_js1_wait_read = 2580,
+  tdvx_js1_wait_issue = 2581,
+  tdvx_js1_wait_depend = 2582,
+  tdvx_js1_wait_finish = 2583,
+  tdvx_js2_jobs = 2584,
+  tdvx_js2_tasks = 2585,
+  tdvx_js2_active = 2586,
+  tdvx_js2_wait_flush = 2587,
+  tdvx_js2_wait_read = 2588,
+  tdvx_js2_wait_issue = 2589,
+  tdvx_js2_wait_depend = 2590,
+  tdvx_js2_wait_finish = 2591,
+  tdvx_cache_flush = 2623,
+  tdvx_tiler_active = 2628,
+  tdvx_jobs_processed = 2629,
+  tdvx_triangles = 2630,
+  tdvx_lines = 2631,
+  tdvx_points = 2632,
+  tdvx_front_facing = 2633,
+  tdvx_back_facing = 2634,
+  tdvx_prim_visible = 2635,
+  tdvx_prim_culled = 2636,
+  tdvx_prim_clipped = 2637,
+  tdvx_prim_sat_culled = 2638,
+  tdvx_bin_alloc_init = 2639,
+  tdvx_bin_alloc_overflow = 2640,
+  tdvx_bus_read = 2641,
+  tdvx_bus_write = 2643,
+  tdvx_loading_desc = 2644,
+  tdvx_idvs_pos_shad_req = 2645,
+  tdvx_idvs_pos_shad_wait = 2646,
+  tdvx_idvs_pos_shad_stall = 2647,
+  tdvx_idvs_pos_fifo_full = 2648,
+  tdvx_prefetch_stall = 2649,
+  tdvx_vcache_hit = 2650,
+  tdvx_vcache_miss = 2651,
+  tdvx_vcache_line_wait = 2652,
+  tdvx_vfetch_pos_read_wait = 2653,
+  tdvx_vfetch_vertex_wait = 2654,
+  tdvx_vfetch_stall = 2655,
+  tdvx_primassy_stall = 2656,
+  tdvx_bbox_gen_stall = 2657,
+  tdvx_idvs_vbu_hit = 2658,
+  tdvx_idvs_vbu_miss = 2659,
+  tdvx_idvs_vbu_line_deallocate = 2660,
+  tdvx_idvs_var_shad_req = 2661,
+  tdvx_idvs_var_shad_stall = 2662,
+  tdvx_binner_stall = 2663,
+  tdvx_iter_stall = 2664,
+  tdvx_compress_miss = 2665,
+  tdvx_compress_stall = 2666,
+  tdvx_pcache_hit = 2667,
+  tdvx_pcache_miss = 2668,
+  tdvx_pcache_miss_stall = 2669,
+  tdvx_pcache_evict_stall = 2670,
+  tdvx_pmgr_ptr_wr_stall = 2671,
+  tdvx_pmgr_ptr_rd_stall = 2672,
+  tdvx_pmgr_cmd_wr_stall = 2673,
+  tdvx_wrbuf_active = 2674,
+  tdvx_wrbuf_hit = 2675,
+  tdvx_wrbuf_miss = 2676,
+  tdvx_wrbuf_no_free_line_stall = 2677,
+  tdvx_wrbuf_no_axi_id_stall = 2678,
+  tdvx_wrbuf_axi_stall = 2679,
+  tdvx_utlb_trans = 2683,
+  tdvx_utlb_trans_hit = 2684,
+  tdvx_utlb_trans_stall = 2685,
+  tdvx_utlb_trans_miss_delay = 2686,
+  tdvx_utlb_mmu_req = 2687,
+  tdvx_frag_active = 2692,
+  tdvx_frag_primitives = 2693,
+  tdvx_frag_prim_rast = 2694,
+  tdvx_frag_fpk_active = 2695,
+  tdvx_frag_starving = 2696,
+  tdvx_frag_warps = 2697,
+  tdvx_frag_partial_warps = 2698,
+  tdvx_frag_quads_rast = 2699,
+  tdvx_frag_quads_ezs_test = 2700,
+  tdvx_frag_quads_ezs_update = 2701,
+  tdvx_frag_quads_ezs_kill = 2702,
+  tdvx_frag_lzs_test = 2703,
+  tdvx_frag_lzs_kill = 2704,
+  tdvx_frag_ptiles = 2706,
+  tdvx_frag_trans_elim = 2707,
+  tdvx_quad_fpk_killer = 2708,
+  tdvx_compute_active = 2710,
+  tdvx_compute_tasks = 2711,
+  tdvx_compute_warps = 2712,
+  tdvx_compute_starving = 2713,
+  tdvx_exec_core_active = 2714,
+  tdvx_exec_active = 2715,
+  tdvx_exec_instr_count = 2716,
+  tdvx_exec_instr_diverged = 2717,
+  tdvx_exec_instr_starving = 2718,
+  tdvx_arith_instr_single_fma = 2719,
+  tdvx_arith_instr_double = 2720,
+  tdvx_arith_instr_msg = 2721,
+  tdvx_arith_instr_msg_only = 2722,
+  tdvx_tex_msgi_num_quads = 2723,
+  tdvx_tex_dfch_num_passes = 2724,
+  tdvx_tex_dfch_num_passes_miss = 2725,
+  tdvx_tex_dfch_num_passes_mip_map = 2726,
+  tdvx_tex_tidx_num_split_mip_map = 2727,
+  tdvx_tex_tfch_num_lines_fetched = 2728,
+  tdvx_tex_tfch_num_lines_fetched_block_compressed = 2729,
+  tdvx_tex_tfch_num_operations = 2730,
+  tdvx_tex_filt_num_operations = 2731,
+  tdvx_ls_mem_read_full = 2732,
+  tdvx_ls_mem_read_short = 2733,
+  tdvx_ls_mem_write_full = 2734,
+  tdvx_ls_mem_write_short = 2735,
+  tdvx_ls_mem_atomic = 2736,
+  tdvx_vary_instr = 2737,
+  tdvx_vary_slot_32 = 2738,
+  tdvx_vary_slot_16 = 2739,
+  tdvx_attr_instr = 2740,
+  tdvx_arith_instr_fp_mul = 2741,
+  tdvx_beats_rd_ftc = 2742,
+  tdvx_beats_rd_ftc_ext = 2743,
+  tdvx_beats_rd_lsc = 2744,
+  tdvx_beats_rd_lsc_ext = 2745,
+  tdvx_beats_rd_tex = 2746,
+  tdvx_beats_rd_tex_ext = 2747,
+  tdvx_beats_rd_other = 2748,
+  tdvx_beats_wr_lsc_other = 2749,
+  tdvx_beats_wr_tib = 2750,
+  tdvx_beats_wr_lsc_wb = 2751,
+  tdvx_mmu_requests = 2756,
+  tdvx_mmu_table_reads_l3 = 2757,
+  tdvx_mmu_table_reads_l2 = 2758,
+  tdvx_mmu_hit_l3 = 2759,
+  tdvx_mmu_hit_l2 = 2760,
+  tdvx_mmu_s2_requests = 2761,
+  tdvx_mmu_s2_table_reads_l3 = 2762,
+  tdvx_mmu_s2_table_reads_l2 = 2763,
+  tdvx_mmu_s2_hit_l3 = 2764,
+  tdvx_mmu_s2_hit_l2 = 2765,
+  tdvx_l2_rd_msg_in = 2768,
+  tdvx_l2_rd_msg_in_stall = 2769,
+  tdvx_l2_wr_msg_in = 2770,
+  tdvx_l2_wr_msg_in_stall = 2771,
+  tdvx_l2_snp_msg_in = 2772,
+  tdvx_l2_snp_msg_in_stall = 2773,
+  tdvx_l2_rd_msg_out = 2774,
+  tdvx_l2_rd_msg_out_stall = 2775,
+  tdvx_l2_wr_msg_out = 2776,
+  tdvx_l2_any_lookup = 2777,
+  tdvx_l2_read_lookup = 2778,
+  tdvx_l2_write_lookup = 2779,
+  tdvx_l2_ext_snoop_lookup = 2780,
+  tdvx_l2_ext_read = 2781,
+  tdvx_l2_ext_read_nosnp = 2782,
+  tdvx_l2_ext_read_unique = 2783,
+  tdvx_l2_ext_read_beats = 2784,
+  tdvx_l2_ext_ar_stall = 2785,
+  tdvx_l2_ext_ar_cnt_q1 = 2786,
+  tdvx_l2_ext_ar_cnt_q2 = 2787,
+  tdvx_l2_ext_ar_cnt_q3 = 2788,
+  tdvx_l2_ext_rresp_0_127 = 2789,
+  tdvx_l2_ext_rresp_128_191 = 2790,
+  tdvx_l2_ext_rresp_192_255 = 2791,
+  tdvx_l2_ext_rresp_256_319 = 2792,
+  tdvx_l2_ext_rresp_320_383 = 2793,
+  tdvx_l2_ext_write = 2794,
+  tdvx_l2_ext_write_nosnp_full = 2795,
+  tdvx_l2_ext_write_nosnp_ptl = 2796,
+  tdvx_l2_ext_write_snp_full = 2797,
+  tdvx_l2_ext_write_snp_ptl = 2798,
+  tdvx_l2_ext_write_beats = 2799,
+  tdvx_l2_ext_w_stall = 2800,
+  tdvx_l2_ext_aw_cnt_q1 = 2801,
+  tdvx_l2_ext_aw_cnt_q2 = 2802,
+  tdvx_l2_ext_aw_cnt_q3 = 2803,
+  tdvx_l2_ext_snoop = 2804,
+  tdvx_l2_ext_snoop_stall = 2805,
+  tdvx_l2_ext_snoop_resp_clean = 2806,
+  tdvx_l2_ext_snoop_resp_data = 2807,
+  tdvx_l2_ext_snoop_internal = 2808,
+  tsix_messages_sent = 2820,
+  tsix_messages_received = 2821,
+  tsix_gpu_active = 2822,
+  tsix_irq_active = 2823,
+  tsix_js0_jobs = 2824,
+  tsix_js0_tasks = 2825,
+  tsix_js0_active = 2826,
+  tsix_js0_wait_flush = 2827,
+  tsix_js0_wait_read = 2828,
+  tsix_js0_wait_issue = 2829,
+  tsix_js0_wait_depend = 2830,
+  tsix_js0_wait_finish = 2831,
+  tsix_js1_jobs = 2832,
+  tsix_js1_tasks = 2833,
+  tsix_js1_active = 2834,
+  tsix_js1_wait_flush = 2835,
+  tsix_js1_wait_read = 2836,
+  tsix_js1_wait_issue = 2837,
+  tsix_js1_wait_depend = 2838,
+  tsix_js1_wait_finish = 2839,
+  tsix_js2_jobs = 2840,
+  tsix_js2_tasks = 2841,
+  tsix_js2_active = 2842,
+  tsix_js2_wait_flush = 2843,
+  tsix_js2_wait_read = 2844,
+  tsix_js2_wait_issue = 2845,
+  tsix_js2_wait_depend = 2846,
+  tsix_js2_wait_finish = 2847,
+  tsix_tiler_active = 2884,
+  tsix_jobs_processed = 2885,
+  tsix_triangles = 2886,
+  tsix_lines = 2887,
+  tsix_points = 2888,
+  tsix_front_facing = 2889,
+  tsix_back_facing = 2890,
+  tsix_prim_visible = 2891,
+  tsix_prim_culled = 2892,
+  tsix_prim_clipped = 2893,
+  tsix_prim_sat_culled = 2894,
+  tsix_bin_alloc_init = 2895,
+  tsix_bin_alloc_overflow = 2896,
+  tsix_bus_read = 2897,
+  tsix_bus_write = 2899,
+  tsix_loading_desc = 2900,
+  tsix_idvs_pos_shad_req = 2901,
+  tsix_idvs_pos_shad_wait = 2902,
+  tsix_idvs_pos_shad_stall = 2903,
+  tsix_idvs_pos_fifo_full = 2904,
+  tsix_prefetch_stall = 2905,
+  tsix_vcache_hit = 2906,
+  tsix_vcache_miss = 2907,
+  tsix_vcache_line_wait = 2908,
+  tsix_vfetch_pos_read_wait = 2909,
+  tsix_vfetch_vertex_wait = 2910,
+  tsix_vfetch_stall = 2911,
+  tsix_primassy_stall = 2912,
+  tsix_bbox_gen_stall = 2913,
+  tsix_idvs_vbu_hit = 2914,
+  tsix_idvs_vbu_miss = 2915,
+  tsix_idvs_vbu_line_deallocate = 2916,
+  tsix_idvs_var_shad_req = 2917,
+  tsix_idvs_var_shad_stall = 2918,
+  tsix_binner_stall = 2919,
+  tsix_iter_stall = 2920,
+  tsix_compress_miss = 2921,
+  tsix_compress_stall = 2922,
+  tsix_pcache_hit = 2923,
+  tsix_pcache_miss = 2924,
+  tsix_pcache_miss_stall = 2925,
+  tsix_pcache_evict_stall = 2926,
+  tsix_pmgr_ptr_wr_stall = 2927,
+  tsix_pmgr_ptr_rd_stall = 2928,
+  tsix_pmgr_cmd_wr_stall = 2929,
+  tsix_wrbuf_active = 2930,
+  tsix_wrbuf_hit = 2931,
+  tsix_wrbuf_miss = 2932,
+  tsix_wrbuf_no_free_line_stall = 2933,
+  tsix_wrbuf_no_axi_id_stall = 2934,
+  tsix_wrbuf_axi_stall = 2935,
+  tsix_utlb_trans = 2939,
+  tsix_utlb_trans_hit = 2940,
+  tsix_utlb_trans_stall = 2941,
+  tsix_utlb_trans_miss_delay = 2942,
+  tsix_utlb_mmu_req = 2943,
+  tsix_frag_active = 2948,
+  tsix_frag_primitives = 2949,
+  tsix_frag_prim_rast = 2950,
+  tsix_frag_fpk_active = 2951,
+  tsix_frag_starving = 2952,
+  tsix_frag_warps = 2953,
+  tsix_frag_partial_warps = 2954,
+  tsix_frag_quads_rast = 2955,
+  tsix_frag_quads_ezs_test = 2956,
+  tsix_frag_quads_ezs_update = 2957,
+  tsix_frag_quads_ezs_kill = 2958,
+  tsix_frag_lzs_test = 2959,
+  tsix_frag_lzs_kill = 2960,
+  tsix_frag_ptiles = 2962,
+  tsix_frag_trans_elim = 2963,
+  tsix_quad_fpk_killer = 2964,
+  tsix_compute_active = 2966,
+  tsix_compute_tasks = 2967,
+  tsix_compute_warps = 2968,
+  tsix_compute_starving = 2969,
+  tsix_exec_core_active = 2970,
+  tsix_exec_active = 2971,
+  tsix_exec_instr_count = 2972,
+  tsix_exec_instr_diverged = 2973,
+  tsix_exec_instr_starving = 2974,
+  tsix_arith_instr_single_fma = 2975,
+  tsix_arith_instr_double = 2976,
+  tsix_arith_instr_msg = 2977,
+  tsix_arith_instr_msg_only = 2978,
+  tsix_tex_msgi_num_quads = 2979,
+  tsix_tex_dfch_num_passes = 2980,
+  tsix_tex_dfch_num_passes_miss = 2981,
+  tsix_tex_dfch_num_passes_mip_map = 2982,
+  tsix_tex_tidx_num_split_mip_map = 2983,
+  tsix_tex_tfch_num_lines_fetched = 2984,
+  tsix_tex_tfch_num_lines_fetched_block_compressed = 2985,
+  tsix_tex_tfch_num_operations = 2986,
+  tsix_tex_filt_num_operations = 2987,
+  tsix_ls_mem_read_full = 2988,
+  tsix_ls_mem_read_short = 2989,
+  tsix_ls_mem_write_full = 2990,
+  tsix_ls_mem_write_short = 2991,
+  tsix_ls_mem_atomic = 2992,
+  tsix_vary_instr = 2993,
+  tsix_vary_slot_32 = 2994,
+  tsix_vary_slot_16 = 2995,
+  tsix_attr_instr = 2996,
+  tsix_arith_instr_fp_mul = 2997,
+  tsix_beats_rd_ftc = 2998,
+  tsix_beats_rd_ftc_ext = 2999,
+  tsix_beats_rd_lsc = 3000,
+  tsix_beats_rd_lsc_ext = 3001,
+  tsix_beats_rd_tex = 3002,
+  tsix_beats_rd_tex_ext = 3003,
+  tsix_beats_rd_other = 3004,
+  tsix_beats_wr_lsc_other = 3005,
+  tsix_beats_wr_tib = 3006,
+  tsix_beats_wr_lsc_wb = 3007,
+  tsix_mmu_requests = 3012,
+  tsix_mmu_table_reads_l3 = 3013,
+  tsix_mmu_table_reads_l2 = 3014,
+  tsix_mmu_hit_l3 = 3015,
+  tsix_mmu_hit_l2 = 3016,
+  tsix_mmu_s2_requests = 3017,
+  tsix_mmu_s2_table_reads_l3 = 3018,
+  tsix_mmu_s2_table_reads_l2 = 3019,
+  tsix_mmu_s2_hit_l3 = 3020,
+  tsix_mmu_s2_hit_l2 = 3021,
+  tsix_l2_rd_msg_in = 3024,
+  tsix_l2_rd_msg_in_stall = 3025,
+  tsix_l2_wr_msg_in = 3026,
+  tsix_l2_wr_msg_in_stall = 3027,
+  tsix_l2_snp_msg_in = 3028,
+  tsix_l2_snp_msg_in_stall = 3029,
+  tsix_l2_rd_msg_out = 3030,
+  tsix_l2_rd_msg_out_stall = 3031,
+  tsix_l2_wr_msg_out = 3032,
+  tsix_l2_any_lookup = 3033,
+  tsix_l2_read_lookup = 3034,
+  tsix_l2_write_lookup = 3035,
+  tsix_l2_ext_snoop_lookup = 3036,
+  tsix_l2_ext_read = 3037,
+  tsix_l2_ext_read_nosnp = 3038,
+  tsix_l2_ext_read_unique = 3039,
+  tsix_l2_ext_read_beats = 3040,
+  tsix_l2_ext_ar_stall = 3041,
+  tsix_l2_ext_ar_cnt_q1 = 3042,
+  tsix_l2_ext_ar_cnt_q2 = 3043,
+  tsix_l2_ext_ar_cnt_q3 = 3044,
+  tsix_l2_ext_rresp_0_127 = 3045,
+  tsix_l2_ext_rresp_128_191 = 3046,
+  tsix_l2_ext_rresp_192_255 = 3047,
+  tsix_l2_ext_rresp_256_319 = 3048,
+  tsix_l2_ext_rresp_320_383 = 3049,
+  tsix_l2_ext_write = 3050,
+  tsix_l2_ext_write_nosnp_full = 3051,
+  tsix_l2_ext_write_nosnp_ptl = 3052,
+  tsix_l2_ext_write_snp_full = 3053,
+  tsix_l2_ext_write_snp_ptl = 3054,
+  tsix_l2_ext_write_beats = 3055,
+  tsix_l2_ext_w_stall = 3056,
+  tsix_l2_ext_aw_cnt_q1 = 3057,
+  tsix_l2_ext_aw_cnt_q2 = 3058,
+  tsix_l2_ext_aw_cnt_q3 = 3059,
+  tsix_l2_ext_snoop = 3060,
+  tsix_l2_ext_snoop_stall = 3061,
+  tsix_l2_ext_snoop_resp_clean = 3062,
+  tsix_l2_ext_snoop_resp_data = 3063,
+  tsix_l2_ext_snoop_internal = 3064,
+  tnox_messages_sent = 3076,
+  tnox_messages_received = 3077,
+  tnox_gpu_active = 3078,
+  tnox_irq_active = 3079,
+  tnox_js0_jobs = 3080,
+  tnox_js0_tasks = 3081,
+  tnox_js0_active = 3082,
+  tnox_js0_wait_flush = 3083,
+  tnox_js0_wait_read = 3084,
+  tnox_js0_wait_issue = 3085,
+  tnox_js0_wait_depend = 3086,
+  tnox_js0_wait_finish = 3087,
+  tnox_js1_jobs = 3088,
+  tnox_js1_tasks = 3089,
+  tnox_js1_active = 3090,
+  tnox_js1_wait_flush = 3091,
+  tnox_js1_wait_read = 3092,
+  tnox_js1_wait_issue = 3093,
+  tnox_js1_wait_depend = 3094,
+  tnox_js1_wait_finish = 3095,
+  tnox_js2_jobs = 3096,
+  tnox_js2_tasks = 3097,
+  tnox_js2_active = 3098,
+  tnox_js2_wait_flush = 3099,
+  tnox_js2_wait_read = 3100,
+  tnox_js2_wait_issue = 3101,
+  tnox_js2_wait_depend = 3102,
+  tnox_js2_wait_finish = 3103,
+  tnox_cache_flush = 3135,
+  tnox_tiler_active = 3140,
+  tnox_jobs_processed = 3141,
+  tnox_triangles = 3142,
+  tnox_lines = 3143,
+  tnox_points = 3144,
+  tnox_front_facing = 3145,
+  tnox_back_facing = 3146,
+  tnox_prim_visible = 3147,
+  tnox_prim_culled = 3148,
+  tnox_prim_clipped = 3149,
+  tnox_prim_sat_culled = 3150,
+  tnox_bin_alloc_init = 3151,
+  tnox_bin_alloc_overflow = 3152,
+  tnox_bus_read = 3153,
+  tnox_bus_write = 3155,
+  tnox_loading_desc = 3156,
+  tnox_idvs_pos_shad_req = 3157,
+  tnox_idvs_pos_shad_wait = 3158,
+  tnox_idvs_pos_shad_stall = 3159,
+  tnox_idvs_pos_fifo_full = 3160,
+  tnox_prefetch_stall = 3161,
+  tnox_vcache_hit = 3162,
+  tnox_vcache_miss = 3163,
+  tnox_vcache_line_wait = 3164,
+  tnox_vfetch_pos_read_wait = 3165,
+  tnox_vfetch_vertex_wait = 3166,
+  tnox_vfetch_stall = 3167,
+  tnox_primassy_stall = 3168,
+  tnox_bbox_gen_stall = 3169,
+  tnox_idvs_vbu_hit = 3170,
+  tnox_idvs_vbu_miss = 3171,
+  tnox_idvs_vbu_line_deallocate = 3172,
+  tnox_idvs_var_shad_req = 3173,
+  tnox_idvs_var_shad_stall = 3174,
+  tnox_binner_stall = 3175,
+  tnox_iter_stall = 3176,
+  tnox_compress_miss = 3177,
+  tnox_compress_stall = 3178,
+  tnox_pcache_hit = 3179,
+  tnox_pcache_miss = 3180,
+  tnox_pcache_miss_stall = 3181,
+  tnox_pcache_evict_stall = 3182,
+  tnox_pmgr_ptr_wr_stall = 3183,
+  tnox_pmgr_ptr_rd_stall = 3184,
+  tnox_pmgr_cmd_wr_stall = 3185,
+  tnox_wrbuf_active = 3186,
+  tnox_wrbuf_hit = 3187,
+  tnox_wrbuf_miss = 3188,
+  tnox_wrbuf_no_free_line_stall = 3189,
+  tnox_wrbuf_no_axi_id_stall = 3190,
+  tnox_wrbuf_axi_stall = 3191,
+  tnox_utlb_trans = 3195,
+  tnox_utlb_trans_hit = 3196,
+  tnox_utlb_trans_stall = 3197,
+  tnox_utlb_trans_miss_delay = 3198,
+  tnox_utlb_mmu_req = 3199,
+  tnox_frag_active = 3204,
+  tnox_frag_primitives = 3205,
+  tnox_frag_prim_rast = 3206,
+  tnox_frag_fpk_active = 3207,
+  tnox_frag_starving = 3208,
+  tnox_frag_warps = 3209,
+  tnox_frag_partial_warps = 3210,
+  tnox_frag_quads_rast = 3211,
+  tnox_frag_quads_ezs_test = 3212,
+  tnox_frag_quads_ezs_update = 3213,
+  tnox_frag_quads_ezs_kill = 3214,
+  tnox_frag_lzs_test = 3215,
+  tnox_frag_lzs_kill = 3216,
+  tnox_warp_reg_size_64 = 3217,
+  tnox_frag_ptiles = 3218,
+  tnox_frag_trans_elim = 3219,
+  tnox_quad_fpk_killer = 3220,
+  tnox_full_quad_warps = 3221,
+  tnox_compute_active = 3222,
+  tnox_compute_tasks = 3223,
+  tnox_compute_warps = 3224,
+  tnox_compute_starving = 3225,
+  tnox_exec_core_active = 3226,
+  tnox_exec_active = 3227,
+  tnox_exec_instr_count = 3228,
+  tnox_exec_instr_diverged = 3229,
+  tnox_exec_instr_starving = 3230,
+  tnox_arith_instr_single_fma = 3231,
+  tnox_arith_instr_double = 3232,
+  tnox_arith_instr_msg = 3233,
+  tnox_arith_instr_msg_only = 3234,
+  tnox_tex_msgi_num_quads = 3235,
+  tnox_tex_dfch_num_passes = 3236,
+  tnox_tex_dfch_num_passes_miss = 3237,
+  tnox_tex_dfch_num_passes_mip_map = 3238,
+  tnox_tex_tidx_num_split_mip_map = 3239,
+  tnox_tex_tfch_num_lines_fetched = 3240,
+  tnox_tex_tfch_num_lines_fetched_block_compressed = 3241,
+  tnox_tex_tfch_num_operations = 3242,
+  tnox_tex_filt_num_operations = 3243,
+  tnox_ls_mem_read_full = 3244,
+  tnox_ls_mem_read_short = 3245,
+  tnox_ls_mem_write_full = 3246,
+  tnox_ls_mem_write_short = 3247,
+  tnox_ls_mem_atomic = 3248,
+  tnox_vary_instr = 3249,
+  tnox_vary_slot_32 = 3250,
+  tnox_vary_slot_16 = 3251,
+  tnox_attr_instr = 3252,
+  tnox_arith_instr_fp_mul = 3253,
+  tnox_beats_rd_ftc = 3254,
+  tnox_beats_rd_ftc_ext = 3255,
+  tnox_beats_rd_lsc = 3256,
+  tnox_beats_rd_lsc_ext = 3257,
+  tnox_beats_rd_tex = 3258,
+  tnox_beats_rd_tex_ext = 3259,
+  tnox_beats_rd_other = 3260,
+  tnox_beats_wr_lsc_other = 3261,
+  tnox_beats_wr_tib = 3262,
+  tnox_beats_wr_lsc_wb = 3263,
+  tnox_mmu_requests = 3268,
+  tnox_mmu_table_reads_l3 = 3269,
+  tnox_mmu_table_reads_l2 = 3270,
+  tnox_mmu_hit_l3 = 3271,
+  tnox_mmu_hit_l2 = 3272,
+  tnox_mmu_s2_requests = 3273,
+  tnox_mmu_s2_table_reads_l3 = 3274,
+  tnox_mmu_s2_table_reads_l2 = 3275,
+  tnox_mmu_s2_hit_l3 = 3276,
+  tnox_mmu_s2_hit_l2 = 3277,
+  tnox_l2_rd_msg_in = 3280,
+  tnox_l2_rd_msg_in_stall = 3281,
+  tnox_l2_wr_msg_in = 3282,
+  tnox_l2_wr_msg_in_stall = 3283,
+  tnox_l2_snp_msg_in = 3284,
+  tnox_l2_snp_msg_in_stall = 3285,
+  tnox_l2_rd_msg_out = 3286,
+  tnox_l2_rd_msg_out_stall = 3287,
+  tnox_l2_wr_msg_out = 3288,
+  tnox_l2_any_lookup = 3289,
+  tnox_l2_read_lookup = 3290,
+  tnox_l2_write_lookup = 3291,
+  tnox_l2_ext_snoop_lookup = 3292,
+  tnox_l2_ext_read = 3293,
+  tnox_l2_ext_read_nosnp = 3294,
+  tnox_l2_ext_read_unique = 3295,
+  tnox_l2_ext_read_beats = 3296,
+  tnox_l2_ext_ar_stall = 3297,
+  tnox_l2_ext_ar_cnt_q1 = 3298,
+  tnox_l2_ext_ar_cnt_q2 = 3299,
+  tnox_l2_ext_ar_cnt_q3 = 3300,
+  tnox_l2_ext_rresp_0_127 = 3301,
+  tnox_l2_ext_rresp_128_191 = 3302,
+  tnox_l2_ext_rresp_192_255 = 3303,
+  tnox_l2_ext_rresp_256_319 = 3304,
+  tnox_l2_ext_rresp_320_383 = 3305,
+  tnox_l2_ext_write = 3306,
+  tnox_l2_ext_write_nosnp_full = 3307,
+  tnox_l2_ext_write_nosnp_ptl = 3308,
+  tnox_l2_ext_write_snp_full = 3309,
+  tnox_l2_ext_write_snp_ptl = 3310,
+  tnox_l2_ext_write_beats = 3311,
+  tnox_l2_ext_w_stall = 3312,
+  tnox_l2_ext_aw_cnt_q1 = 3313,
+  tnox_l2_ext_aw_cnt_q2 = 3314,
+  tnox_l2_ext_aw_cnt_q3 = 3315,
+  tnox_l2_ext_snoop = 3316,
+  tnox_l2_ext_snoop_stall = 3317,
+  tnox_l2_ext_snoop_resp_clean = 3318,
+  tnox_l2_ext_snoop_resp_data = 3319,
+  tnox_l2_ext_snoop_internal = 3320,
+  tgox_messages_sent = 3332,
+  tgox_messages_received = 3333,
+  tgox_gpu_active = 3334,
+  tgox_irq_active = 3335,
+  tgox_js0_jobs = 3336,
+  tgox_js0_tasks = 3337,
+  tgox_js0_active = 3338,
+  tgox_js0_wait_flush = 3339,
+  tgox_js0_wait_read = 3340,
+  tgox_js0_wait_issue = 3341,
+  tgox_js0_wait_depend = 3342,
+  tgox_js0_wait_finish = 3343,
+  tgox_js1_jobs = 3344,
+  tgox_js1_tasks = 3345,
+  tgox_js1_active = 3346,
+  tgox_js1_wait_flush = 3347,
+  tgox_js1_wait_read = 3348,
+  tgox_js1_wait_issue = 3349,
+  tgox_js1_wait_depend = 3350,
+  tgox_js1_wait_finish = 3351,
+  tgox_js2_jobs = 3352,
+  tgox_js2_tasks = 3353,
+  tgox_js2_active = 3354,
+  tgox_js2_wait_flush = 3355,
+  tgox_js2_wait_read = 3356,
+  tgox_js2_wait_issue = 3357,
+  tgox_js2_wait_depend = 3358,
+  tgox_js2_wait_finish = 3359,
+  tgox_cache_flush = 3391,
+  tgox_tiler_active = 3396,
+  tgox_jobs_processed = 3397,
+  tgox_triangles = 3398,
+  tgox_lines = 3399,
+  tgox_points = 3400,
+  tgox_front_facing = 3401,
+  tgox_back_facing = 3402,
+  tgox_prim_visible = 3403,
+  tgox_prim_culled = 3404,
+  tgox_prim_clipped = 3405,
+  tgox_prim_sat_culled = 3406,
+  tgox_bin_alloc_init = 3407,
+  tgox_bin_alloc_overflow = 3408,
+  tgox_bus_read = 3409,
+  tgox_bus_write = 3411,
+  tgox_loading_desc = 3412,
+  tgox_idvs_pos_shad_req = 3413,
+  tgox_idvs_pos_shad_wait = 3414,
+  tgox_idvs_pos_shad_stall = 3415,
+  tgox_idvs_pos_fifo_full = 3416,
+  tgox_prefetch_stall = 3417,
+  tgox_vcache_hit = 3418,
+  tgox_vcache_miss = 3419,
+  tgox_vcache_line_wait = 3420,
+  tgox_vfetch_pos_read_wait = 3421,
+  tgox_vfetch_vertex_wait = 3422,
+  tgox_vfetch_stall = 3423,
+  tgox_primassy_stall = 3424,
+  tgox_bbox_gen_stall = 3425,
+  tgox_idvs_vbu_hit = 3426,
+  tgox_idvs_vbu_miss = 3427,
+  tgox_idvs_vbu_line_deallocate = 3428,
+  tgox_idvs_var_shad_req = 3429,
+  tgox_idvs_var_shad_stall = 3430,
+  tgox_binner_stall = 3431,
+  tgox_iter_stall = 3432,
+  tgox_compress_miss = 3433,
+  tgox_compress_stall = 3434,
+  tgox_pcache_hit = 3435,
+  tgox_pcache_miss = 3436,
+  tgox_pcache_miss_stall = 3437,
+  tgox_pcache_evict_stall = 3438,
+  tgox_pmgr_ptr_wr_stall = 3439,
+  tgox_pmgr_ptr_rd_stall = 3440,
+  tgox_pmgr_cmd_wr_stall = 3441,
+  tgox_wrbuf_active = 3442,
+  tgox_wrbuf_hit = 3443,
+  tgox_wrbuf_miss = 3444,
+  tgox_wrbuf_no_free_line_stall = 3445,
+  tgox_wrbuf_no_axi_id_stall = 3446,
+  tgox_wrbuf_axi_stall = 3447,
+  tgox_utlb_trans = 3451,
+  tgox_utlb_trans_hit = 3452,
+  tgox_utlb_trans_stall = 3453,
+  tgox_utlb_trans_miss_delay = 3454,
+  tgox_utlb_mmu_req = 3455,
+  tgox_frag_active = 3460,
+  tgox_frag_primitives = 3461,
+  tgox_frag_prim_rast = 3462,
+  tgox_frag_fpk_active = 3463,
+  tgox_frag_starving = 3464,
+  tgox_frag_warps = 3465,
+  tgox_frag_partial_warps = 3466,
+  tgox_frag_quads_rast = 3467,
+  tgox_frag_quads_ezs_test = 3468,
+  tgox_frag_quads_ezs_update = 3469,
+  tgox_frag_quads_ezs_kill = 3470,
+  tgox_frag_lzs_test = 3471,
+  tgox_frag_lzs_kill = 3472,
+  tgox_warp_reg_size_64 = 3473,
+  tgox_frag_ptiles = 3474,
+  tgox_frag_trans_elim = 3475,
+  tgox_quad_fpk_killer = 3476,
+  tgox_full_quad_warps = 3477,
+  tgox_compute_active = 3478,
+  tgox_compute_tasks = 3479,
+  tgox_compute_warps = 3480,
+  tgox_compute_starving = 3481,
+  tgox_exec_core_active = 3482,
+  tgox_exec_active = 3483,
+  tgox_exec_instr_count = 3484,
+  tgox_exec_instr_diverged = 3485,
+  tgox_exec_instr_starving = 3486,
+  tgox_arith_instr_single_fma = 3487,
+  tgox_arith_instr_double = 3488,
+  tgox_arith_instr_msg = 3489,
+  tgox_arith_instr_msg_only = 3490,
+  tgox_tex_msgi_num_quads = 3491,
+  tgox_tex_dfch_num_passes = 3492,
+  tgox_tex_dfch_num_passes_miss = 3493,
+  tgox_tex_dfch_num_passes_mip_map = 3494,
+  tgox_tex_tidx_num_split_mip_map = 3495,
+  tgox_tex_tfch_num_lines_fetched = 3496,
+  tgox_tex_tfch_num_lines_fetched_block_compressed = 3497,
+  tgox_tex_tfch_num_operations = 3498,
+  tgox_tex_filt_num_operations = 3499,
+  tgox_ls_mem_read_full = 3500,
+  tgox_ls_mem_read_short = 3501,
+  tgox_ls_mem_write_full = 3502,
+  tgox_ls_mem_write_short = 3503,
+  tgox_ls_mem_atomic = 3504,
+  tgox_vary_instr = 3505,
+  tgox_vary_slot_32 = 3506,
+  tgox_vary_slot_16 = 3507,
+  tgox_attr_instr = 3508,
+  tgox_arith_instr_fp_mul = 3509,
+  tgox_beats_rd_ftc = 3510,
+  tgox_beats_rd_ftc_ext = 3511,
+  tgox_beats_rd_lsc = 3512,
+  tgox_beats_rd_lsc_ext = 3513,
+  tgox_beats_rd_tex = 3514,
+  tgox_beats_rd_tex_ext = 3515,
+  tgox_beats_rd_other = 3516,
+  tgox_beats_wr_lsc_wb = 3517,
+  tgox_beats_wr_tib = 3518,
+  tgox_beats_wr_lsc_other = 3519,
+  tgox_mmu_requests = 3524,
+  tgox_mmu_table_reads_l3 = 3525,
+  tgox_mmu_table_reads_l2 = 3526,
+  tgox_mmu_hit_l3 = 3527,
+  tgox_mmu_hit_l2 = 3528,
+  tgox_mmu_s2_requests = 3529,
+  tgox_mmu_s2_table_reads_l3 = 3530,
+  tgox_mmu_s2_table_reads_l2 = 3531,
+  tgox_mmu_s2_hit_l3 = 3532,
+  tgox_mmu_s2_hit_l2 = 3533,
+  tgox_l2_rd_msg_in = 3536,
+  tgox_l2_rd_msg_in_stall = 3537,
+  tgox_l2_wr_msg_in = 3538,
+  tgox_l2_wr_msg_in_stall = 3539,
+  tgox_l2_snp_msg_in = 3540,
+  tgox_l2_snp_msg_in_stall = 3541,
+  tgox_l2_rd_msg_out = 3542,
+  tgox_l2_rd_msg_out_stall = 3543,
+  tgox_l2_wr_msg_out = 3544,
+  tgox_l2_any_lookup = 3545,
+  tgox_l2_read_lookup = 3546,
+  tgox_l2_write_lookup = 3547,
+  tgox_l2_ext_snoop_lookup = 3548,
+  tgox_l2_ext_read = 3549,
+  tgox_l2_ext_read_nosnp = 3550,
+  tgox_l2_ext_read_unique = 3551,
+  tgox_l2_ext_read_beats = 3552,
+  tgox_l2_ext_ar_stall = 3553,
+  tgox_l2_ext_ar_cnt_q1 = 3554,
+  tgox_l2_ext_ar_cnt_q2 = 3555,
+  tgox_l2_ext_ar_cnt_q3 = 3556,
+  tgox_l2_ext_rresp_0_127 = 3557,
+  tgox_l2_ext_rresp_128_191 = 3558,
+  tgox_l2_ext_rresp_192_255 = 3559,
+  tgox_l2_ext_rresp_256_319 = 3560,
+  tgox_l2_ext_rresp_320_383 = 3561,
+  tgox_l2_ext_write = 3562,
+  tgox_l2_ext_write_nosnp_full = 3563,
+  tgox_l2_ext_write_nosnp_ptl = 3564,
+  tgox_l2_ext_write_snp_full = 3565,
+  tgox_l2_ext_write_snp_ptl = 3566,
+  tgox_l2_ext_write_beats = 3567,
+  tgox_l2_ext_w_stall = 3568,
+  tgox_l2_ext_aw_cnt_q1 = 3569,
+  tgox_l2_ext_aw_cnt_q2 = 3570,
+  tgox_l2_ext_aw_cnt_q3 = 3571,
+  tgox_l2_ext_snoop = 3572,
+  tgox_l2_ext_snoop_stall = 3573,
+  tgox_l2_ext_snoop_resp_clean = 3574,
+  tgox_l2_ext_snoop_resp_data = 3575,
+  tgox_l2_ext_snoop_internal = 3576,
+  ttrx_messages_sent = 3588,
+  ttrx_messages_received = 3589,
+  ttrx_gpu_active = 3590,
+  ttrx_irq_active = 3591,
+  ttrx_js0_jobs = 3592,
+  ttrx_js0_tasks = 3593,
+  ttrx_js0_active = 3594,
+  ttrx_js0_wait_flush = 3595,
+  ttrx_js0_wait_read = 3596,
+  ttrx_js0_wait_issue = 3597,
+  ttrx_js0_wait_depend = 3598,
+  ttrx_js0_wait_finish = 3599,
+  ttrx_js1_jobs = 3600,
+  ttrx_js1_tasks = 3601,
+  ttrx_js1_active = 3602,
+  ttrx_js1_wait_flush = 3603,
+  ttrx_js1_wait_read = 3604,
+  ttrx_js1_wait_issue = 3605,
+  ttrx_js1_wait_depend = 3606,
+  ttrx_js1_wait_finish = 3607,
+  ttrx_js2_jobs = 3608,
+  ttrx_js2_tasks = 3609,
+  ttrx_js2_active = 3610,
+  ttrx_js2_wait_flush = 3611,
+  ttrx_js2_wait_read = 3612,
+  ttrx_js2_wait_issue = 3613,
+  ttrx_js2_wait_depend = 3614,
+  ttrx_js2_wait_finish = 3615,
+  ttrx_cache_flush = 3647,
+  ttrx_tiler_active = 3652,
+  ttrx_jobs_processed = 3653,
+  ttrx_triangles = 3654,
+  ttrx_lines = 3655,
+  ttrx_points = 3656,
+  ttrx_front_facing = 3657,
+  ttrx_back_facing = 3658,
+  ttrx_prim_visible = 3659,
+  ttrx_prim_culled = 3660,
+  ttrx_prim_clipped = 3661,
+  ttrx_prim_sat_culled = 3662,
+  ttrx_bin_alloc_init = 3663,
+  ttrx_bin_alloc_overflow = 3664,
+  ttrx_bus_read = 3665,
+  ttrx_bus_write = 3667,
+  ttrx_loading_desc = 3668,
+  ttrx_idvs_pos_shad_req = 3669,
+  ttrx_idvs_pos_shad_wait = 3670,
+  ttrx_idvs_pos_shad_stall = 3671,
+  ttrx_idvs_pos_fifo_full = 3672,
+  ttrx_prefetch_stall = 3673,
+  ttrx_vcache_hit = 3674,
+  ttrx_vcache_miss = 3675,
+  ttrx_vcache_line_wait = 3676,
+  ttrx_vfetch_pos_read_wait = 3677,
+  ttrx_vfetch_vertex_wait = 3678,
+  ttrx_vfetch_stall = 3679,
+  ttrx_primassy_stall = 3680,
+  ttrx_bbox_gen_stall = 3681,
+  ttrx_idvs_vbu_hit = 3682,
+  ttrx_idvs_vbu_miss = 3683,
+  ttrx_idvs_vbu_line_deallocate = 3684,
+  ttrx_idvs_var_shad_req = 3685,
+  ttrx_idvs_var_shad_stall = 3686,
+  ttrx_binner_stall = 3687,
+  ttrx_iter_stall = 3688,
+  ttrx_compress_miss = 3689,
+  ttrx_compress_stall = 3690,
+  ttrx_pcache_hit = 3691,
+  ttrx_pcache_miss = 3692,
+  ttrx_pcache_miss_stall = 3693,
+  ttrx_pcache_evict_stall = 3694,
+  ttrx_pmgr_ptr_wr_stall = 3695,
+  ttrx_pmgr_ptr_rd_stall = 3696,
+  ttrx_pmgr_cmd_wr_stall = 3697,
+  ttrx_wrbuf_active = 3698,
+  ttrx_wrbuf_hit = 3699,
+  ttrx_wrbuf_miss = 3700,
+  ttrx_wrbuf_no_free_line_stall = 3701,
+  ttrx_wrbuf_no_axi_id_stall = 3702,
+  ttrx_wrbuf_axi_stall = 3703,
+  ttrx_utlb_trans = 3707,
+  ttrx_utlb_trans_hit = 3708,
+  ttrx_utlb_trans_stall = 3709,
+  ttrx_utlb_trans_miss_delay = 3710,
+  ttrx_utlb_mmu_req = 3711,
+  ttrx_frag_active = 3716,
+  ttrx_frag_primitives_out = 3717,
+  ttrx_frag_prim_rast = 3718,
+  ttrx_frag_fpk_active = 3719,
+  ttrx_frag_starving = 3720,
+  ttrx_frag_warps = 3721,
+  ttrx_frag_partial_quads_rast = 3722,
+  ttrx_frag_quads_rast = 3723,
+  ttrx_frag_quads_ezs_test = 3724,
+  ttrx_frag_quads_ezs_update = 3725,
+  ttrx_frag_quads_ezs_kill = 3726,
+  ttrx_frag_lzs_test = 3727,
+  ttrx_frag_lzs_kill = 3728,
+  ttrx_warp_reg_size_64 = 3729,
+  ttrx_frag_ptiles = 3730,
+  ttrx_frag_trans_elim = 3731,
+  ttrx_quad_fpk_killer = 3732,
+  ttrx_full_quad_warps = 3733,
+  ttrx_compute_active = 3734,
+  ttrx_compute_tasks = 3735,
+  ttrx_compute_warps = 3736,
+  ttrx_compute_starving = 3737,
+  ttrx_exec_core_active = 3738,
+  ttrx_exec_instr_fma = 3739,
+  ttrx_exec_instr_cvt = 3740,
+  ttrx_exec_instr_sfu = 3741,
+  ttrx_exec_instr_msg = 3742,
+  ttrx_exec_instr_diverged = 3743,
+  ttrx_exec_icache_miss = 3744,
+  ttrx_exec_starve_arith = 3745,
+  ttrx_call_blend_shader = 3746,
+  ttrx_tex_msgi_num_flits = 3747,
+  ttrx_tex_dfch_clk_stalled = 3748,
+  ttrx_tex_tfch_clk_stalled = 3749,
+  ttrx_tex_tfch_starved_pending_data_fetch = 3750,
+  ttrx_tex_filt_num_operations = 3751,
+  ttrx_tex_filt_num_fxr_operations = 3752,
+  ttrx_tex_filt_num_fst_operations = 3753,
+  ttrx_tex_msgo_num_msg = 3754,
+  ttrx_tex_msgo_num_flits = 3755,
+  ttrx_ls_mem_read_full = 3756,
+  ttrx_ls_mem_read_short = 3757,
+  ttrx_ls_mem_write_full = 3758,
+  ttrx_ls_mem_write_short = 3759,
+  ttrx_ls_mem_atomic = 3760,
+  ttrx_vary_instr = 3761,
+  ttrx_vary_slot_32 = 3762,
+  ttrx_vary_slot_16 = 3763,
+  ttrx_attr_instr = 3764,
+  ttrx_arith_instr_fp_mul = 3765,
+  ttrx_beats_rd_ftc = 3766,
+  ttrx_beats_rd_ftc_ext = 3767,
+  ttrx_beats_rd_lsc = 3768,
+  ttrx_beats_rd_lsc_ext = 3769,
+  ttrx_beats_rd_tex = 3770,
+  ttrx_beats_rd_tex_ext = 3771,
+  ttrx_beats_rd_other = 3772,
+  ttrx_beats_wr_lsc_other = 3773,
+  ttrx_beats_wr_tib = 3774,
+  ttrx_beats_wr_lsc_wb = 3775,
+  ttrx_mmu_requests = 3780,
+  ttrx_mmu_table_reads_l3 = 3781,
+  ttrx_mmu_table_reads_l2 = 3782,
+  ttrx_mmu_hit_l3 = 3783,
+  ttrx_mmu_hit_l2 = 3784,
+  ttrx_mmu_s2_requests = 3785,
+  ttrx_mmu_s2_table_reads_l3 = 3786,
+  ttrx_mmu_s2_table_reads_l2 = 3787,
+  ttrx_mmu_s2_hit_l3 = 3788,
+  ttrx_mmu_s2_hit_l2 = 3789,
+  ttrx_l2_rd_msg_in = 3792,
+  ttrx_l2_rd_msg_in_stall = 3793,
+  ttrx_l2_wr_msg_in = 3794,
+  ttrx_l2_wr_msg_in_stall = 3795,
+  ttrx_l2_snp_msg_in = 3796,
+  ttrx_l2_snp_msg_in_stall = 3797,
+  ttrx_l2_rd_msg_out = 3798,
+  ttrx_l2_rd_msg_out_stall = 3799,
+  ttrx_l2_wr_msg_out = 3800,
+  ttrx_l2_any_lookup = 3801,
+  ttrx_l2_read_lookup = 3802,
+  ttrx_l2_write_lookup = 3803,
+  ttrx_l2_ext_snoop_lookup = 3804,
+  ttrx_l2_ext_read = 3805,
+  ttrx_l2_ext_read_nosnp = 3806,
+  ttrx_l2_ext_read_unique = 3807,
+  ttrx_l2_ext_read_beats = 3808,
+  ttrx_l2_ext_ar_stall = 3809,
+  ttrx_l2_ext_ar_cnt_q1 = 3810,
+  ttrx_l2_ext_ar_cnt_q2 = 3811,
+  ttrx_l2_ext_ar_cnt_q3 = 3812,
+  ttrx_l2_ext_rresp_0_127 = 3813,
+  ttrx_l2_ext_rresp_128_191 = 3814,
+  ttrx_l2_ext_rresp_192_255 = 3815,
+  ttrx_l2_ext_rresp_256_319 = 3816,
+  ttrx_l2_ext_rresp_320_383 = 3817,
+  ttrx_l2_ext_write = 3818,
+  ttrx_l2_ext_write_nosnp_full = 3819,
+  ttrx_l2_ext_write_nosnp_ptl = 3820,
+  ttrx_l2_ext_write_snp_full = 3821,
+  ttrx_l2_ext_write_snp_ptl = 3822,
+  ttrx_l2_ext_write_beats = 3823,
+  ttrx_l2_ext_w_stall = 3824,
+  ttrx_l2_ext_aw_cnt_q1 = 3825,
+  ttrx_l2_ext_aw_cnt_q2 = 3826,
+  ttrx_l2_ext_aw_cnt_q3 = 3827,
+  ttrx_l2_ext_snoop = 3828,
+  ttrx_l2_ext_snoop_stall = 3829,
+  ttrx_l2_ext_snoop_resp_clean = 3830,
+  ttrx_l2_ext_snoop_resp_data = 3831,
+  ttrx_l2_ext_snoop_internal = 3832,
+  tnax_messages_sent = 3844,
+  tnax_messages_received = 3845,
+  tnax_gpu_active = 3846,
+  tnax_irq_active = 3847,
+  tnax_js0_jobs = 3848,
+  tnax_js0_tasks = 3849,
+  tnax_js0_active = 3850,
+  tnax_js0_wait_flush = 3851,
+  tnax_js0_wait_read = 3852,
+  tnax_js0_wait_issue = 3853,
+  tnax_js0_wait_depend = 3854,
+  tnax_js0_wait_finish = 3855,
+  tnax_js1_jobs = 3856,
+  tnax_js1_tasks = 3857,
+  tnax_js1_active = 3858,
+  tnax_js1_wait_flush = 3859,
+  tnax_js1_wait_read = 3860,
+  tnax_js1_wait_issue = 3861,
+  tnax_js1_wait_depend = 3862,
+  tnax_js1_wait_finish = 3863,
+  tnax_js2_jobs = 3864,
+  tnax_js2_tasks = 3865,
+  tnax_js2_active = 3866,
+  tnax_js2_wait_flush = 3867,
+  tnax_js2_wait_read = 3868,
+  tnax_js2_wait_issue = 3869,
+  tnax_js2_wait_depend = 3870,
+  tnax_js2_wait_finish = 3871,
+  tnax_cache_flush = 3903,
+  tnax_tiler_active = 3908,
+  tnax_jobs_processed = 3909,
+  tnax_triangles = 3910,
+  tnax_lines = 3911,
+  tnax_points = 3912,
+  tnax_front_facing = 3913,
+  tnax_back_facing = 3914,
+  tnax_prim_visible = 3915,
+  tnax_prim_culled = 3916,
+  tnax_prim_clipped = 3917,
+  tnax_prim_sat_culled = 3918,
+  tnax_bin_alloc_init = 3919,
+  tnax_bin_alloc_overflow = 3920,
+  tnax_bus_read = 3921,
+  tnax_bus_write = 3923,
+  tnax_loading_desc = 3924,
+  tnax_idvs_pos_shad_req = 3925,
+  tnax_idvs_pos_shad_wait = 3926,
+  tnax_idvs_pos_shad_stall = 3927,
+  tnax_idvs_pos_fifo_full = 3928,
+  tnax_prefetch_stall = 3929,
+  tnax_vcache_hit = 3930,
+  tnax_vcache_miss = 3931,
+  tnax_vcache_line_wait = 3932,
+  tnax_vfetch_pos_read_wait = 3933,
+  tnax_vfetch_vertex_wait = 3934,
+  tnax_vfetch_stall = 3935,
+  tnax_primassy_stall = 3936,
+  tnax_bbox_gen_stall = 3937,
+  tnax_idvs_vbu_hit = 3938,
+  tnax_idvs_vbu_miss = 3939,
+  tnax_idvs_vbu_line_deallocate = 3940,
+  tnax_idvs_var_shad_req = 3941,
+  tnax_idvs_var_shad_stall = 3942,
+  tnax_binner_stall = 3943,
+  tnax_iter_stall = 3944,
+  tnax_compress_miss = 3945,
+  tnax_compress_stall = 3946,
+  tnax_pcache_hit = 3947,
+  tnax_pcache_miss = 3948,
+  tnax_pcache_miss_stall = 3949,
+  tnax_pcache_evict_stall = 3950,
+  tnax_pmgr_ptr_wr_stall = 3951,
+  tnax_pmgr_ptr_rd_stall = 3952,
+  tnax_pmgr_cmd_wr_stall = 3953,
+  tnax_wrbuf_active = 3954,
+  tnax_wrbuf_hit = 3955,
+  tnax_wrbuf_miss = 3956,
+  tnax_wrbuf_no_free_line_stall = 3957,
+  tnax_wrbuf_no_axi_id_stall = 3958,
+  tnax_wrbuf_axi_stall = 3959,
+  tnax_utlb_trans = 3963,
+  tnax_utlb_trans_hit = 3964,
+  tnax_utlb_trans_stall = 3965,
+  tnax_utlb_trans_miss_delay = 3966,
+  tnax_utlb_mmu_req = 3967,
+  tnax_frag_active = 3972,
+  tnax_frag_primitives_out = 3973,
+  tnax_frag_prim_rast = 3974,
+  tnax_frag_fpk_active = 3975,
+  tnax_frag_starving = 3976,
+  tnax_frag_warps = 3977,
+  tnax_frag_partial_quads_rast = 3978,
+  tnax_frag_quads_rast = 3979,
+  tnax_frag_quads_ezs_test = 3980,
+  tnax_frag_quads_ezs_update = 3981,
+  tnax_frag_quads_ezs_kill = 3982,
+  tnax_frag_lzs_test = 3983,
+  tnax_frag_lzs_kill = 3984,
+  tnax_warp_reg_size_64 = 3985,
+  tnax_frag_ptiles = 3986,
+  tnax_frag_trans_elim = 3987,
+  tnax_quad_fpk_killer = 3988,
+  tnax_full_quad_warps = 3989,
+  tnax_compute_active = 3990,
+  tnax_compute_tasks = 3991,
+  tnax_compute_warps = 3992,
+  tnax_compute_starving = 3993,
+  tnax_exec_core_active = 3994,
+  tnax_exec_instr_fma = 3995,
+  tnax_exec_instr_cvt = 3996,
+  tnax_exec_instr_sfu = 3997,
+  tnax_exec_instr_msg = 3998,
+  tnax_exec_instr_diverged = 3999,
+  tnax_exec_icache_miss = 4000,
+  tnax_exec_starve_arith = 4001,
+  tnax_call_blend_shader = 4002,
+  tnax_tex_msgi_num_flits = 4003,
+  tnax_tex_dfch_clk_stalled = 4004,
+  tnax_tex_tfch_clk_stalled = 4005,
+  tnax_tex_tfch_starved_pending_data_fetch = 4006,
+  tnax_tex_filt_num_operations = 4007,
+  tnax_tex_filt_num_fxr_operations = 4008,
+  tnax_tex_filt_num_fst_operations = 4009,
+  tnax_tex_msgo_num_msg = 4010,
+  tnax_tex_msgo_num_flits = 4011,
+  tnax_ls_mem_read_full = 4012,
+  tnax_ls_mem_read_short = 4013,
+  tnax_ls_mem_write_full = 4014,
+  tnax_ls_mem_write_short = 4015,
+  tnax_ls_mem_atomic = 4016,
+  tnax_vary_instr = 4017,
+  tnax_vary_slot_32 = 4018,
+  tnax_vary_slot_16 = 4019,
+  tnax_attr_instr = 4020,
+  tnax_arith_instr_fp_mul = 4021,
+  tnax_beats_rd_ftc = 4022,
+  tnax_beats_rd_ftc_ext = 4023,
+  tnax_beats_rd_lsc = 4024,
+  tnax_beats_rd_lsc_ext = 4025,
+  tnax_beats_rd_tex = 4026,
+  tnax_beats_rd_tex_ext = 4027,
+  tnax_beats_rd_other = 4028,
+  tnax_beats_wr_lsc_other = 4029,
+  tnax_beats_wr_tib = 4030,
+  tnax_beats_wr_lsc_wb = 4031,
+  tnax_mmu_requests = 4036,
+  tnax_mmu_table_reads_l3 = 4037,
+  tnax_mmu_table_reads_l2 = 4038,
+  tnax_mmu_hit_l3 = 4039,
+  tnax_mmu_hit_l2 = 4040,
+  tnax_mmu_s2_requests = 4041,
+  tnax_mmu_s2_table_reads_l3 = 4042,
+  tnax_mmu_s2_table_reads_l2 = 4043,
+  tnax_mmu_s2_hit_l3 = 4044,
+  tnax_mmu_s2_hit_l2 = 4045,
+  tnax_l2_rd_msg_in = 4048,
+  tnax_l2_rd_msg_in_stall = 4049,
+  tnax_l2_wr_msg_in = 4050,
+  tnax_l2_wr_msg_in_stall = 4051,
+  tnax_l2_snp_msg_in = 4052,
+  tnax_l2_snp_msg_in_stall = 4053,
+  tnax_l2_rd_msg_out = 4054,
+  tnax_l2_rd_msg_out_stall = 4055,
+  tnax_l2_wr_msg_out = 4056,
+  tnax_l2_any_lookup = 4057,
+  tnax_l2_read_lookup = 4058,
+  tnax_l2_write_lookup = 4059,
+  tnax_l2_ext_snoop_lookup = 4060,
+  tnax_l2_ext_read = 4061,
+  tnax_l2_ext_read_nosnp = 4062,
+  tnax_l2_ext_read_unique = 4063,
+  tnax_l2_ext_read_beats = 4064,
+  tnax_l2_ext_ar_stall = 4065,
+  tnax_l2_ext_ar_cnt_q1 = 4066,
+  tnax_l2_ext_ar_cnt_q2 = 4067,
+  tnax_l2_ext_ar_cnt_q3 = 4068,
+  tnax_l2_ext_rresp_0_127 = 4069,
+  tnax_l2_ext_rresp_128_191 = 4070,
+  tnax_l2_ext_rresp_192_255 = 4071,
+  tnax_l2_ext_rresp_256_319 = 4072,
+  tnax_l2_ext_rresp_320_383 = 4073,
+  tnax_l2_ext_write = 4074,
+  tnax_l2_ext_write_nosnp_full = 4075,
+  tnax_l2_ext_write_nosnp_ptl = 4076,
+  tnax_l2_ext_write_snp_full = 4077,
+  tnax_l2_ext_write_snp_ptl = 4078,
+  tnax_l2_ext_write_beats = 4079,
+  tnax_l2_ext_w_stall = 4080,
+  tnax_l2_ext_aw_cnt_q1 = 4081,
+  tnax_l2_ext_aw_cnt_q2 = 4082,
+  tnax_l2_ext_aw_cnt_q3 = 4083,
+  tnax_l2_ext_snoop = 4084,
+  tnax_l2_ext_snoop_stall = 4085,
+  tnax_l2_ext_snoop_resp_clean = 4086,
+  tnax_l2_ext_snoop_resp_data = 4087,
+  tnax_l2_ext_snoop_internal = 4088
+} MaliGpuCounter;
+
+struct mali_counter_values {
+  MaliGpuCounter counter;
+  uint32_t* values;
+  size_t num_values;
+};
+
+struct mali_counter_response {
+  struct mali_counter_values* counter_values;
+  size_t num_counters;
+};
+
+void initialize_mali_perf_reader();
+struct mali_counter_response read_perf_metrics(MaliGpuCounter* counters,
+                                               size_t num_counters);
+void free_counters(struct mali_counter_response counters);
+void cleanup_mali_perf_reader();
+
+#endif  // __MALI_GPU_PERF_METRICS_H__
diff --git a/mali/mali_gpu_props.c b/mali/mali_gpu_props.c
new file mode 100644
index 0000000..a3190c9
--- /dev/null
+++ b/mali/mali_gpu_props.c
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2022 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "mali/mali_gpu_props.h"
+
+#include <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <unistd.h>
+
+#include "logging.h"
+#include "mali/mali_ioctl.h"
+
+#define PROPS_BUFFER_SIZE 4096
+char props_buffer_cached = 0;
+uint8_t props_buffer[PROPS_BUFFER_SIZE];
+
+uint64_t get_cached_gpu_prop(MaliGpuProperty prop) {
+  int i = 0;
+  uint64_t ret;
+  while (i + 12 < PROPS_BUFFER_SIZE) {
+    uint32_t key = *(uint32_t*)(props_buffer + i);
+    if (!key)
+      break;
+
+    i += 4;
+    int size_type = key & 0x3;
+    int key_type = key >> 2;
+
+    switch (size_type) {
+      case 0:
+        ret = *(uint8_t*)(props_buffer + i);
+        i += 1;
+        break;
+      case 1:
+        ret = *(uint16_t*)(props_buffer + i);
+        i += 2;
+        break;
+      case 2:
+        ret = *(uint32_t*)(props_buffer + i);
+        i += 4;
+        break;
+      case 3:
+        ret = *(uint64_t*)(props_buffer + i);
+        i += 8;
+        break;
+      default:
+        LOG_ERROR(
+            "Error: GPU properties buffer contains malformed key at index "
+            "%d.\n",
+            i - 4);
+        return -1;
+    }
+
+    if (key_type == prop)
+      return ret;
+  }
+
+  LOG_ERROR("Error: GPU property %d not found.\n", prop);
+  return -1;
+}
+
+void get_gpu_property_buffer() {
+  int gpufd = open(kGpuDevice, O_RDWR | O_CLOEXEC);
+  if (gpufd < 0)
+    LOG_FATAL("Error opening GPU device! %s\n", strerror(errno));
+
+  // Note that even though we don't strictly speaking need this information for
+  // querying GPU properties, the GPU properties IOCTL will fail unless we check
+  // the version and set the flags.
+  struct kbase_ioctl_version_check version_check;
+  if (ioctl(gpufd, KBASE_IOCTL_VERSION_CHECK, &version_check) < 0)
+    LOG_FATAL("Error checking GPU version! %s\n", strerror(errno));
+  assert(version_check.major >= SUPPORTED_MAJOR_VERSION);
+  assert(version_check.minor >= SUPPORTED_MINOR_VERSION);
+
+  struct kbase_ioctl_set_flags init_flags;
+  init_flags.create_flags = BASE_CONTEXT_SYSTEM_MONITOR_SUBMIT_DISABLED;
+  if (ioctl(gpufd, KBASE_IOCTL_SET_FLAGS, &init_flags) < 0)
+    LOG_FATAL("Error initializing GPU context! %s\n", strerror(errno));
+
+  struct kbase_ioctl_get_gpuprops gpu_props_req;
+  gpu_props_req.buffer_ptr = (uint64_t)props_buffer;
+  gpu_props_req.size = PROPS_BUFFER_SIZE;
+  gpu_props_req.flags = 0;
+  if (ioctl(gpufd, KBASE_IOCTL_GET_GPUPROPS, &gpu_props_req) < 0)
+    LOG_FATAL("Error getting GPU properties! %s\n", strerror(errno));
+
+  props_buffer_cached = 1;
+
+  close(gpufd);
+}
+
+uint64_t get_gpu_prop(MaliGpuProperty prop) {
+  if (!props_buffer_cached)
+    get_gpu_property_buffer();
+
+  return get_cached_gpu_prop(prop);
+}
diff --git a/mali/mali_gpu_props.h b/mali/mali_gpu_props.h
new file mode 100644
index 0000000..eb3fd06
--- /dev/null
+++ b/mali/mali_gpu_props.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2022 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <stdint.h>
+
+#ifndef __MALI_GPU_PROPS_H__
+#define __MALI_GPU_PROPS_H__
+
+// Constant values found in
+// third_party/kernel/next/drivers/gpu/arm/valhall/mali_kbase_ioctl.h
+typedef enum {
+  gpu_prop_product_id = 1,
+  gpu_prop_version_status = 2,
+  gpu_prop_minor_revision = 3,
+  gpu_prop_major_revision = 4,
+  gpu_prop_freq_max_khz = 6,
+  gpu_prop_log2_program_counter_size = 8,
+  gpu_prop_texture_features_0 = 9,
+  gpu_prop_texture_features_1 = 10,
+  gpu_prop_texture_features_2 = 11,
+  gpu_prop_available_memory_size = 12,
+  gpu_prop_log2_l2_line_size = 13,
+  gpu_prop_log2_l2_cache_size = 14,
+  gpu_prop_num_l2 = 15,
+  gpu_prop_tiler_bin_size_bytes = 16,
+  gpu_prop_tiler_max_active_levels = 17,
+  gpu_prop_max_threads = 18,
+  gpu_prop_max_workgroup_size = 19,
+  gpu_prop_max_barrier_size = 20,
+  gpu_prop_max_registers = 21,
+  gpu_prop_max_task_queue = 22,
+  gpu_prop_max_thread_group_split = 23,
+  gpu_prop_impl_tech = 24,
+  gpu_prop_shader_present_mask = 25,
+  gpu_prop_tiler_present = 26,
+  gpu_prop_l2_present = 27,
+  gpu_prop_stack_present = 28,
+  gpu_prop_l2_features = 29,
+  gpu_prop_core_features = 30,
+  gpu_prop_mem_features = 31,
+  gpu_prop_mmu_features = 32,
+  gpu_prop_as_present = 33,
+  gpu_prop_js_present = 34,
+  gpu_prop_js_features_0 = 35,
+  gpu_prop_js_features_1 = 36,
+  gpu_prop_js_features_2 = 37,
+  gpu_prop_js_features_3 = 38,
+  gpu_prop_js_features_4 = 39,
+  gpu_prop_js_features_5 = 40,
+  gpu_prop_js_features_6 = 41,
+  gpu_prop_js_features_7 = 42,
+  gpu_prop_js_features_8 = 43,
+  gpu_prop_js_features_9 = 44,
+  gpu_prop_js_features_10 = 45,
+  gpu_prop_js_features_11 = 46,
+  gpu_prop_js_features_12 = 47,
+  gpu_prop_js_features_13 = 48,
+  gpu_prop_js_features_14 = 49,
+  gpu_prop_js_features_15 = 50,
+  gpu_prop_tiler_features = 51,
+  gpu_prop_raw_texture_features_0 = 52,
+  gpu_prop_raw_texture_features_1 = 53,
+  gpu_prop_raw_texture_features_2 = 54,
+  gpu_prop_gpu_id = 55,
+  gpu_prop_raw_max_threads = 56,
+  gpu_prop_raw_max_workgroupd_size = 57,
+  gpu_prop_raw_max_barrier_size = 58,
+  gpu_prop_thread_features = 59,
+  gpu_prop_coherency_mode = 60,
+  gpu_prop_num_coherency_groups = 61,
+  gpu_prop_num_core_coherency_groups = 62,
+  gpu_prop_coherency = 63,
+  gpu_prop_coherency_group_0 = 64,
+  gpu_prop_coherency_group_1 = 65,
+  gpu_prop_coherency_group_2 = 66,
+  gpu_prop_coherency_group_3 = 67,
+  gpu_prop_coherency_group_4 = 68,
+  gpu_prop_coherency_group_5 = 69,
+  gpu_prop_coherency_group_6 = 70,
+  gpu_prop_coherency_group_7 = 71,
+  gpu_prop_coherency_group_8 = 72,
+  gpu_prop_coherency_group_9 = 73,
+  gpu_prop_coherency_group_10 = 74,
+  gpu_prop_coherency_group_11 = 75,
+  gpu_prop_coherency_group_12 = 76,
+  gpu_prop_coherency_group_13 = 77,
+  gpu_prop_coherency_group_14 = 78,
+  gpu_prop_coherency_group_15 = 79,
+  gpu_prop_texture_features_3 = 80,
+  gpu_prop_raw_texture_features_3 = 81,
+  gpu_prop_num_exec_engines = 82,
+  gpu_prop_raw_thread_tls_alloc = 83,
+  gpu_prop_tls_alloc = 84
+} MaliGpuProperty;
+
+uint64_t get_gpu_prop(MaliGpuProperty prop);
+
+#endif  // __MALI_GPU_PROPS_H__
diff --git a/mali/mali_ioctl.h b/mali/mali_ioctl.h
new file mode 100644
index 0000000..3546387
--- /dev/null
+++ b/mali/mali_ioctl.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2022 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <asm-generic/ioctl.h>
+#include <stdint.h>
+
+#ifndef __MALI_IOCTL_H__
+#define __MALI_IOCTL_H__
+
+static const char* kGpuDevice = "/dev/mali0";
+
+// Definitions courtesy of
+// third_party/kernel/v5.10/drivers/gpu/arm/valhall/mali_kbase_ioctl.h
+
+#define KBASE_IOCTL_TYPE 0x80
+#define KBASE_IOCTL_GET_GPUPROPS \
+  _IOW(KBASE_IOCTL_TYPE, 3, struct kbase_ioctl_get_gpuprops)
+#define KBASE_IOCTL_SET_FLAGS \
+  _IOW(KBASE_IOCTL_TYPE, 1, struct kbase_ioctl_set_flags)
+#define KBASE_IOCTL_VERSION_CHECK \
+  _IOWR(KBASE_IOCTL_TYPE, 0, struct kbase_ioctl_version_check)
+#define KBASE_IOCTL_HWCNT_READER_SETUP \
+  _IOW(KBASE_IOCTL_TYPE, 8, struct kbase_ioctl_hwcnt_reader_setup)
+
+#define BASE_CONTEXT_SYSTEM_MONITOR_SUBMIT_DISABLED ((uint32_t)1 << 1)
+
+struct __attribute__((packed)) kbase_ioctl_get_gpuprops {
+  uint64_t buffer_ptr;
+  uint32_t size;
+  uint32_t flags;
+};
+
+struct __attribute__((packed)) kbase_ioctl_set_flags {
+  uint32_t create_flags;
+};
+
+struct __attribute__((packed)) kbase_ioctl_version_check {
+  uint16_t major;
+  uint16_t minor;
+};
+
+struct __attribute__((packed)) kbase_ioctl_hwcnt_reader_setup {
+  uint32_t num_buffers;
+  uint32_t job_manager_mask;
+  uint32_t shader_mask;
+  uint32_t tiler_mask;
+  uint32_t mmu_l2_mask;
+};
+
+// Definitions courtesy of
+// third_party/kernel/v5.10/drivers/gpu/arm/valhall/mali_kbase_hwcnt_reader.h
+
+#define KBASE_HWCNT_READER 0xBE
+#define KBASE_HWCNT_READER_GET_HWVER _IOR(KBASE_HWCNT_READER, 0x00, uint32_t)
+#define KBASE_HWCNT_READER_GET_BUFFER_SIZE \
+  _IOR(KBASE_HWCNT_READER, 0x01, uint32_t)
+#define KBASE_HWCNT_READER_DUMP _IOW(KBASE_HWCNT_READER, 0x10, uint32_t)
+#define KBASE_HWCNT_READER_CLEAR _IOW(KBASE_HWCNT_READER, 0x11, uint32_t)
+#define KBASE_HWCNT_READER_GET_BUFFER \
+  _IOR(KBASE_HWCNT_READER, 0x20, struct kbase_hwcnt_reader_metadata)
+#define KBASE_HWCNT_READER_PUT_BUFFER \
+  _IOW(KBASE_HWCNT_READER, 0x21, struct kbase_hwcnt_reader_metadata)
+#define KBASE_HWCNT_READER_SET_INTERVAL _IOW(KBASE_HWCNT_READER, 0x30, uint32_t)
+#define KBASE_HWCNT_READER_ENABLE_EVENT _IOW(KBASE_HWCNT_READER, 0x40, uint32_t)
+#define KBASE_HWCNT_READER_DISABLE_EVENT \
+  _IOW(KBASE_HWCNT_READER, 0x41, uint32_t)
+#define KBASE_HWCNT_READER_GET_API_VERSION \
+  _IOW(KBASE_HWCNT_READER, 0xFF, uint32_t)
+
+struct kbase_hwcnt_reader_metadata {
+  uint64_t timestamp;
+  uint32_t event_id;
+  uint32_t buffer_idx;
+};
+
+#define SUPPORTED_MAJOR_VERSION 11
+#define SUPPORTED_MINOR_VERSION 21
+#define SUPPORTED_API_VERSION 1
+#define SUPPORTED_HW_VERSION 5
+
+#endif  // __MALI_IOCTL_H__
diff --git a/mali/module.mk b/mali/module.mk
new file mode 100644
index 0000000..31ea7bb
--- /dev/null
+++ b/mali/module.mk
@@ -0,0 +1,11 @@
+# Copyright 2022 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+include common.mk
+
+CFLAGS += -std=gnu99 -I$(SRC)
+
+CC_STATIC_LIBRARY(libmali.pic.a): \
+ mali/mali_gpu_props.o \
+ mali/mali_gpu_perf_metrics.o
diff --git a/mali_stats.c b/mali_stats.c
new file mode 100644
index 0000000..3f2863b
--- /dev/null
+++ b/mali_stats.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2022 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <assert.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "mali/mali_gpu_perf_metrics.h"
+#include "mali/mali_gpu_props.h"
+
+int main(int argc, char** argv) {
+  initialize_mali_perf_reader();
+
+  MaliGpuCounter counters[] = {tnax_gpu_active, tnax_tiler_active,
+                               tnax_compute_active, tnax_mmu_requests};
+  struct mali_counter_response response;
+  response = read_perf_metrics(counters, 4);
+
+  assert(response.num_counters == 4);
+
+  printf("Counter TNAx GPU_ACTIVE value(s):\n");
+  for (int j = 0; j < response.counter_values[0].num_values; j++) {
+    printf("%d\n", response.counter_values[0].values[j]);
+  }
+
+  printf("\n");
+  printf("Counter TNAx TILER_ACTIVE value(s):\n");
+  for (int j = 0; j < response.counter_values[1].num_values; j++) {
+    printf("%d\n", response.counter_values[1].values[j]);
+  }
+
+  printf("\n");
+  printf("Counter TNAx COMPUTE_ACTIVE value(s):\n");
+  for (int j = 0; j < response.counter_values[2].num_values; j++) {
+    printf("%d\n", response.counter_values[2].values[j]);
+  }
+
+  printf("\n");
+  printf("Counter TNAx MMU_REQUESTS value(s):\n");
+  for (int j = 0; j < response.counter_values[3].num_values; j++) {
+    printf("%d\n", response.counter_values[3].values[j]);
+  }
+
+  free_counters(response);
+
+  cleanup_mali_perf_reader();
+}
diff --git a/v4l2_macros.h b/v4l2_macros.h
index dd18698..6acb491 100644
--- a/v4l2_macros.h
+++ b/v4l2_macros.h
@@ -8,39 +8,11 @@
 #define V4L2_MACROS_H
 
 #include <linux/videodev2.h>
-#include <stdio.h>
-#include <stdlib.h>
+
+#include "logging.h"
 
 #define FOURCC_SIZE 4
 
-enum logging_levels {
-  kLoggingDebug = -1,
-  kLoggingInfo = 0,
-  kLoggingError,
-  kLoggingFatal,
-  kLoggingLevelMax
-};
-
-#define DEFAULT_LOG_LEVEL kLoggingInfo
-
-#define LOG(level, stream, fmt, ...)       \
-  do {                                     \
-    if (level >= DEFAULT_LOG_LEVEL) {      \
-      fprintf(stream, fmt, ##__VA_ARGS__); \
-      fprintf(stream, "\n");               \
-      fflush(stream);                      \
-    }                                      \
-  } while (0)
-
-#define LOG_DEBUG(fmt, ...) LOG(kLoggingDebug, stderr, fmt, ##__VA_ARGS__)
-#define LOG_INFO(fmt, ...) LOG(kLoggingInfo, stderr, fmt, ##__VA_ARGS__)
-#define LOG_ERROR(fmt, ...) LOG(kLoggingError, stderr, fmt, ##__VA_ARGS__)
-#define LOG_FATAL(fmt, ...)                         \
-  do {                                              \
-    LOG(kLoggingFatal, stderr, fmt, ##__VA_ARGS__); \
-    exit(EXIT_FAILURE);                             \
-  } while (0)
-
 // TODO(frkoenig):
 // P010 had not landed as an official V4L2 format yet. Once it has remove this.
 #ifndef V4L2_PIX_FMT_P010