/*
 *
 * (C) COPYRIGHT 2016-2017 ARM Limited. All rights reserved.
 *
 * This program is free software and is provided to you under the terms of the
 * GNU General Public License version 2 as published by the Free Software
 * Foundation, and any use by you of this program is subject to the terms
 * of such GNU licence.
 *
 * A copy of the licence is included with the program, and can also be obtained
 * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA  02110-1301, USA.
 *
 */



/*
 * This header was autogenerated, it should not be edited.
 */

#ifndef _KBASE_GATOR_HWCNT_NAMES_TKAX_H_
#define _KBASE_GATOR_HWCNT_NAMES_TKAX_H_

static const char * const hardware_counters_mali_tKAx[] = {
	/* Performance counters for the Job Manager */
	"",
	"",
	"",
	"",
	"TKAx_MESSAGES_SENT",
	"TKAx_MESSAGES_RECEIVED",
	"TKAx_GPU_ACTIVE",
	"TKAx_IRQ_ACTIVE",
	"TKAx_JS0_JOBS",
	"TKAx_JS0_TASKS",
	"TKAx_JS0_ACTIVE",
	"",
	"TKAx_JS0_WAIT_READ",
	"TKAx_JS0_WAIT_ISSUE",
	"TKAx_JS0_WAIT_DEPEND",
	"TKAx_JS0_WAIT_FINISH",
	"TKAx_JS1_JOBS",
	"TKAx_JS1_TASKS",
	"TKAx_JS1_ACTIVE",
	"",
	"TKAx_JS1_WAIT_READ",
	"TKAx_JS1_WAIT_ISSUE",
	"TKAx_JS1_WAIT_DEPEND",
	"TKAx_JS1_WAIT_FINISH",
	"TKAx_JS2_JOBS",
	"TKAx_JS2_TASKS",
	"TKAx_JS2_ACTIVE",
	"",
	"TKAx_JS2_WAIT_READ",
	"TKAx_JS2_WAIT_ISSUE",
	"TKAx_JS2_WAIT_DEPEND",
	"TKAx_JS2_WAIT_FINISH",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",

	/* Performance counters for the Tiler */
	"",
	"",
	"",
	"",
	"TKAx_TILER_ACTIVE",
	"TKAx_JOBS_PROCESSED",
	"TKAx_TRIANGLES",
	"TKAx_LINES",
	"TKAx_POINTS",
	"TKAx_FRONT_FACING",
	"TKAx_BACK_FACING",
	"TKAx_PRIM_VISIBLE",
	"TKAx_PRIM_CULLED",
	"TKAx_PRIM_CLIPPED",
	"TKAx_PRIM_SAT_CULLED",
	"TKAx_BIN_ALLOC_INIT",
	"TKAx_BIN_ALLOC_OVERFLOW",
	"TKAx_BUS_READ",
	"",
	"TKAx_BUS_WRITE",
	"TKAx_LOADING_DESC",
	"TKAx_IDVS_POS_SHAD_REQ",
	"TKAx_IDVS_POS_SHAD_WAIT",
	"TKAx_IDVS_POS_SHAD_STALL",
	"TKAx_IDVS_POS_FIFO_FULL",
	"TKAx_PREFETCH_STALL",
	"TKAx_VCACHE_HIT",
	"TKAx_VCACHE_MISS",
	"TKAx_VCACHE_LINE_WAIT",
	"TKAx_VFETCH_POS_READ_WAIT",
	"TKAx_VFETCH_VERTEX_WAIT",
	"TKAx_VFETCH_STALL",
	"TKAx_PRIMASSY_STALL",
	"TKAx_BBOX_GEN_STALL",
	"TKAx_IDVS_VBU_HIT",
	"TKAx_IDVS_VBU_MISS",
	"TKAx_IDVS_VBU_LINE_DEALLOCATE",
	"TKAx_IDVS_VAR_SHAD_REQ",
	"TKAx_IDVS_VAR_SHAD_STALL",
	"TKAx_BINNER_STALL",
	"TKAx_ITER_STALL",
	"TKAx_COMPRESS_MISS",
	"TKAx_COMPRESS_STALL",
	"TKAx_PCACHE_HIT",
	"TKAx_PCACHE_MISS",
	"TKAx_PCACHE_MISS_STALL",
	"TKAx_PCACHE_EVICT_STALL",
	"TKAx_PMGR_PTR_WR_STALL",
	"TKAx_PMGR_PTR_RD_STALL",
	"TKAx_PMGR_CMD_WR_STALL",
	"TKAx_WRBUF_ACTIVE",
	"TKAx_WRBUF_HIT",
	"TKAx_WRBUF_MISS",
	"TKAx_WRBUF_NO_FREE_LINE_STALL",
	"TKAx_WRBUF_NO_AXI_ID_STALL",
	"TKAx_WRBUF_AXI_STALL",
	"",
	"",
	"",
	"TKAx_UTLB_TRANS",
	"TKAx_UTLB_TRANS_HIT",
	"TKAx_UTLB_TRANS_STALL",
	"TKAx_UTLB_TRANS_MISS_DELAY",
	"TKAx_UTLB_MMU_REQ",

	/* Performance counters for the Shader Core */
	"",
	"",
	"",
	"",
	"TKAx_FRAG_ACTIVE",
	"TKAx_FRAG_PRIMITIVES",
	"TKAx_FRAG_PRIM_RAST",
	"TKAx_FRAG_FPK_ACTIVE",
	"TKAx_FRAG_STARVING",
	"TKAx_FRAG_WARPS",
	"TKAx_FRAG_PARTIAL_WARPS",
	"TKAx_FRAG_QUADS_RAST",
	"TKAx_FRAG_QUADS_EZS_TEST",
	"TKAx_FRAG_QUADS_EZS_UPDATE",
	"TKAx_FRAG_QUADS_EZS_KILL",
	"TKAx_FRAG_LZS_TEST",
	"TKAx_FRAG_LZS_KILL",
	"",
	"TKAx_FRAG_PTILES",
	"TKAx_FRAG_TRANS_ELIM",
	"TKAx_QUAD_FPK_KILLER",
	"",
	"TKAx_COMPUTE_ACTIVE",
	"TKAx_COMPUTE_TASKS",
	"TKAx_COMPUTE_WARPS",
	"TKAx_COMPUTE_STARVING",
	"TKAx_EXEC_CORE_ACTIVE",
	"TKAx_EXEC_ACTIVE",
	"TKAx_EXEC_INSTR_COUNT",
	"TKAx_EXEC_INSTR_DIVERGED",
	"TKAx_EXEC_INSTR_STARVING",
	"TKAx_ARITH_INSTR_SINGLE_FMA",
	"TKAx_ARITH_INSTR_DOUBLE",
	"TKAx_ARITH_INSTR_MSG",
	"TKAx_ARITH_INSTR_MSG_ONLY",
	"TKAx_TEX_MSGI_NUM_QUADS",
	"TKAx_TEX_DFCH_NUM_PASSES",
	"TKAx_TEX_DFCH_NUM_PASSES_MISS",
	"TKAx_TEX_DFCH_NUM_PASSES_MIP_MAP",
	"TKAx_TEX_TIDX_NUM_SPLIT_MIP_MAP",
	"TKAx_TEX_TFCH_NUM_LINES_FETCHED",
	"TKAx_TEX_TFCH_NUM_LINES_FETCHED_BLOCK",
	"TKAx_TEX_TFCH_NUM_OPERATIONS",
	"TKAx_TEX_FILT_NUM_OPERATIONS",
	"TKAx_LS_MEM_READ_FULL",
	"TKAx_LS_MEM_READ_SHORT",
	"TKAx_LS_MEM_WRITE_FULL",
	"TKAx_LS_MEM_WRITE_SHORT",
	"TKAx_LS_MEM_ATOMIC",
	"TKAx_VARY_INSTR",
	"TKAx_VARY_SLOT_32",
	"TKAx_VARY_SLOT_16",
	"TKAx_ATTR_INSTR",
	"TKAx_ARITH_INSTR_FP_MUL",
	"TKAx_BEATS_RD_FTC",
	"TKAx_BEATS_RD_FTC_EXT",
	"TKAx_BEATS_RD_LSC",
	"TKAx_BEATS_RD_LSC_EXT",
	"TKAx_BEATS_RD_TEX",
	"TKAx_BEATS_RD_TEX_EXT",
	"TKAx_BEATS_RD_OTHER",
	"TKAx_BEATS_WR_LSC_WB",
	"TKAx_BEATS_WR_TIB",
	"TKAx_BEATS_WR_LSC_OTHER",

	/* Performance counters for the Memory System */
	"",
	"",
	"",
	"",
	"TKAx_MMU_REQUESTS",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"TKAx_L2_RD_MSG_IN",
	"TKAx_L2_RD_MSG_IN_STALL",
	"TKAx_L2_WR_MSG_IN",
	"TKAx_L2_WR_MSG_IN_STALL",
	"TKAx_L2_SNP_MSG_IN",
	"TKAx_L2_SNP_MSG_IN_STALL",
	"TKAx_L2_RD_MSG_OUT",
	"TKAx_L2_RD_MSG_OUT_STALL",
	"TKAx_L2_WR_MSG_OUT",
	"TKAx_L2_ANY_LOOKUP",
	"TKAx_L2_READ_LOOKUP",
	"TKAx_L2_WRITE_LOOKUP",
	"TKAx_L2_EXT_SNOOP_LOOKUP",
	"TKAx_L2_EXT_READ",
	"TKAx_L2_EXT_READ_NOSNP",
	"TKAx_L2_EXT_READ_UNIQUE",
	"TKAx_L2_EXT_READ_BEATS",
	"TKAx_L2_EXT_AR_STALL",
	"TKAx_L2_EXT_AR_CNT_Q1",
	"TKAx_L2_EXT_AR_CNT_Q2",
	"TKAx_L2_EXT_AR_CNT_Q3",
	"TKAx_L2_EXT_RRESP_0_127",
	"TKAx_L2_EXT_RRESP_128_191",
	"TKAx_L2_EXT_RRESP_192_255",
	"TKAx_L2_EXT_RRESP_256_319",
	"TKAx_L2_EXT_RRESP_320_383",
	"TKAx_L2_EXT_WRITE",
	"TKAx_L2_EXT_WRITE_NOSNP_FULL",
	"TKAx_L2_EXT_WRITE_NOSNP_PTL",
	"TKAx_L2_EXT_WRITE_SNP_FULL",
	"TKAx_L2_EXT_WRITE_SNP_PTL",
	"TKAx_L2_EXT_WRITE_BEATS",
	"TKAx_L2_EXT_W_STALL",
	"TKAx_L2_EXT_AW_CNT_Q1",
	"TKAx_L2_EXT_AW_CNT_Q2",
	"TKAx_L2_EXT_AW_CNT_Q3",
	"TKAx_L2_EXT_SNOOP",
	"TKAx_L2_EXT_SNOOP_STALL",
	"TKAx_L2_EXT_SNOOP_RESP_CLEAN",
	"TKAx_L2_EXT_SNOOP_RESP_DATA",
	"TKAx_L2_EXT_SNOOP_INTERNAL",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
};

#endif /* _KBASE_GATOR_HWCNT_NAMES_TKAX_H_ */
