blob: cbcb0e788e50519db36c9eb73158683f88e2f7d8 [file] [log] [blame]
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001/*
Alex Gildayc357c472018-03-21 13:54:09 +00002 * Copyright (c) 2017-2018 ARM Limited.
Moritz Pflanzer45634b42017-08-30 12:48:18 +01003 *
4 * SPDX-License-Identifier: MIT
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to
8 * deal in the Software without restriction, including without limitation the
9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in all
14 * copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
23 */
24#ifndef ARM_COMPUTE_TEST_HWC_NAMES
25#define ARM_COMPUTE_TEST_HWC_NAMES
26
Alex Gildayc357c472018-03-21 13:54:09 +000027#ifndef DOXYGEN_SKIP_THIS
28
Moritz Pflanzer45634b42017-08-30 12:48:18 +010029namespace mali_userspace
30{
Anthony Barbier88b8d8c2017-12-22 15:45:00 +000031enum MaliCounterBlockName
32{
33 MALI_NAME_BLOCK_JM = 0,
34 MALI_NAME_BLOCK_TILER = 1,
35 MALI_NAME_BLOCK_SHADER = 2,
36 MALI_NAME_BLOCK_MMU = 3
37};
Moritz Pflanzer45634b42017-08-30 12:48:18 +010038
Anthony Barbier88b8d8c2017-12-22 15:45:00 +000039enum
40{
41 MALI_NAME_BLOCK_SIZE = 64
42};
Moritz Pflanzer45634b42017-08-30 12:48:18 +010043
Anthony Barbier88b8d8c2017-12-22 15:45:00 +000044/*
Moritz Pflanzer45634b42017-08-30 12:48:18 +010045 * "Short names" for hardware counters used by Streamline. Counters names are
46 * stored in accordance with their memory layout in the binary counter block
47 * emitted by the Mali GPU. Each "master" in the GPU emits a fixed-size block
48 * of 64 counters, and each GPU implements the same set of "masters" although
49 * the counters each master exposes within its block of 64 may vary.
50 *
51 * Counters which are an empty string are simply "holes" in the counter memory
52 * where no counter exists.
53 */
54
Anthony Barbier88b8d8c2017-12-22 15:45:00 +000055static const char *const hardware_counters_mali_t60x[] =
56{
57 /* Job Manager */
58 "",
59 "",
60 "",
61 "",
62 "T60x_MESSAGES_SENT",
63 "T60x_MESSAGES_RECEIVED",
64 "T60x_GPU_ACTIVE",
65 "T60x_IRQ_ACTIVE",
66 "T60x_JS0_JOBS",
67 "T60x_JS0_TASKS",
68 "T60x_JS0_ACTIVE",
69 "",
70 "T60x_JS0_WAIT_READ",
71 "T60x_JS0_WAIT_ISSUE",
72 "T60x_JS0_WAIT_DEPEND",
73 "T60x_JS0_WAIT_FINISH",
74 "T60x_JS1_JOBS",
75 "T60x_JS1_TASKS",
76 "T60x_JS1_ACTIVE",
77 "",
78 "T60x_JS1_WAIT_READ",
79 "T60x_JS1_WAIT_ISSUE",
80 "T60x_JS1_WAIT_DEPEND",
81 "T60x_JS1_WAIT_FINISH",
82 "T60x_JS2_JOBS",
83 "T60x_JS2_TASKS",
84 "T60x_JS2_ACTIVE",
85 "",
86 "T60x_JS2_WAIT_READ",
87 "T60x_JS2_WAIT_ISSUE",
88 "T60x_JS2_WAIT_DEPEND",
89 "T60x_JS2_WAIT_FINISH",
90 "",
91 "",
92 "",
93 "",
94 "",
95 "",
96 "",
97 "",
98 "",
99 "",
100 "",
101 "",
102 "",
103 "",
104 "",
105 "",
106 "",
107 "",
108 "",
109 "",
110 "",
111 "",
112 "",
113 "",
114 "",
115 "",
116 "",
117 "",
118 "",
119 "",
120 "",
121 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100122
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000123 /*Tiler */
124 "",
125 "",
126 "",
127 "T60x_TI_JOBS_PROCESSED",
128 "T60x_TI_TRIANGLES",
129 "T60x_TI_QUADS",
130 "T60x_TI_POLYGONS",
131 "T60x_TI_POINTS",
132 "T60x_TI_LINES",
133 "T60x_TI_VCACHE_HIT",
134 "T60x_TI_VCACHE_MISS",
135 "T60x_TI_FRONT_FACING",
136 "T60x_TI_BACK_FACING",
137 "T60x_TI_PRIM_VISIBLE",
138 "T60x_TI_PRIM_CULLED",
139 "T60x_TI_PRIM_CLIPPED",
140 "T60x_TI_LEVEL0",
141 "T60x_TI_LEVEL1",
142 "T60x_TI_LEVEL2",
143 "T60x_TI_LEVEL3",
144 "T60x_TI_LEVEL4",
145 "T60x_TI_LEVEL5",
146 "T60x_TI_LEVEL6",
147 "T60x_TI_LEVEL7",
148 "T60x_TI_COMMAND_1",
149 "T60x_TI_COMMAND_2",
150 "T60x_TI_COMMAND_3",
151 "T60x_TI_COMMAND_4",
152 "T60x_TI_COMMAND_4_7",
153 "T60x_TI_COMMAND_8_15",
154 "T60x_TI_COMMAND_16_63",
155 "T60x_TI_COMMAND_64",
156 "T60x_TI_COMPRESS_IN",
157 "T60x_TI_COMPRESS_OUT",
158 "T60x_TI_COMPRESS_FLUSH",
159 "T60x_TI_TIMESTAMPS",
160 "T60x_TI_PCACHE_HIT",
161 "T60x_TI_PCACHE_MISS",
162 "T60x_TI_PCACHE_LINE",
163 "T60x_TI_PCACHE_STALL",
164 "T60x_TI_WRBUF_HIT",
165 "T60x_TI_WRBUF_MISS",
166 "T60x_TI_WRBUF_LINE",
167 "T60x_TI_WRBUF_PARTIAL",
168 "T60x_TI_WRBUF_STALL",
169 "T60x_TI_ACTIVE",
170 "T60x_TI_LOADING_DESC",
171 "T60x_TI_INDEX_WAIT",
172 "T60x_TI_INDEX_RANGE_WAIT",
173 "T60x_TI_VERTEX_WAIT",
174 "T60x_TI_PCACHE_WAIT",
175 "T60x_TI_WRBUF_WAIT",
176 "T60x_TI_BUS_READ",
177 "T60x_TI_BUS_WRITE",
178 "",
179 "",
180 "",
181 "",
182 "",
183 "T60x_TI_UTLB_STALL",
184 "T60x_TI_UTLB_REPLAY_MISS",
185 "T60x_TI_UTLB_REPLAY_FULL",
186 "T60x_TI_UTLB_NEW_MISS",
187 "T60x_TI_UTLB_HIT",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100188
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000189 /* Shader Core */
190 "",
191 "",
192 "",
193 "",
194 "T60x_FRAG_ACTIVE",
195 "T60x_FRAG_PRIMITIVES",
196 "T60x_FRAG_PRIMITIVES_DROPPED",
197 "T60x_FRAG_CYCLES_DESC",
198 "T60x_FRAG_CYCLES_PLR",
199 "T60x_FRAG_CYCLES_VERT",
200 "T60x_FRAG_CYCLES_TRISETUP",
201 "T60x_FRAG_CYCLES_RAST",
202 "T60x_FRAG_THREADS",
203 "T60x_FRAG_DUMMY_THREADS",
204 "T60x_FRAG_QUADS_RAST",
205 "T60x_FRAG_QUADS_EZS_TEST",
206 "T60x_FRAG_QUADS_EZS_KILLED",
207 "T60x_FRAG_THREADS_LZS_TEST",
208 "T60x_FRAG_THREADS_LZS_KILLED",
209 "T60x_FRAG_CYCLES_NO_TILE",
210 "T60x_FRAG_NUM_TILES",
211 "T60x_FRAG_TRANS_ELIM",
212 "T60x_COMPUTE_ACTIVE",
213 "T60x_COMPUTE_TASKS",
214 "T60x_COMPUTE_THREADS",
215 "T60x_COMPUTE_CYCLES_DESC",
216 "T60x_TRIPIPE_ACTIVE",
217 "T60x_ARITH_WORDS",
218 "T60x_ARITH_CYCLES_REG",
219 "T60x_ARITH_CYCLES_L0",
220 "T60x_ARITH_FRAG_DEPEND",
221 "T60x_LS_WORDS",
222 "T60x_LS_ISSUES",
223 "T60x_LS_RESTARTS",
224 "T60x_LS_REISSUES_MISS",
225 "T60x_LS_REISSUES_VD",
226 "T60x_LS_REISSUE_ATTRIB_MISS",
227 "T60x_LS_NO_WB",
228 "T60x_TEX_WORDS",
229 "T60x_TEX_BUBBLES",
230 "T60x_TEX_WORDS_L0",
231 "T60x_TEX_WORDS_DESC",
232 "T60x_TEX_ISSUES",
233 "T60x_TEX_RECIRC_FMISS",
234 "T60x_TEX_RECIRC_DESC",
235 "T60x_TEX_RECIRC_MULTI",
236 "T60x_TEX_RECIRC_PMISS",
237 "T60x_TEX_RECIRC_CONF",
238 "T60x_LSC_READ_HITS",
239 "T60x_LSC_READ_MISSES",
240 "T60x_LSC_WRITE_HITS",
241 "T60x_LSC_WRITE_MISSES",
242 "T60x_LSC_ATOMIC_HITS",
243 "T60x_LSC_ATOMIC_MISSES",
244 "T60x_LSC_LINE_FETCHES",
245 "T60x_LSC_DIRTY_LINE",
246 "T60x_LSC_SNOOPS",
247 "T60x_AXI_TLB_STALL",
248 "T60x_AXI_TLB_MISS",
249 "T60x_AXI_TLB_TRANSACTION",
250 "T60x_LS_TLB_MISS",
251 "T60x_LS_TLB_HIT",
252 "T60x_AXI_BEATS_READ",
253 "T60x_AXI_BEATS_WRITTEN",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100254
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000255 /*L2 and MMU */
256 "",
257 "",
258 "",
259 "",
260 "T60x_MMU_HIT",
261 "T60x_MMU_NEW_MISS",
262 "T60x_MMU_REPLAY_FULL",
263 "T60x_MMU_REPLAY_MISS",
264 "T60x_MMU_TABLE_WALK",
265 "",
266 "",
267 "",
268 "",
269 "",
270 "",
271 "",
272 "T60x_UTLB_HIT",
273 "T60x_UTLB_NEW_MISS",
274 "T60x_UTLB_REPLAY_FULL",
275 "T60x_UTLB_REPLAY_MISS",
276 "T60x_UTLB_STALL",
277 "",
278 "",
279 "",
280 "",
281 "",
282 "",
283 "",
284 "",
285 "",
286 "T60x_L2_EXT_WRITE_BEATS",
287 "T60x_L2_EXT_READ_BEATS",
288 "T60x_L2_ANY_LOOKUP",
289 "T60x_L2_READ_LOOKUP",
290 "T60x_L2_SREAD_LOOKUP",
291 "T60x_L2_READ_REPLAY",
292 "T60x_L2_READ_SNOOP",
293 "T60x_L2_READ_HIT",
294 "T60x_L2_CLEAN_MISS",
295 "T60x_L2_WRITE_LOOKUP",
296 "T60x_L2_SWRITE_LOOKUP",
297 "T60x_L2_WRITE_REPLAY",
298 "T60x_L2_WRITE_SNOOP",
299 "T60x_L2_WRITE_HIT",
300 "T60x_L2_EXT_READ_FULL",
301 "T60x_L2_EXT_READ_HALF",
302 "T60x_L2_EXT_WRITE_FULL",
303 "T60x_L2_EXT_WRITE_HALF",
304 "T60x_L2_EXT_READ",
305 "T60x_L2_EXT_READ_LINE",
306 "T60x_L2_EXT_WRITE",
307 "T60x_L2_EXT_WRITE_LINE",
308 "T60x_L2_EXT_WRITE_SMALL",
309 "T60x_L2_EXT_BARRIER",
310 "T60x_L2_EXT_AR_STALL",
311 "T60x_L2_EXT_R_BUF_FULL",
312 "T60x_L2_EXT_RD_BUF_FULL",
313 "T60x_L2_EXT_R_RAW",
314 "T60x_L2_EXT_W_STALL",
315 "T60x_L2_EXT_W_BUF_FULL",
316 "T60x_L2_EXT_R_W_HAZARD",
317 "T60x_L2_TAG_HAZARD",
318 "T60x_L2_SNOOP_FULL",
319 "T60x_L2_REPLAY_FULL"
320};
321static const char *const hardware_counters_mali_t62x[] =
322{
323 /* Job Manager */
324 "",
325 "",
326 "",
327 "",
328 "T62x_MESSAGES_SENT",
329 "T62x_MESSAGES_RECEIVED",
330 "T62x_GPU_ACTIVE",
331 "T62x_IRQ_ACTIVE",
332 "T62x_JS0_JOBS",
333 "T62x_JS0_TASKS",
334 "T62x_JS0_ACTIVE",
335 "",
336 "T62x_JS0_WAIT_READ",
337 "T62x_JS0_WAIT_ISSUE",
338 "T62x_JS0_WAIT_DEPEND",
339 "T62x_JS0_WAIT_FINISH",
340 "T62x_JS1_JOBS",
341 "T62x_JS1_TASKS",
342 "T62x_JS1_ACTIVE",
343 "",
344 "T62x_JS1_WAIT_READ",
345 "T62x_JS1_WAIT_ISSUE",
346 "T62x_JS1_WAIT_DEPEND",
347 "T62x_JS1_WAIT_FINISH",
348 "T62x_JS2_JOBS",
349 "T62x_JS2_TASKS",
350 "T62x_JS2_ACTIVE",
351 "",
352 "T62x_JS2_WAIT_READ",
353 "T62x_JS2_WAIT_ISSUE",
354 "T62x_JS2_WAIT_DEPEND",
355 "T62x_JS2_WAIT_FINISH",
356 "",
357 "",
358 "",
359 "",
360 "",
361 "",
362 "",
363 "",
364 "",
365 "",
366 "",
367 "",
368 "",
369 "",
370 "",
371 "",
372 "",
373 "",
374 "",
375 "",
376 "",
377 "",
378 "",
379 "",
380 "",
381 "",
382 "",
383 "",
384 "",
385 "",
386 "",
387 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100388
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000389 /*Tiler */
390 "",
391 "",
392 "",
393 "T62x_TI_JOBS_PROCESSED",
394 "T62x_TI_TRIANGLES",
395 "T62x_TI_QUADS",
396 "T62x_TI_POLYGONS",
397 "T62x_TI_POINTS",
398 "T62x_TI_LINES",
399 "T62x_TI_VCACHE_HIT",
400 "T62x_TI_VCACHE_MISS",
401 "T62x_TI_FRONT_FACING",
402 "T62x_TI_BACK_FACING",
403 "T62x_TI_PRIM_VISIBLE",
404 "T62x_TI_PRIM_CULLED",
405 "T62x_TI_PRIM_CLIPPED",
406 "T62x_TI_LEVEL0",
407 "T62x_TI_LEVEL1",
408 "T62x_TI_LEVEL2",
409 "T62x_TI_LEVEL3",
410 "T62x_TI_LEVEL4",
411 "T62x_TI_LEVEL5",
412 "T62x_TI_LEVEL6",
413 "T62x_TI_LEVEL7",
414 "T62x_TI_COMMAND_1",
415 "T62x_TI_COMMAND_2",
416 "T62x_TI_COMMAND_3",
417 "T62x_TI_COMMAND_4",
418 "T62x_TI_COMMAND_5_7",
419 "T62x_TI_COMMAND_8_15",
420 "T62x_TI_COMMAND_16_63",
421 "T62x_TI_COMMAND_64",
422 "T62x_TI_COMPRESS_IN",
423 "T62x_TI_COMPRESS_OUT",
424 "T62x_TI_COMPRESS_FLUSH",
425 "T62x_TI_TIMESTAMPS",
426 "T62x_TI_PCACHE_HIT",
427 "T62x_TI_PCACHE_MISS",
428 "T62x_TI_PCACHE_LINE",
429 "T62x_TI_PCACHE_STALL",
430 "T62x_TI_WRBUF_HIT",
431 "T62x_TI_WRBUF_MISS",
432 "T62x_TI_WRBUF_LINE",
433 "T62x_TI_WRBUF_PARTIAL",
434 "T62x_TI_WRBUF_STALL",
435 "T62x_TI_ACTIVE",
436 "T62x_TI_LOADING_DESC",
437 "T62x_TI_INDEX_WAIT",
438 "T62x_TI_INDEX_RANGE_WAIT",
439 "T62x_TI_VERTEX_WAIT",
440 "T62x_TI_PCACHE_WAIT",
441 "T62x_TI_WRBUF_WAIT",
442 "T62x_TI_BUS_READ",
443 "T62x_TI_BUS_WRITE",
444 "",
445 "",
446 "",
447 "",
448 "",
449 "T62x_TI_UTLB_STALL",
450 "T62x_TI_UTLB_REPLAY_MISS",
451 "T62x_TI_UTLB_REPLAY_FULL",
452 "T62x_TI_UTLB_NEW_MISS",
453 "T62x_TI_UTLB_HIT",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100454
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000455 /* Shader Core */
456 "",
457 "",
458 "",
459 "T62x_SHADER_CORE_ACTIVE",
460 "T62x_FRAG_ACTIVE",
461 "T62x_FRAG_PRIMITIVES",
462 "T62x_FRAG_PRIMITIVES_DROPPED",
463 "T62x_FRAG_CYCLES_DESC",
464 "T62x_FRAG_CYCLES_FPKQ_ACTIVE",
465 "T62x_FRAG_CYCLES_VERT",
466 "T62x_FRAG_CYCLES_TRISETUP",
467 "T62x_FRAG_CYCLES_EZS_ACTIVE",
468 "T62x_FRAG_THREADS",
469 "T62x_FRAG_DUMMY_THREADS",
470 "T62x_FRAG_QUADS_RAST",
471 "T62x_FRAG_QUADS_EZS_TEST",
472 "T62x_FRAG_QUADS_EZS_KILLED",
473 "T62x_FRAG_THREADS_LZS_TEST",
474 "T62x_FRAG_THREADS_LZS_KILLED",
475 "T62x_FRAG_CYCLES_NO_TILE",
476 "T62x_FRAG_NUM_TILES",
477 "T62x_FRAG_TRANS_ELIM",
478 "T62x_COMPUTE_ACTIVE",
479 "T62x_COMPUTE_TASKS",
480 "T62x_COMPUTE_THREADS",
481 "T62x_COMPUTE_CYCLES_DESC",
482 "T62x_TRIPIPE_ACTIVE",
483 "T62x_ARITH_WORDS",
484 "T62x_ARITH_CYCLES_REG",
485 "T62x_ARITH_CYCLES_L0",
486 "T62x_ARITH_FRAG_DEPEND",
487 "T62x_LS_WORDS",
488 "T62x_LS_ISSUES",
489 "T62x_LS_RESTARTS",
490 "T62x_LS_REISSUES_MISS",
491 "T62x_LS_REISSUES_VD",
492 "T62x_LS_REISSUE_ATTRIB_MISS",
493 "T62x_LS_NO_WB",
494 "T62x_TEX_WORDS",
495 "T62x_TEX_BUBBLES",
496 "T62x_TEX_WORDS_L0",
497 "T62x_TEX_WORDS_DESC",
498 "T62x_TEX_ISSUES",
499 "T62x_TEX_RECIRC_FMISS",
500 "T62x_TEX_RECIRC_DESC",
501 "T62x_TEX_RECIRC_MULTI",
502 "T62x_TEX_RECIRC_PMISS",
503 "T62x_TEX_RECIRC_CONF",
504 "T62x_LSC_READ_HITS",
505 "T62x_LSC_READ_MISSES",
506 "T62x_LSC_WRITE_HITS",
507 "T62x_LSC_WRITE_MISSES",
508 "T62x_LSC_ATOMIC_HITS",
509 "T62x_LSC_ATOMIC_MISSES",
510 "T62x_LSC_LINE_FETCHES",
511 "T62x_LSC_DIRTY_LINE",
512 "T62x_LSC_SNOOPS",
513 "T62x_AXI_TLB_STALL",
514 "T62x_AXI_TLB_MISS",
515 "T62x_AXI_TLB_TRANSACTION",
516 "T62x_LS_TLB_MISS",
517 "T62x_LS_TLB_HIT",
518 "T62x_AXI_BEATS_READ",
519 "T62x_AXI_BEATS_WRITTEN",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100520
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000521 /*L2 and MMU */
522 "",
523 "",
524 "",
525 "",
526 "T62x_MMU_HIT",
527 "T62x_MMU_NEW_MISS",
528 "T62x_MMU_REPLAY_FULL",
529 "T62x_MMU_REPLAY_MISS",
530 "T62x_MMU_TABLE_WALK",
531 "",
532 "",
533 "",
534 "",
535 "",
536 "",
537 "",
538 "T62x_UTLB_HIT",
539 "T62x_UTLB_NEW_MISS",
540 "T62x_UTLB_REPLAY_FULL",
541 "T62x_UTLB_REPLAY_MISS",
542 "T62x_UTLB_STALL",
543 "",
544 "",
545 "",
546 "",
547 "",
548 "",
549 "",
550 "",
551 "",
552 "T62x_L2_EXT_WRITE_BEATS",
553 "T62x_L2_EXT_READ_BEATS",
554 "T62x_L2_ANY_LOOKUP",
555 "T62x_L2_READ_LOOKUP",
556 "T62x_L2_SREAD_LOOKUP",
557 "T62x_L2_READ_REPLAY",
558 "T62x_L2_READ_SNOOP",
559 "T62x_L2_READ_HIT",
560 "T62x_L2_CLEAN_MISS",
561 "T62x_L2_WRITE_LOOKUP",
562 "T62x_L2_SWRITE_LOOKUP",
563 "T62x_L2_WRITE_REPLAY",
564 "T62x_L2_WRITE_SNOOP",
565 "T62x_L2_WRITE_HIT",
566 "T62x_L2_EXT_READ_FULL",
567 "T62x_L2_EXT_READ_HALF",
568 "T62x_L2_EXT_WRITE_FULL",
569 "T62x_L2_EXT_WRITE_HALF",
570 "T62x_L2_EXT_READ",
571 "T62x_L2_EXT_READ_LINE",
572 "T62x_L2_EXT_WRITE",
573 "T62x_L2_EXT_WRITE_LINE",
574 "T62x_L2_EXT_WRITE_SMALL",
575 "T62x_L2_EXT_BARRIER",
576 "T62x_L2_EXT_AR_STALL",
577 "T62x_L2_EXT_R_BUF_FULL",
578 "T62x_L2_EXT_RD_BUF_FULL",
579 "T62x_L2_EXT_R_RAW",
580 "T62x_L2_EXT_W_STALL",
581 "T62x_L2_EXT_W_BUF_FULL",
582 "T62x_L2_EXT_R_W_HAZARD",
583 "T62x_L2_TAG_HAZARD",
584 "T62x_L2_SNOOP_FULL",
585 "T62x_L2_REPLAY_FULL"
586};
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100587
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000588static const char *const hardware_counters_mali_t72x[] =
589{
590 /* Job Manager */
591 "",
592 "",
593 "",
594 "",
595 "T72x_GPU_ACTIVE",
596 "T72x_IRQ_ACTIVE",
597 "T72x_JS0_JOBS",
598 "T72x_JS0_TASKS",
599 "T72x_JS0_ACTIVE",
600 "T72x_JS1_JOBS",
601 "T72x_JS1_TASKS",
602 "T72x_JS1_ACTIVE",
603 "T72x_JS2_JOBS",
604 "T72x_JS2_TASKS",
605 "T72x_JS2_ACTIVE",
606 "",
607 "",
608 "",
609 "",
610 "",
611 "",
612 "",
613 "",
614 "",
615 "",
616 "",
617 "",
618 "",
619 "",
620 "",
621 "",
622 "",
623 "",
624 "",
625 "",
626 "",
627 "",
628 "",
629 "",
630 "",
631 "",
632 "",
633 "",
634 "",
635 "",
636 "",
637 "",
638 "",
639 "",
640 "",
641 "",
642 "",
643 "",
644 "",
645 "",
646 "",
647 "",
648 "",
649 "",
650 "",
651 "",
652 "",
653 "",
654 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100655
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000656 /*Tiler */
657 "",
658 "",
659 "",
660 "T72x_TI_JOBS_PROCESSED",
661 "T72x_TI_TRIANGLES",
662 "T72x_TI_QUADS",
663 "T72x_TI_POLYGONS",
664 "T72x_TI_POINTS",
665 "T72x_TI_LINES",
666 "T72x_TI_FRONT_FACING",
667 "T72x_TI_BACK_FACING",
668 "T72x_TI_PRIM_VISIBLE",
669 "T72x_TI_PRIM_CULLED",
670 "T72x_TI_PRIM_CLIPPED",
671 "",
672 "",
673 "",
674 "",
675 "",
676 "",
677 "",
678 "",
679 "T72x_TI_ACTIVE",
680 "",
681 "",
682 "",
683 "",
684 "",
685 "",
686 "",
687 "",
688 "",
689 "",
690 "",
691 "",
692 "",
693 "",
694 "",
695 "",
696 "",
697 "",
698 "",
699 "",
700 "",
701 "",
702 "",
703 "",
704 "",
705 "",
706 "",
707 "",
708 "",
709 "",
710 "",
711 "",
712 "",
713 "",
714 "",
715 "",
716 "",
717 "",
718 "",
719 "",
720 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100721
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000722 /* Shader Core */
723 "",
724 "",
725 "",
726 "",
727 "T72x_FRAG_ACTIVE",
728 "T72x_FRAG_PRIMITIVES",
729 "T72x_FRAG_PRIMITIVES_DROPPED",
730 "T72x_FRAG_THREADS",
731 "T72x_FRAG_DUMMY_THREADS",
732 "T72x_FRAG_QUADS_RAST",
733 "T72x_FRAG_QUADS_EZS_TEST",
734 "T72x_FRAG_QUADS_EZS_KILLED",
735 "T72x_FRAG_THREADS_LZS_TEST",
736 "T72x_FRAG_THREADS_LZS_KILLED",
737 "T72x_FRAG_CYCLES_NO_TILE",
738 "T72x_FRAG_NUM_TILES",
739 "T72x_FRAG_TRANS_ELIM",
740 "T72x_COMPUTE_ACTIVE",
741 "T72x_COMPUTE_TASKS",
742 "T72x_COMPUTE_THREADS",
743 "T72x_TRIPIPE_ACTIVE",
744 "T72x_ARITH_WORDS",
745 "T72x_ARITH_CYCLES_REG",
746 "T72x_LS_WORDS",
747 "T72x_LS_ISSUES",
748 "T72x_LS_RESTARTS",
749 "T72x_LS_REISSUES_MISS",
750 "T72x_TEX_WORDS",
751 "T72x_TEX_BUBBLES",
752 "T72x_TEX_ISSUES",
753 "T72x_LSC_READ_HITS",
754 "T72x_LSC_READ_MISSES",
755 "T72x_LSC_WRITE_HITS",
756 "T72x_LSC_WRITE_MISSES",
757 "T72x_LSC_ATOMIC_HITS",
758 "T72x_LSC_ATOMIC_MISSES",
759 "T72x_LSC_LINE_FETCHES",
760 "T72x_LSC_DIRTY_LINE",
761 "T72x_LSC_SNOOPS",
762 "",
763 "",
764 "",
765 "",
766 "",
767 "",
768 "",
769 "",
770 "",
771 "",
772 "",
773 "",
774 "",
775 "",
776 "",
777 "",
778 "",
779 "",
780 "",
781 "",
782 "",
783 "",
784 "",
785 "",
786 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100787
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000788 /*L2 and MMU */
789 "",
790 "",
791 "",
792 "",
793 "T72x_L2_EXT_WRITE_BEAT",
794 "T72x_L2_EXT_READ_BEAT",
795 "T72x_L2_READ_SNOOP",
796 "T72x_L2_READ_HIT",
797 "T72x_L2_WRITE_SNOOP",
798 "T72x_L2_WRITE_HIT",
799 "T72x_L2_EXT_WRITE_SMALL",
800 "T72x_L2_EXT_BARRIER",
801 "T72x_L2_EXT_AR_STALL",
802 "T72x_L2_EXT_W_STALL",
803 "T72x_L2_SNOOP_FULL",
804 "",
805 "",
806 "",
807 "",
808 "",
809 "",
810 "",
811 "",
812 "",
813 "",
814 "",
815 "",
816 "",
817 "",
818 "",
819 "",
820 "",
821 "",
822 "",
823 "",
824 "",
825 "",
826 "",
827 "",
828 "",
829 "",
830 "",
831 "",
832 "",
833 "",
834 "",
835 "",
836 "",
837 "",
838 "",
839 "",
840 "",
841 "",
842 "",
843 "",
844 "",
845 "",
846 "",
847 "",
848 "",
849 "",
850 "",
851 "",
852 ""
853};
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100854
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000855static const char *const hardware_counters_mali_t76x[] =
856{
857 /* Job Manager */
858 "",
859 "",
860 "",
861 "",
862 "T76x_MESSAGES_SENT",
863 "T76x_MESSAGES_RECEIVED",
864 "T76x_GPU_ACTIVE",
865 "T76x_IRQ_ACTIVE",
866 "T76x_JS0_JOBS",
867 "T76x_JS0_TASKS",
868 "T76x_JS0_ACTIVE",
869 "",
870 "T76x_JS0_WAIT_READ",
871 "T76x_JS0_WAIT_ISSUE",
872 "T76x_JS0_WAIT_DEPEND",
873 "T76x_JS0_WAIT_FINISH",
874 "T76x_JS1_JOBS",
875 "T76x_JS1_TASKS",
876 "T76x_JS1_ACTIVE",
877 "",
878 "T76x_JS1_WAIT_READ",
879 "T76x_JS1_WAIT_ISSUE",
880 "T76x_JS1_WAIT_DEPEND",
881 "T76x_JS1_WAIT_FINISH",
882 "T76x_JS2_JOBS",
883 "T76x_JS2_TASKS",
884 "T76x_JS2_ACTIVE",
885 "",
886 "T76x_JS2_WAIT_READ",
887 "T76x_JS2_WAIT_ISSUE",
888 "T76x_JS2_WAIT_DEPEND",
889 "T76x_JS2_WAIT_FINISH",
890 "",
891 "",
892 "",
893 "",
894 "",
895 "",
896 "",
897 "",
898 "",
899 "",
900 "",
901 "",
902 "",
903 "",
904 "",
905 "",
906 "",
907 "",
908 "",
909 "",
910 "",
911 "",
912 "",
913 "",
914 "",
915 "",
916 "",
917 "",
918 "",
919 "",
920 "",
921 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100922
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000923 /*Tiler */
924 "",
925 "",
926 "",
927 "T76x_TI_JOBS_PROCESSED",
928 "T76x_TI_TRIANGLES",
929 "T76x_TI_QUADS",
930 "T76x_TI_POLYGONS",
931 "T76x_TI_POINTS",
932 "T76x_TI_LINES",
933 "T76x_TI_VCACHE_HIT",
934 "T76x_TI_VCACHE_MISS",
935 "T76x_TI_FRONT_FACING",
936 "T76x_TI_BACK_FACING",
937 "T76x_TI_PRIM_VISIBLE",
938 "T76x_TI_PRIM_CULLED",
939 "T76x_TI_PRIM_CLIPPED",
940 "T76x_TI_LEVEL0",
941 "T76x_TI_LEVEL1",
942 "T76x_TI_LEVEL2",
943 "T76x_TI_LEVEL3",
944 "T76x_TI_LEVEL4",
945 "T76x_TI_LEVEL5",
946 "T76x_TI_LEVEL6",
947 "T76x_TI_LEVEL7",
948 "T76x_TI_COMMAND_1",
949 "T76x_TI_COMMAND_2",
950 "T76x_TI_COMMAND_3",
951 "T76x_TI_COMMAND_4",
952 "T76x_TI_COMMAND_5_7",
953 "T76x_TI_COMMAND_8_15",
954 "T76x_TI_COMMAND_16_63",
955 "T76x_TI_COMMAND_64",
956 "T76x_TI_COMPRESS_IN",
957 "T76x_TI_COMPRESS_OUT",
958 "T76x_TI_COMPRESS_FLUSH",
959 "T76x_TI_TIMESTAMPS",
960 "T76x_TI_PCACHE_HIT",
961 "T76x_TI_PCACHE_MISS",
962 "T76x_TI_PCACHE_LINE",
963 "T76x_TI_PCACHE_STALL",
964 "T76x_TI_WRBUF_HIT",
965 "T76x_TI_WRBUF_MISS",
966 "T76x_TI_WRBUF_LINE",
967 "T76x_TI_WRBUF_PARTIAL",
968 "T76x_TI_WRBUF_STALL",
969 "T76x_TI_ACTIVE",
970 "T76x_TI_LOADING_DESC",
971 "T76x_TI_INDEX_WAIT",
972 "T76x_TI_INDEX_RANGE_WAIT",
973 "T76x_TI_VERTEX_WAIT",
974 "T76x_TI_PCACHE_WAIT",
975 "T76x_TI_WRBUF_WAIT",
976 "T76x_TI_BUS_READ",
977 "T76x_TI_BUS_WRITE",
978 "",
979 "",
980 "",
981 "",
982 "",
983 "T76x_TI_UTLB_HIT",
984 "T76x_TI_UTLB_NEW_MISS",
985 "T76x_TI_UTLB_REPLAY_FULL",
986 "T76x_TI_UTLB_REPLAY_MISS",
987 "T76x_TI_UTLB_STALL",
Moritz Pflanzer45634b42017-08-30 12:48:18 +0100988
Anthony Barbier88b8d8c2017-12-22 15:45:00 +0000989 /* Shader Core */
990 "",
991 "",
992 "",
993 "",
994 "T76x_FRAG_ACTIVE",
995 "T76x_FRAG_PRIMITIVES",
996 "T76x_FRAG_PRIMITIVES_DROPPED",
997 "T76x_FRAG_CYCLES_DESC",
998 "T76x_FRAG_CYCLES_FPKQ_ACTIVE",
999 "T76x_FRAG_CYCLES_VERT",
1000 "T76x_FRAG_CYCLES_TRISETUP",
1001 "T76x_FRAG_CYCLES_EZS_ACTIVE",
1002 "T76x_FRAG_THREADS",
1003 "T76x_FRAG_DUMMY_THREADS",
1004 "T76x_FRAG_QUADS_RAST",
1005 "T76x_FRAG_QUADS_EZS_TEST",
1006 "T76x_FRAG_QUADS_EZS_KILLED",
1007 "T76x_FRAG_THREADS_LZS_TEST",
1008 "T76x_FRAG_THREADS_LZS_KILLED",
1009 "T76x_FRAG_CYCLES_NO_TILE",
1010 "T76x_FRAG_NUM_TILES",
1011 "T76x_FRAG_TRANS_ELIM",
1012 "T76x_COMPUTE_ACTIVE",
1013 "T76x_COMPUTE_TASKS",
1014 "T76x_COMPUTE_THREADS",
1015 "T76x_COMPUTE_CYCLES_DESC",
1016 "T76x_TRIPIPE_ACTIVE",
1017 "T76x_ARITH_WORDS",
1018 "T76x_ARITH_CYCLES_REG",
1019 "T76x_ARITH_CYCLES_L0",
1020 "T76x_ARITH_FRAG_DEPEND",
1021 "T76x_LS_WORDS",
1022 "T76x_LS_ISSUES",
1023 "T76x_LS_REISSUE_ATTR",
1024 "T76x_LS_REISSUES_VARY",
1025 "T76x_LS_VARY_RV_MISS",
1026 "T76x_LS_VARY_RV_HIT",
1027 "T76x_LS_NO_UNPARK",
1028 "T76x_TEX_WORDS",
1029 "T76x_TEX_BUBBLES",
1030 "T76x_TEX_WORDS_L0",
1031 "T76x_TEX_WORDS_DESC",
1032 "T76x_TEX_ISSUES",
1033 "T76x_TEX_RECIRC_FMISS",
1034 "T76x_TEX_RECIRC_DESC",
1035 "T76x_TEX_RECIRC_MULTI",
1036 "T76x_TEX_RECIRC_PMISS",
1037 "T76x_TEX_RECIRC_CONF",
1038 "T76x_LSC_READ_HITS",
1039 "T76x_LSC_READ_OP",
1040 "T76x_LSC_WRITE_HITS",
1041 "T76x_LSC_WRITE_OP",
1042 "T76x_LSC_ATOMIC_HITS",
1043 "T76x_LSC_ATOMIC_OP",
1044 "T76x_LSC_LINE_FETCHES",
1045 "T76x_LSC_DIRTY_LINE",
1046 "T76x_LSC_SNOOPS",
1047 "T76x_AXI_TLB_STALL",
1048 "T76x_AXI_TLB_MISS",
1049 "T76x_AXI_TLB_TRANSACTION",
1050 "T76x_LS_TLB_MISS",
1051 "T76x_LS_TLB_HIT",
1052 "T76x_AXI_BEATS_READ",
1053 "T76x_AXI_BEATS_WRITTEN",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001054
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001055 /*L2 and MMU */
1056 "",
1057 "",
1058 "",
1059 "",
1060 "T76x_MMU_HIT",
1061 "T76x_MMU_NEW_MISS",
1062 "T76x_MMU_REPLAY_FULL",
1063 "T76x_MMU_REPLAY_MISS",
1064 "T76x_MMU_TABLE_WALK",
1065 "T76x_MMU_REQUESTS",
1066 "",
1067 "",
1068 "T76x_UTLB_HIT",
1069 "T76x_UTLB_NEW_MISS",
1070 "T76x_UTLB_REPLAY_FULL",
1071 "T76x_UTLB_REPLAY_MISS",
1072 "T76x_UTLB_STALL",
1073 "",
1074 "",
1075 "",
1076 "",
1077 "",
1078 "",
1079 "",
1080 "",
1081 "",
1082 "",
1083 "",
1084 "",
1085 "",
1086 "T76x_L2_EXT_WRITE_BEATS",
1087 "T76x_L2_EXT_READ_BEATS",
1088 "T76x_L2_ANY_LOOKUP",
1089 "T76x_L2_READ_LOOKUP",
1090 "T76x_L2_SREAD_LOOKUP",
1091 "T76x_L2_READ_REPLAY",
1092 "T76x_L2_READ_SNOOP",
1093 "T76x_L2_READ_HIT",
1094 "T76x_L2_CLEAN_MISS",
1095 "T76x_L2_WRITE_LOOKUP",
1096 "T76x_L2_SWRITE_LOOKUP",
1097 "T76x_L2_WRITE_REPLAY",
1098 "T76x_L2_WRITE_SNOOP",
1099 "T76x_L2_WRITE_HIT",
1100 "T76x_L2_EXT_READ_FULL",
1101 "",
1102 "T76x_L2_EXT_WRITE_FULL",
1103 "T76x_L2_EXT_R_W_HAZARD",
1104 "T76x_L2_EXT_READ",
1105 "T76x_L2_EXT_READ_LINE",
1106 "T76x_L2_EXT_WRITE",
1107 "T76x_L2_EXT_WRITE_LINE",
1108 "T76x_L2_EXT_WRITE_SMALL",
1109 "T76x_L2_EXT_BARRIER",
1110 "T76x_L2_EXT_AR_STALL",
1111 "T76x_L2_EXT_R_BUF_FULL",
1112 "T76x_L2_EXT_RD_BUF_FULL",
1113 "T76x_L2_EXT_R_RAW",
1114 "T76x_L2_EXT_W_STALL",
1115 "T76x_L2_EXT_W_BUF_FULL",
1116 "T76x_L2_EXT_R_BUF_FULL",
1117 "T76x_L2_TAG_HAZARD",
1118 "T76x_L2_SNOOP_FULL",
1119 "T76x_L2_REPLAY_FULL"
1120};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001121
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001122static const char *const hardware_counters_mali_t82x[] =
1123{
1124 /* Job Manager */
1125 "",
1126 "",
1127 "",
1128 "",
1129 "T82x_MESSAGES_SENT",
1130 "T82x_MESSAGES_RECEIVED",
1131 "T82x_GPU_ACTIVE",
1132 "T82x_IRQ_ACTIVE",
1133 "T82x_JS0_JOBS",
1134 "T82x_JS0_TASKS",
1135 "T82x_JS0_ACTIVE",
1136 "",
1137 "T82x_JS0_WAIT_READ",
1138 "T82x_JS0_WAIT_ISSUE",
1139 "T82x_JS0_WAIT_DEPEND",
1140 "T82x_JS0_WAIT_FINISH",
1141 "T82x_JS1_JOBS",
1142 "T82x_JS1_TASKS",
1143 "T82x_JS1_ACTIVE",
1144 "",
1145 "T82x_JS1_WAIT_READ",
1146 "T82x_JS1_WAIT_ISSUE",
1147 "T82x_JS1_WAIT_DEPEND",
1148 "T82x_JS1_WAIT_FINISH",
1149 "T82x_JS2_JOBS",
1150 "T82x_JS2_TASKS",
1151 "T82x_JS2_ACTIVE",
1152 "",
1153 "T82x_JS2_WAIT_READ",
1154 "T82x_JS2_WAIT_ISSUE",
1155 "T82x_JS2_WAIT_DEPEND",
1156 "T82x_JS2_WAIT_FINISH",
1157 "",
1158 "",
1159 "",
1160 "",
1161 "",
1162 "",
1163 "",
1164 "",
1165 "",
1166 "",
1167 "",
1168 "",
1169 "",
1170 "",
1171 "",
1172 "",
1173 "",
1174 "",
1175 "",
1176 "",
1177 "",
1178 "",
1179 "",
1180 "",
1181 "",
1182 "",
1183 "",
1184 "",
1185 "",
1186 "",
1187 "",
1188 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001189
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001190 /*Tiler */
1191 "",
1192 "",
1193 "",
1194 "T82x_TI_JOBS_PROCESSED",
1195 "T82x_TI_TRIANGLES",
1196 "T82x_TI_QUADS",
1197 "T82x_TI_POLYGONS",
1198 "T82x_TI_POINTS",
1199 "T82x_TI_LINES",
1200 "T82x_TI_FRONT_FACING",
1201 "T82x_TI_BACK_FACING",
1202 "T82x_TI_PRIM_VISIBLE",
1203 "T82x_TI_PRIM_CULLED",
1204 "T82x_TI_PRIM_CLIPPED",
1205 "",
1206 "",
1207 "",
1208 "",
1209 "",
1210 "",
1211 "",
1212 "",
1213 "T82x_TI_ACTIVE",
1214 "",
1215 "",
1216 "",
1217 "",
1218 "",
1219 "",
1220 "",
1221 "",
1222 "",
1223 "",
1224 "",
1225 "",
1226 "",
1227 "",
1228 "",
1229 "",
1230 "",
1231 "",
1232 "",
1233 "",
1234 "",
1235 "",
1236 "",
1237 "",
1238 "",
1239 "",
1240 "",
1241 "",
1242 "",
1243 "",
1244 "",
1245 "",
1246 "",
1247 "",
1248 "",
1249 "",
1250 "",
1251 "",
1252 "",
1253 "",
1254 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001255
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001256 /* Shader Core */
1257 "",
1258 "",
1259 "",
1260 "",
1261 "T82x_FRAG_ACTIVE",
1262 "T82x_FRAG_PRIMITIVES",
1263 "T82x_FRAG_PRIMITIVES_DROPPED",
1264 "T82x_FRAG_CYCLES_DESC",
1265 "T82x_FRAG_CYCLES_FPKQ_ACTIVE",
1266 "T82x_FRAG_CYCLES_VERT",
1267 "T82x_FRAG_CYCLES_TRISETUP",
1268 "T82x_FRAG_CYCLES_EZS_ACTIVE",
1269 "T82x_FRAG_THREADS",
1270 "T82x_FRAG_DUMMY_THREADS",
1271 "T82x_FRAG_QUADS_RAST",
1272 "T82x_FRAG_QUADS_EZS_TEST",
1273 "T82x_FRAG_QUADS_EZS_KILLED",
1274 "T82x_FRAG_THREADS_LZS_TEST",
1275 "T82x_FRAG_THREADS_LZS_KILLED",
1276 "T82x_FRAG_CYCLES_NO_TILE",
1277 "T82x_FRAG_NUM_TILES",
1278 "T82x_FRAG_TRANS_ELIM",
1279 "T82x_COMPUTE_ACTIVE",
1280 "T82x_COMPUTE_TASKS",
1281 "T82x_COMPUTE_THREADS",
1282 "T82x_COMPUTE_CYCLES_DESC",
1283 "T82x_TRIPIPE_ACTIVE",
1284 "T82x_ARITH_WORDS",
1285 "T82x_ARITH_CYCLES_REG",
1286 "T82x_ARITH_CYCLES_L0",
1287 "T82x_ARITH_FRAG_DEPEND",
1288 "T82x_LS_WORDS",
1289 "T82x_LS_ISSUES",
1290 "T82x_LS_REISSUE_ATTR",
1291 "T82x_LS_REISSUES_VARY",
1292 "T82x_LS_VARY_RV_MISS",
1293 "T82x_LS_VARY_RV_HIT",
1294 "T82x_LS_NO_UNPARK",
1295 "T82x_TEX_WORDS",
1296 "T82x_TEX_BUBBLES",
1297 "T82x_TEX_WORDS_L0",
1298 "T82x_TEX_WORDS_DESC",
1299 "T82x_TEX_ISSUES",
1300 "T82x_TEX_RECIRC_FMISS",
1301 "T82x_TEX_RECIRC_DESC",
1302 "T82x_TEX_RECIRC_MULTI",
1303 "T82x_TEX_RECIRC_PMISS",
1304 "T82x_TEX_RECIRC_CONF",
1305 "T82x_LSC_READ_HITS",
1306 "T82x_LSC_READ_OP",
1307 "T82x_LSC_WRITE_HITS",
1308 "T82x_LSC_WRITE_OP",
1309 "T82x_LSC_ATOMIC_HITS",
1310 "T82x_LSC_ATOMIC_OP",
1311 "T82x_LSC_LINE_FETCHES",
1312 "T82x_LSC_DIRTY_LINE",
1313 "T82x_LSC_SNOOPS",
1314 "T82x_AXI_TLB_STALL",
1315 "T82x_AXI_TLB_MISS",
1316 "T82x_AXI_TLB_TRANSACTION",
1317 "T82x_LS_TLB_MISS",
1318 "T82x_LS_TLB_HIT",
1319 "T82x_AXI_BEATS_READ",
1320 "T82x_AXI_BEATS_WRITTEN",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001321
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001322 /*L2 and MMU */
1323 "",
1324 "",
1325 "",
1326 "",
1327 "T82x_MMU_HIT",
1328 "T82x_MMU_NEW_MISS",
1329 "T82x_MMU_REPLAY_FULL",
1330 "T82x_MMU_REPLAY_MISS",
1331 "T82x_MMU_TABLE_WALK",
1332 "T82x_MMU_REQUESTS",
1333 "",
1334 "",
1335 "T82x_UTLB_HIT",
1336 "T82x_UTLB_NEW_MISS",
1337 "T82x_UTLB_REPLAY_FULL",
1338 "T82x_UTLB_REPLAY_MISS",
1339 "T82x_UTLB_STALL",
1340 "",
1341 "",
1342 "",
1343 "",
1344 "",
1345 "",
1346 "",
1347 "",
1348 "",
1349 "",
1350 "",
1351 "",
1352 "",
1353 "T82x_L2_EXT_WRITE_BEATS",
1354 "T82x_L2_EXT_READ_BEATS",
1355 "T82x_L2_ANY_LOOKUP",
1356 "T82x_L2_READ_LOOKUP",
1357 "T82x_L2_SREAD_LOOKUP",
1358 "T82x_L2_READ_REPLAY",
1359 "T82x_L2_READ_SNOOP",
1360 "T82x_L2_READ_HIT",
1361 "T82x_L2_CLEAN_MISS",
1362 "T82x_L2_WRITE_LOOKUP",
1363 "T82x_L2_SWRITE_LOOKUP",
1364 "T82x_L2_WRITE_REPLAY",
1365 "T82x_L2_WRITE_SNOOP",
1366 "T82x_L2_WRITE_HIT",
1367 "T82x_L2_EXT_READ_FULL",
1368 "",
1369 "T82x_L2_EXT_WRITE_FULL",
1370 "T82x_L2_EXT_R_W_HAZARD",
1371 "T82x_L2_EXT_READ",
1372 "T82x_L2_EXT_READ_LINE",
1373 "T82x_L2_EXT_WRITE",
1374 "T82x_L2_EXT_WRITE_LINE",
1375 "T82x_L2_EXT_WRITE_SMALL",
1376 "T82x_L2_EXT_BARRIER",
1377 "T82x_L2_EXT_AR_STALL",
1378 "T82x_L2_EXT_R_BUF_FULL",
1379 "T82x_L2_EXT_RD_BUF_FULL",
1380 "T82x_L2_EXT_R_RAW",
1381 "T82x_L2_EXT_W_STALL",
1382 "T82x_L2_EXT_W_BUF_FULL",
1383 "T82x_L2_EXT_R_BUF_FULL",
1384 "T82x_L2_TAG_HAZARD",
1385 "T82x_L2_SNOOP_FULL",
1386 "T82x_L2_REPLAY_FULL"
1387};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001388
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001389static const char *const hardware_counters_mali_t83x[] =
1390{
1391 /* Job Manager */
1392 "",
1393 "",
1394 "",
1395 "",
1396 "T83x_MESSAGES_SENT",
1397 "T83x_MESSAGES_RECEIVED",
1398 "T83x_GPU_ACTIVE",
1399 "T83x_IRQ_ACTIVE",
1400 "T83x_JS0_JOBS",
1401 "T83x_JS0_TASKS",
1402 "T83x_JS0_ACTIVE",
1403 "",
1404 "T83x_JS0_WAIT_READ",
1405 "T83x_JS0_WAIT_ISSUE",
1406 "T83x_JS0_WAIT_DEPEND",
1407 "T83x_JS0_WAIT_FINISH",
1408 "T83x_JS1_JOBS",
1409 "T83x_JS1_TASKS",
1410 "T83x_JS1_ACTIVE",
1411 "",
1412 "T83x_JS1_WAIT_READ",
1413 "T83x_JS1_WAIT_ISSUE",
1414 "T83x_JS1_WAIT_DEPEND",
1415 "T83x_JS1_WAIT_FINISH",
1416 "T83x_JS2_JOBS",
1417 "T83x_JS2_TASKS",
1418 "T83x_JS2_ACTIVE",
1419 "",
1420 "T83x_JS2_WAIT_READ",
1421 "T83x_JS2_WAIT_ISSUE",
1422 "T83x_JS2_WAIT_DEPEND",
1423 "T83x_JS2_WAIT_FINISH",
1424 "",
1425 "",
1426 "",
1427 "",
1428 "",
1429 "",
1430 "",
1431 "",
1432 "",
1433 "",
1434 "",
1435 "",
1436 "",
1437 "",
1438 "",
1439 "",
1440 "",
1441 "",
1442 "",
1443 "",
1444 "",
1445 "",
1446 "",
1447 "",
1448 "",
1449 "",
1450 "",
1451 "",
1452 "",
1453 "",
1454 "",
1455 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001456
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001457 /*Tiler */
1458 "",
1459 "",
1460 "",
1461 "T83x_TI_JOBS_PROCESSED",
1462 "T83x_TI_TRIANGLES",
1463 "T83x_TI_QUADS",
1464 "T83x_TI_POLYGONS",
1465 "T83x_TI_POINTS",
1466 "T83x_TI_LINES",
1467 "T83x_TI_FRONT_FACING",
1468 "T83x_TI_BACK_FACING",
1469 "T83x_TI_PRIM_VISIBLE",
1470 "T83x_TI_PRIM_CULLED",
1471 "T83x_TI_PRIM_CLIPPED",
1472 "",
1473 "",
1474 "",
1475 "",
1476 "",
1477 "",
1478 "",
1479 "",
1480 "T83x_TI_ACTIVE",
1481 "",
1482 "",
1483 "",
1484 "",
1485 "",
1486 "",
1487 "",
1488 "",
1489 "",
1490 "",
1491 "",
1492 "",
1493 "",
1494 "",
1495 "",
1496 "",
1497 "",
1498 "",
1499 "",
1500 "",
1501 "",
1502 "",
1503 "",
1504 "",
1505 "",
1506 "",
1507 "",
1508 "",
1509 "",
1510 "",
1511 "",
1512 "",
1513 "",
1514 "",
1515 "",
1516 "",
1517 "",
1518 "",
1519 "",
1520 "",
1521 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001522
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001523 /* Shader Core */
1524 "",
1525 "",
1526 "",
1527 "",
1528 "T83x_FRAG_ACTIVE",
1529 "T83x_FRAG_PRIMITIVES",
1530 "T83x_FRAG_PRIMITIVES_DROPPED",
1531 "T83x_FRAG_CYCLES_DESC",
1532 "T83x_FRAG_CYCLES_FPKQ_ACTIVE",
1533 "T83x_FRAG_CYCLES_VERT",
1534 "T83x_FRAG_CYCLES_TRISETUP",
1535 "T83x_FRAG_CYCLES_EZS_ACTIVE",
1536 "T83x_FRAG_THREADS",
1537 "T83x_FRAG_DUMMY_THREADS",
1538 "T83x_FRAG_QUADS_RAST",
1539 "T83x_FRAG_QUADS_EZS_TEST",
1540 "T83x_FRAG_QUADS_EZS_KILLED",
1541 "T83x_FRAG_THREADS_LZS_TEST",
1542 "T83x_FRAG_THREADS_LZS_KILLED",
1543 "T83x_FRAG_CYCLES_NO_TILE",
1544 "T83x_FRAG_NUM_TILES",
1545 "T83x_FRAG_TRANS_ELIM",
1546 "T83x_COMPUTE_ACTIVE",
1547 "T83x_COMPUTE_TASKS",
1548 "T83x_COMPUTE_THREADS",
1549 "T83x_COMPUTE_CYCLES_DESC",
1550 "T83x_TRIPIPE_ACTIVE",
1551 "T83x_ARITH_WORDS",
1552 "T83x_ARITH_CYCLES_REG",
1553 "T83x_ARITH_CYCLES_L0",
1554 "T83x_ARITH_FRAG_DEPEND",
1555 "T83x_LS_WORDS",
1556 "T83x_LS_ISSUES",
1557 "T83x_LS_REISSUE_ATTR",
1558 "T83x_LS_REISSUES_VARY",
1559 "T83x_LS_VARY_RV_MISS",
1560 "T83x_LS_VARY_RV_HIT",
1561 "T83x_LS_NO_UNPARK",
1562 "T83x_TEX_WORDS",
1563 "T83x_TEX_BUBBLES",
1564 "T83x_TEX_WORDS_L0",
1565 "T83x_TEX_WORDS_DESC",
1566 "T83x_TEX_ISSUES",
1567 "T83x_TEX_RECIRC_FMISS",
1568 "T83x_TEX_RECIRC_DESC",
1569 "T83x_TEX_RECIRC_MULTI",
1570 "T83x_TEX_RECIRC_PMISS",
1571 "T83x_TEX_RECIRC_CONF",
1572 "T83x_LSC_READ_HITS",
1573 "T83x_LSC_READ_OP",
1574 "T83x_LSC_WRITE_HITS",
1575 "T83x_LSC_WRITE_OP",
1576 "T83x_LSC_ATOMIC_HITS",
1577 "T83x_LSC_ATOMIC_OP",
1578 "T83x_LSC_LINE_FETCHES",
1579 "T83x_LSC_DIRTY_LINE",
1580 "T83x_LSC_SNOOPS",
1581 "T83x_AXI_TLB_STALL",
1582 "T83x_AXI_TLB_MISS",
1583 "T83x_AXI_TLB_TRANSACTION",
1584 "T83x_LS_TLB_MISS",
1585 "T83x_LS_TLB_HIT",
1586 "T83x_AXI_BEATS_READ",
1587 "T83x_AXI_BEATS_WRITTEN",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001588
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001589 /*L2 and MMU */
1590 "",
1591 "",
1592 "",
1593 "",
1594 "T83x_MMU_HIT",
1595 "T83x_MMU_NEW_MISS",
1596 "T83x_MMU_REPLAY_FULL",
1597 "T83x_MMU_REPLAY_MISS",
1598 "T83x_MMU_TABLE_WALK",
1599 "T83x_MMU_REQUESTS",
1600 "",
1601 "",
1602 "T83x_UTLB_HIT",
1603 "T83x_UTLB_NEW_MISS",
1604 "T83x_UTLB_REPLAY_FULL",
1605 "T83x_UTLB_REPLAY_MISS",
1606 "T83x_UTLB_STALL",
1607 "",
1608 "",
1609 "",
1610 "",
1611 "",
1612 "",
1613 "",
1614 "",
1615 "",
1616 "",
1617 "",
1618 "",
1619 "",
1620 "T83x_L2_EXT_WRITE_BEATS",
1621 "T83x_L2_EXT_READ_BEATS",
1622 "T83x_L2_ANY_LOOKUP",
1623 "T83x_L2_READ_LOOKUP",
1624 "T83x_L2_SREAD_LOOKUP",
1625 "T83x_L2_READ_REPLAY",
1626 "T83x_L2_READ_SNOOP",
1627 "T83x_L2_READ_HIT",
1628 "T83x_L2_CLEAN_MISS",
1629 "T83x_L2_WRITE_LOOKUP",
1630 "T83x_L2_SWRITE_LOOKUP",
1631 "T83x_L2_WRITE_REPLAY",
1632 "T83x_L2_WRITE_SNOOP",
1633 "T83x_L2_WRITE_HIT",
1634 "T83x_L2_EXT_READ_FULL",
1635 "",
1636 "T83x_L2_EXT_WRITE_FULL",
1637 "T83x_L2_EXT_R_W_HAZARD",
1638 "T83x_L2_EXT_READ",
1639 "T83x_L2_EXT_READ_LINE",
1640 "T83x_L2_EXT_WRITE",
1641 "T83x_L2_EXT_WRITE_LINE",
1642 "T83x_L2_EXT_WRITE_SMALL",
1643 "T83x_L2_EXT_BARRIER",
1644 "T83x_L2_EXT_AR_STALL",
1645 "T83x_L2_EXT_R_BUF_FULL",
1646 "T83x_L2_EXT_RD_BUF_FULL",
1647 "T83x_L2_EXT_R_RAW",
1648 "T83x_L2_EXT_W_STALL",
1649 "T83x_L2_EXT_W_BUF_FULL",
1650 "T83x_L2_EXT_R_BUF_FULL",
1651 "T83x_L2_TAG_HAZARD",
1652 "T83x_L2_SNOOP_FULL",
1653 "T83x_L2_REPLAY_FULL"
1654};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001655
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001656static const char *const hardware_counters_mali_t86x[] =
1657{
1658 /* Job Manager */
1659 "",
1660 "",
1661 "",
1662 "",
1663 "T86x_MESSAGES_SENT",
1664 "T86x_MESSAGES_RECEIVED",
1665 "T86x_GPU_ACTIVE",
1666 "T86x_IRQ_ACTIVE",
1667 "T86x_JS0_JOBS",
1668 "T86x_JS0_TASKS",
1669 "T86x_JS0_ACTIVE",
1670 "",
1671 "T86x_JS0_WAIT_READ",
1672 "T86x_JS0_WAIT_ISSUE",
1673 "T86x_JS0_WAIT_DEPEND",
1674 "T86x_JS0_WAIT_FINISH",
1675 "T86x_JS1_JOBS",
1676 "T86x_JS1_TASKS",
1677 "T86x_JS1_ACTIVE",
1678 "",
1679 "T86x_JS1_WAIT_READ",
1680 "T86x_JS1_WAIT_ISSUE",
1681 "T86x_JS1_WAIT_DEPEND",
1682 "T86x_JS1_WAIT_FINISH",
1683 "T86x_JS2_JOBS",
1684 "T86x_JS2_TASKS",
1685 "T86x_JS2_ACTIVE",
1686 "",
1687 "T86x_JS2_WAIT_READ",
1688 "T86x_JS2_WAIT_ISSUE",
1689 "T86x_JS2_WAIT_DEPEND",
1690 "T86x_JS2_WAIT_FINISH",
1691 "",
1692 "",
1693 "",
1694 "",
1695 "",
1696 "",
1697 "",
1698 "",
1699 "",
1700 "",
1701 "",
1702 "",
1703 "",
1704 "",
1705 "",
1706 "",
1707 "",
1708 "",
1709 "",
1710 "",
1711 "",
1712 "",
1713 "",
1714 "",
1715 "",
1716 "",
1717 "",
1718 "",
1719 "",
1720 "",
1721 "",
1722 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001723
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001724 /*Tiler */
1725 "",
1726 "",
1727 "",
1728 "T86x_TI_JOBS_PROCESSED",
1729 "T86x_TI_TRIANGLES",
1730 "T86x_TI_QUADS",
1731 "T86x_TI_POLYGONS",
1732 "T86x_TI_POINTS",
1733 "T86x_TI_LINES",
1734 "T86x_TI_VCACHE_HIT",
1735 "T86x_TI_VCACHE_MISS",
1736 "T86x_TI_FRONT_FACING",
1737 "T86x_TI_BACK_FACING",
1738 "T86x_TI_PRIM_VISIBLE",
1739 "T86x_TI_PRIM_CULLED",
1740 "T86x_TI_PRIM_CLIPPED",
1741 "T86x_TI_LEVEL0",
1742 "T86x_TI_LEVEL1",
1743 "T86x_TI_LEVEL2",
1744 "T86x_TI_LEVEL3",
1745 "T86x_TI_LEVEL4",
1746 "T86x_TI_LEVEL5",
1747 "T86x_TI_LEVEL6",
1748 "T86x_TI_LEVEL7",
1749 "T86x_TI_COMMAND_1",
1750 "T86x_TI_COMMAND_2",
1751 "T86x_TI_COMMAND_3",
1752 "T86x_TI_COMMAND_4",
1753 "T86x_TI_COMMAND_5_7",
1754 "T86x_TI_COMMAND_8_15",
1755 "T86x_TI_COMMAND_16_63",
1756 "T86x_TI_COMMAND_64",
1757 "T86x_TI_COMPRESS_IN",
1758 "T86x_TI_COMPRESS_OUT",
1759 "T86x_TI_COMPRESS_FLUSH",
1760 "T86x_TI_TIMESTAMPS",
1761 "T86x_TI_PCACHE_HIT",
1762 "T86x_TI_PCACHE_MISS",
1763 "T86x_TI_PCACHE_LINE",
1764 "T86x_TI_PCACHE_STALL",
1765 "T86x_TI_WRBUF_HIT",
1766 "T86x_TI_WRBUF_MISS",
1767 "T86x_TI_WRBUF_LINE",
1768 "T86x_TI_WRBUF_PARTIAL",
1769 "T86x_TI_WRBUF_STALL",
1770 "T86x_TI_ACTIVE",
1771 "T86x_TI_LOADING_DESC",
1772 "T86x_TI_INDEX_WAIT",
1773 "T86x_TI_INDEX_RANGE_WAIT",
1774 "T86x_TI_VERTEX_WAIT",
1775 "T86x_TI_PCACHE_WAIT",
1776 "T86x_TI_WRBUF_WAIT",
1777 "T86x_TI_BUS_READ",
1778 "T86x_TI_BUS_WRITE",
1779 "",
1780 "",
1781 "",
1782 "",
1783 "",
1784 "T86x_TI_UTLB_HIT",
1785 "T86x_TI_UTLB_NEW_MISS",
1786 "T86x_TI_UTLB_REPLAY_FULL",
1787 "T86x_TI_UTLB_REPLAY_MISS",
1788 "T86x_TI_UTLB_STALL",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001789
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001790 /* Shader Core */
1791 "",
1792 "",
1793 "",
1794 "",
1795 "T86x_FRAG_ACTIVE",
1796 "T86x_FRAG_PRIMITIVES",
1797 "T86x_FRAG_PRIMITIVES_DROPPED",
1798 "T86x_FRAG_CYCLES_DESC",
1799 "T86x_FRAG_CYCLES_FPKQ_ACTIVE",
1800 "T86x_FRAG_CYCLES_VERT",
1801 "T86x_FRAG_CYCLES_TRISETUP",
1802 "T86x_FRAG_CYCLES_EZS_ACTIVE",
1803 "T86x_FRAG_THREADS",
1804 "T86x_FRAG_DUMMY_THREADS",
1805 "T86x_FRAG_QUADS_RAST",
1806 "T86x_FRAG_QUADS_EZS_TEST",
1807 "T86x_FRAG_QUADS_EZS_KILLED",
1808 "T86x_FRAG_THREADS_LZS_TEST",
1809 "T86x_FRAG_THREADS_LZS_KILLED",
1810 "T86x_FRAG_CYCLES_NO_TILE",
1811 "T86x_FRAG_NUM_TILES",
1812 "T86x_FRAG_TRANS_ELIM",
1813 "T86x_COMPUTE_ACTIVE",
1814 "T86x_COMPUTE_TASKS",
1815 "T86x_COMPUTE_THREADS",
1816 "T86x_COMPUTE_CYCLES_DESC",
1817 "T86x_TRIPIPE_ACTIVE",
1818 "T86x_ARITH_WORDS",
1819 "T86x_ARITH_CYCLES_REG",
1820 "T86x_ARITH_CYCLES_L0",
1821 "T86x_ARITH_FRAG_DEPEND",
1822 "T86x_LS_WORDS",
1823 "T86x_LS_ISSUES",
1824 "T86x_LS_REISSUE_ATTR",
1825 "T86x_LS_REISSUES_VARY",
1826 "T86x_LS_VARY_RV_MISS",
1827 "T86x_LS_VARY_RV_HIT",
1828 "T86x_LS_NO_UNPARK",
1829 "T86x_TEX_WORDS",
1830 "T86x_TEX_BUBBLES",
1831 "T86x_TEX_WORDS_L0",
1832 "T86x_TEX_WORDS_DESC",
1833 "T86x_TEX_ISSUES",
1834 "T86x_TEX_RECIRC_FMISS",
1835 "T86x_TEX_RECIRC_DESC",
1836 "T86x_TEX_RECIRC_MULTI",
1837 "T86x_TEX_RECIRC_PMISS",
1838 "T86x_TEX_RECIRC_CONF",
1839 "T86x_LSC_READ_HITS",
1840 "T86x_LSC_READ_OP",
1841 "T86x_LSC_WRITE_HITS",
1842 "T86x_LSC_WRITE_OP",
1843 "T86x_LSC_ATOMIC_HITS",
1844 "T86x_LSC_ATOMIC_OP",
1845 "T86x_LSC_LINE_FETCHES",
1846 "T86x_LSC_DIRTY_LINE",
1847 "T86x_LSC_SNOOPS",
1848 "T86x_AXI_TLB_STALL",
1849 "T86x_AXI_TLB_MISS",
1850 "T86x_AXI_TLB_TRANSACTION",
1851 "T86x_LS_TLB_MISS",
1852 "T86x_LS_TLB_HIT",
1853 "T86x_AXI_BEATS_READ",
1854 "T86x_AXI_BEATS_WRITTEN",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001855
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001856 /*L2 and MMU */
1857 "",
1858 "",
1859 "",
1860 "",
1861 "T86x_MMU_HIT",
1862 "T86x_MMU_NEW_MISS",
1863 "T86x_MMU_REPLAY_FULL",
1864 "T86x_MMU_REPLAY_MISS",
1865 "T86x_MMU_TABLE_WALK",
1866 "T86x_MMU_REQUESTS",
1867 "",
1868 "",
1869 "T86x_UTLB_HIT",
1870 "T86x_UTLB_NEW_MISS",
1871 "T86x_UTLB_REPLAY_FULL",
1872 "T86x_UTLB_REPLAY_MISS",
1873 "T86x_UTLB_STALL",
1874 "",
1875 "",
1876 "",
1877 "",
1878 "",
1879 "",
1880 "",
1881 "",
1882 "",
1883 "",
1884 "",
1885 "",
1886 "",
1887 "T86x_L2_EXT_WRITE_BEATS",
1888 "T86x_L2_EXT_READ_BEATS",
1889 "T86x_L2_ANY_LOOKUP",
1890 "T86x_L2_READ_LOOKUP",
1891 "T86x_L2_SREAD_LOOKUP",
1892 "T86x_L2_READ_REPLAY",
1893 "T86x_L2_READ_SNOOP",
1894 "T86x_L2_READ_HIT",
1895 "T86x_L2_CLEAN_MISS",
1896 "T86x_L2_WRITE_LOOKUP",
1897 "T86x_L2_SWRITE_LOOKUP",
1898 "T86x_L2_WRITE_REPLAY",
1899 "T86x_L2_WRITE_SNOOP",
1900 "T86x_L2_WRITE_HIT",
1901 "T86x_L2_EXT_READ_FULL",
1902 "",
1903 "T86x_L2_EXT_WRITE_FULL",
1904 "T86x_L2_EXT_R_W_HAZARD",
1905 "T86x_L2_EXT_READ",
1906 "T86x_L2_EXT_READ_LINE",
1907 "T86x_L2_EXT_WRITE",
1908 "T86x_L2_EXT_WRITE_LINE",
1909 "T86x_L2_EXT_WRITE_SMALL",
1910 "T86x_L2_EXT_BARRIER",
1911 "T86x_L2_EXT_AR_STALL",
1912 "T86x_L2_EXT_R_BUF_FULL",
1913 "T86x_L2_EXT_RD_BUF_FULL",
1914 "T86x_L2_EXT_R_RAW",
1915 "T86x_L2_EXT_W_STALL",
1916 "T86x_L2_EXT_W_BUF_FULL",
1917 "T86x_L2_EXT_R_BUF_FULL",
1918 "T86x_L2_TAG_HAZARD",
1919 "T86x_L2_SNOOP_FULL",
1920 "T86x_L2_REPLAY_FULL"
1921};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001922
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001923static const char *const hardware_counters_mali_t88x[] =
1924{
1925 /* Job Manager */
1926 "",
1927 "",
1928 "",
1929 "",
1930 "T88x_MESSAGES_SENT",
1931 "T88x_MESSAGES_RECEIVED",
1932 "T88x_GPU_ACTIVE",
1933 "T88x_IRQ_ACTIVE",
1934 "T88x_JS0_JOBS",
1935 "T88x_JS0_TASKS",
1936 "T88x_JS0_ACTIVE",
1937 "",
1938 "T88x_JS0_WAIT_READ",
1939 "T88x_JS0_WAIT_ISSUE",
1940 "T88x_JS0_WAIT_DEPEND",
1941 "T88x_JS0_WAIT_FINISH",
1942 "T88x_JS1_JOBS",
1943 "T88x_JS1_TASKS",
1944 "T88x_JS1_ACTIVE",
1945 "",
1946 "T88x_JS1_WAIT_READ",
1947 "T88x_JS1_WAIT_ISSUE",
1948 "T88x_JS1_WAIT_DEPEND",
1949 "T88x_JS1_WAIT_FINISH",
1950 "T88x_JS2_JOBS",
1951 "T88x_JS2_TASKS",
1952 "T88x_JS2_ACTIVE",
1953 "",
1954 "T88x_JS2_WAIT_READ",
1955 "T88x_JS2_WAIT_ISSUE",
1956 "T88x_JS2_WAIT_DEPEND",
1957 "T88x_JS2_WAIT_FINISH",
1958 "",
1959 "",
1960 "",
1961 "",
1962 "",
1963 "",
1964 "",
1965 "",
1966 "",
1967 "",
1968 "",
1969 "",
1970 "",
1971 "",
1972 "",
1973 "",
1974 "",
1975 "",
1976 "",
1977 "",
1978 "",
1979 "",
1980 "",
1981 "",
1982 "",
1983 "",
1984 "",
1985 "",
1986 "",
1987 "",
1988 "",
1989 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01001990
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00001991 /*Tiler */
1992 "",
1993 "",
1994 "",
1995 "T88x_TI_JOBS_PROCESSED",
1996 "T88x_TI_TRIANGLES",
1997 "T88x_TI_QUADS",
1998 "T88x_TI_POLYGONS",
1999 "T88x_TI_POINTS",
2000 "T88x_TI_LINES",
2001 "T88x_TI_VCACHE_HIT",
2002 "T88x_TI_VCACHE_MISS",
2003 "T88x_TI_FRONT_FACING",
2004 "T88x_TI_BACK_FACING",
2005 "T88x_TI_PRIM_VISIBLE",
2006 "T88x_TI_PRIM_CULLED",
2007 "T88x_TI_PRIM_CLIPPED",
2008 "T88x_TI_LEVEL0",
2009 "T88x_TI_LEVEL1",
2010 "T88x_TI_LEVEL2",
2011 "T88x_TI_LEVEL3",
2012 "T88x_TI_LEVEL4",
2013 "T88x_TI_LEVEL5",
2014 "T88x_TI_LEVEL6",
2015 "T88x_TI_LEVEL7",
2016 "T88x_TI_COMMAND_1",
2017 "T88x_TI_COMMAND_2",
2018 "T88x_TI_COMMAND_3",
2019 "T88x_TI_COMMAND_4",
2020 "T88x_TI_COMMAND_5_7",
2021 "T88x_TI_COMMAND_8_15",
2022 "T88x_TI_COMMAND_16_63",
2023 "T88x_TI_COMMAND_64",
2024 "T88x_TI_COMPRESS_IN",
2025 "T88x_TI_COMPRESS_OUT",
2026 "T88x_TI_COMPRESS_FLUSH",
2027 "T88x_TI_TIMESTAMPS",
2028 "T88x_TI_PCACHE_HIT",
2029 "T88x_TI_PCACHE_MISS",
2030 "T88x_TI_PCACHE_LINE",
2031 "T88x_TI_PCACHE_STALL",
2032 "T88x_TI_WRBUF_HIT",
2033 "T88x_TI_WRBUF_MISS",
2034 "T88x_TI_WRBUF_LINE",
2035 "T88x_TI_WRBUF_PARTIAL",
2036 "T88x_TI_WRBUF_STALL",
2037 "T88x_TI_ACTIVE",
2038 "T88x_TI_LOADING_DESC",
2039 "T88x_TI_INDEX_WAIT",
2040 "T88x_TI_INDEX_RANGE_WAIT",
2041 "T88x_TI_VERTEX_WAIT",
2042 "T88x_TI_PCACHE_WAIT",
2043 "T88x_TI_WRBUF_WAIT",
2044 "T88x_TI_BUS_READ",
2045 "T88x_TI_BUS_WRITE",
2046 "",
2047 "",
2048 "",
2049 "",
2050 "",
2051 "T88x_TI_UTLB_HIT",
2052 "T88x_TI_UTLB_NEW_MISS",
2053 "T88x_TI_UTLB_REPLAY_FULL",
2054 "T88x_TI_UTLB_REPLAY_MISS",
2055 "T88x_TI_UTLB_STALL",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002056
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002057 /* Shader Core */
2058 "",
2059 "",
2060 "",
2061 "",
2062 "T88x_FRAG_ACTIVE",
2063 "T88x_FRAG_PRIMITIVES",
2064 "T88x_FRAG_PRIMITIVES_DROPPED",
2065 "T88x_FRAG_CYCLES_DESC",
2066 "T88x_FRAG_CYCLES_FPKQ_ACTIVE",
2067 "T88x_FRAG_CYCLES_VERT",
2068 "T88x_FRAG_CYCLES_TRISETUP",
2069 "T88x_FRAG_CYCLES_EZS_ACTIVE",
2070 "T88x_FRAG_THREADS",
2071 "T88x_FRAG_DUMMY_THREADS",
2072 "T88x_FRAG_QUADS_RAST",
2073 "T88x_FRAG_QUADS_EZS_TEST",
2074 "T88x_FRAG_QUADS_EZS_KILLED",
2075 "T88x_FRAG_THREADS_LZS_TEST",
2076 "T88x_FRAG_THREADS_LZS_KILLED",
2077 "T88x_FRAG_CYCLES_NO_TILE",
2078 "T88x_FRAG_NUM_TILES",
2079 "T88x_FRAG_TRANS_ELIM",
2080 "T88x_COMPUTE_ACTIVE",
2081 "T88x_COMPUTE_TASKS",
2082 "T88x_COMPUTE_THREADS",
2083 "T88x_COMPUTE_CYCLES_DESC",
2084 "T88x_TRIPIPE_ACTIVE",
2085 "T88x_ARITH_WORDS",
2086 "T88x_ARITH_CYCLES_REG",
2087 "T88x_ARITH_CYCLES_L0",
2088 "T88x_ARITH_FRAG_DEPEND",
2089 "T88x_LS_WORDS",
2090 "T88x_LS_ISSUES",
2091 "T88x_LS_REISSUE_ATTR",
2092 "T88x_LS_REISSUES_VARY",
2093 "T88x_LS_VARY_RV_MISS",
2094 "T88x_LS_VARY_RV_HIT",
2095 "T88x_LS_NO_UNPARK",
2096 "T88x_TEX_WORDS",
2097 "T88x_TEX_BUBBLES",
2098 "T88x_TEX_WORDS_L0",
2099 "T88x_TEX_WORDS_DESC",
2100 "T88x_TEX_ISSUES",
2101 "T88x_TEX_RECIRC_FMISS",
2102 "T88x_TEX_RECIRC_DESC",
2103 "T88x_TEX_RECIRC_MULTI",
2104 "T88x_TEX_RECIRC_PMISS",
2105 "T88x_TEX_RECIRC_CONF",
2106 "T88x_LSC_READ_HITS",
2107 "T88x_LSC_READ_OP",
2108 "T88x_LSC_WRITE_HITS",
2109 "T88x_LSC_WRITE_OP",
2110 "T88x_LSC_ATOMIC_HITS",
2111 "T88x_LSC_ATOMIC_OP",
2112 "T88x_LSC_LINE_FETCHES",
2113 "T88x_LSC_DIRTY_LINE",
2114 "T88x_LSC_SNOOPS",
2115 "T88x_AXI_TLB_STALL",
2116 "T88x_AXI_TLB_MISS",
2117 "T88x_AXI_TLB_TRANSACTION",
2118 "T88x_LS_TLB_MISS",
2119 "T88x_LS_TLB_HIT",
2120 "T88x_AXI_BEATS_READ",
2121 "T88x_AXI_BEATS_WRITTEN",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002122
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002123 /*L2 and MMU */
2124 "",
2125 "",
2126 "",
2127 "",
2128 "T88x_MMU_HIT",
2129 "T88x_MMU_NEW_MISS",
2130 "T88x_MMU_REPLAY_FULL",
2131 "T88x_MMU_REPLAY_MISS",
2132 "T88x_MMU_TABLE_WALK",
2133 "T88x_MMU_REQUESTS",
2134 "",
2135 "",
2136 "T88x_UTLB_HIT",
2137 "T88x_UTLB_NEW_MISS",
2138 "T88x_UTLB_REPLAY_FULL",
2139 "T88x_UTLB_REPLAY_MISS",
2140 "T88x_UTLB_STALL",
2141 "",
2142 "",
2143 "",
2144 "",
2145 "",
2146 "",
2147 "",
2148 "",
2149 "",
2150 "",
2151 "",
2152 "",
2153 "",
2154 "T88x_L2_EXT_WRITE_BEATS",
2155 "T88x_L2_EXT_READ_BEATS",
2156 "T88x_L2_ANY_LOOKUP",
2157 "T88x_L2_READ_LOOKUP",
2158 "T88x_L2_SREAD_LOOKUP",
2159 "T88x_L2_READ_REPLAY",
2160 "T88x_L2_READ_SNOOP",
2161 "T88x_L2_READ_HIT",
2162 "T88x_L2_CLEAN_MISS",
2163 "T88x_L2_WRITE_LOOKUP",
2164 "T88x_L2_SWRITE_LOOKUP",
2165 "T88x_L2_WRITE_REPLAY",
2166 "T88x_L2_WRITE_SNOOP",
2167 "T88x_L2_WRITE_HIT",
2168 "T88x_L2_EXT_READ_FULL",
2169 "",
2170 "T88x_L2_EXT_WRITE_FULL",
2171 "T88x_L2_EXT_R_W_HAZARD",
2172 "T88x_L2_EXT_READ",
2173 "T88x_L2_EXT_READ_LINE",
2174 "T88x_L2_EXT_WRITE",
2175 "T88x_L2_EXT_WRITE_LINE",
2176 "T88x_L2_EXT_WRITE_SMALL",
2177 "T88x_L2_EXT_BARRIER",
2178 "T88x_L2_EXT_AR_STALL",
2179 "T88x_L2_EXT_R_BUF_FULL",
2180 "T88x_L2_EXT_RD_BUF_FULL",
2181 "T88x_L2_EXT_R_RAW",
2182 "T88x_L2_EXT_W_STALL",
2183 "T88x_L2_EXT_W_BUF_FULL",
2184 "T88x_L2_EXT_R_BUF_FULL",
2185 "T88x_L2_TAG_HAZARD",
2186 "T88x_L2_SNOOP_FULL",
2187 "T88x_L2_REPLAY_FULL"
2188};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002189
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002190static const char *const hardware_counters_mali_tHEx[] =
2191{
2192 /* Performance counters for the Job Manager */
2193 "",
2194 "",
2195 "",
2196 "",
2197 "THEx_MESSAGES_SENT",
2198 "THEx_MESSAGES_RECEIVED",
2199 "THEx_GPU_ACTIVE",
2200 "THEx_IRQ_ACTIVE",
2201 "THEx_JS0_JOBS",
2202 "THEx_JS0_TASKS",
2203 "THEx_JS0_ACTIVE",
2204 "",
2205 "THEx_JS0_WAIT_READ",
2206 "THEx_JS0_WAIT_ISSUE",
2207 "THEx_JS0_WAIT_DEPEND",
2208 "THEx_JS0_WAIT_FINISH",
2209 "THEx_JS1_JOBS",
2210 "THEx_JS1_TASKS",
2211 "THEx_JS1_ACTIVE",
2212 "",
2213 "THEx_JS1_WAIT_READ",
2214 "THEx_JS1_WAIT_ISSUE",
2215 "THEx_JS1_WAIT_DEPEND",
2216 "THEx_JS1_WAIT_FINISH",
2217 "THEx_JS2_JOBS",
2218 "THEx_JS2_TASKS",
2219 "THEx_JS2_ACTIVE",
2220 "",
2221 "THEx_JS2_WAIT_READ",
2222 "THEx_JS2_WAIT_ISSUE",
2223 "THEx_JS2_WAIT_DEPEND",
2224 "THEx_JS2_WAIT_FINISH",
2225 "",
2226 "",
2227 "",
2228 "",
2229 "",
2230 "",
2231 "",
2232 "",
2233 "",
2234 "",
2235 "",
2236 "",
2237 "",
2238 "",
2239 "",
2240 "",
2241 "",
2242 "",
2243 "",
2244 "",
2245 "",
2246 "",
2247 "",
2248 "",
2249 "",
2250 "",
2251 "",
2252 "",
2253 "",
2254 "",
2255 "",
2256 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002257
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002258 /* Performance counters for the Tiler */
2259 "",
2260 "",
2261 "",
2262 "",
2263 "THEx_TILER_ACTIVE",
2264 "THEx_JOBS_PROCESSED",
2265 "THEx_TRIANGLES",
2266 "THEx_LINES",
2267 "THEx_POINTS",
2268 "THEx_FRONT_FACING",
2269 "THEx_BACK_FACING",
2270 "THEx_PRIM_VISIBLE",
2271 "THEx_PRIM_CULLED",
2272 "THEx_PRIM_CLIPPED",
2273 "THEx_PRIM_SAT_CULLED",
2274 "",
2275 "",
2276 "THEx_BUS_READ",
2277 "",
2278 "THEx_BUS_WRITE",
2279 "THEx_LOADING_DESC",
2280 "THEx_IDVS_POS_SHAD_REQ",
2281 "THEx_IDVS_POS_SHAD_WAIT",
2282 "THEx_IDVS_POS_SHAD_STALL",
2283 "THEx_IDVS_POS_FIFO_FULL",
2284 "THEx_PREFETCH_STALL",
2285 "THEx_VCACHE_HIT",
2286 "THEx_VCACHE_MISS",
2287 "THEx_VCACHE_LINE_WAIT",
2288 "THEx_VFETCH_POS_READ_WAIT",
2289 "THEx_VFETCH_VERTEX_WAIT",
2290 "THEx_VFETCH_STALL",
2291 "THEx_PRIMASSY_STALL",
2292 "THEx_BBOX_GEN_STALL",
2293 "THEx_IDVS_VBU_HIT",
2294 "THEx_IDVS_VBU_MISS",
2295 "THEx_IDVS_VBU_LINE_DEALLOCATE",
2296 "THEx_IDVS_VAR_SHAD_REQ",
2297 "THEx_IDVS_VAR_SHAD_STALL",
2298 "THEx_BINNER_STALL",
2299 "THEx_ITER_STALL",
2300 "THEx_COMPRESS_MISS",
2301 "THEx_COMPRESS_STALL",
2302 "THEx_PCACHE_HIT",
2303 "THEx_PCACHE_MISS",
2304 "THEx_PCACHE_MISS_STALL",
2305 "THEx_PCACHE_EVICT_STALL",
2306 "THEx_PMGR_PTR_WR_STALL",
2307 "THEx_PMGR_PTR_RD_STALL",
2308 "THEx_PMGR_CMD_WR_STALL",
2309 "THEx_WRBUF_ACTIVE",
2310 "THEx_WRBUF_HIT",
2311 "THEx_WRBUF_MISS",
2312 "THEx_WRBUF_NO_FREE_LINE_STALL",
2313 "THEx_WRBUF_NO_AXI_ID_STALL",
2314 "THEx_WRBUF_AXI_STALL",
2315 "",
2316 "",
2317 "",
2318 "THEx_UTLB_TRANS",
2319 "THEx_UTLB_TRANS_HIT",
2320 "THEx_UTLB_TRANS_STALL",
2321 "THEx_UTLB_TRANS_MISS_DELAY",
2322 "THEx_UTLB_MMU_REQ",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002323
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002324 /* Performance counters for the Shader Core */
2325 "",
2326 "",
2327 "",
2328 "",
2329 "THEx_FRAG_ACTIVE",
2330 "THEx_FRAG_PRIMITIVES",
2331 "THEx_FRAG_PRIM_RAST",
2332 "THEx_FRAG_FPK_ACTIVE",
2333 "THEx_FRAG_STARVING",
2334 "THEx_FRAG_WARPS",
2335 "THEx_FRAG_PARTIAL_WARPS",
2336 "THEx_FRAG_QUADS_RAST",
2337 "THEx_FRAG_QUADS_EZS_TEST",
2338 "THEx_FRAG_QUADS_EZS_UPDATE",
2339 "THEx_FRAG_QUADS_EZS_KILL",
2340 "THEx_FRAG_LZS_TEST",
2341 "THEx_FRAG_LZS_KILL",
2342 "",
2343 "THEx_FRAG_PTILES",
2344 "THEx_FRAG_TRANS_ELIM",
2345 "THEx_QUAD_FPK_KILLER",
2346 "",
2347 "THEx_COMPUTE_ACTIVE",
2348 "THEx_COMPUTE_TASKS",
2349 "THEx_COMPUTE_WARPS",
2350 "THEx_COMPUTE_STARVING",
2351 "THEx_EXEC_CORE_ACTIVE",
2352 "THEx_EXEC_ACTIVE",
2353 "THEx_EXEC_INSTR_COUNT",
2354 "THEx_EXEC_INSTR_DIVERGED",
2355 "THEx_EXEC_INSTR_STARVING",
2356 "THEx_ARITH_INSTR_SINGLE_FMA",
2357 "THEx_ARITH_INSTR_DOUBLE",
2358 "THEx_ARITH_INSTR_MSG",
2359 "THEx_ARITH_INSTR_MSG_ONLY",
2360 "THEx_TEX_INSTR",
2361 "THEx_TEX_INSTR_MIPMAP",
2362 "THEx_TEX_INSTR_COMPRESSED",
2363 "THEx_TEX_INSTR_3D",
2364 "THEx_TEX_INSTR_TRILINEAR",
2365 "THEx_TEX_COORD_ISSUE",
2366 "THEx_TEX_COORD_STALL",
2367 "THEx_TEX_STARVE_CACHE",
2368 "THEx_TEX_STARVE_FILTER",
2369 "THEx_LS_MEM_READ_FULL",
2370 "THEx_LS_MEM_READ_SHORT",
2371 "THEx_LS_MEM_WRITE_FULL",
2372 "THEx_LS_MEM_WRITE_SHORT",
2373 "THEx_LS_MEM_ATOMIC",
2374 "THEx_VARY_INSTR",
2375 "THEx_VARY_SLOT_32",
2376 "THEx_VARY_SLOT_16",
2377 "THEx_ATTR_INSTR",
2378 "THEx_ARITH_INSTR_FP_MUL",
2379 "THEx_BEATS_RD_FTC",
2380 "THEx_BEATS_RD_FTC_EXT",
2381 "THEx_BEATS_RD_LSC",
2382 "THEx_BEATS_RD_LSC_EXT",
2383 "THEx_BEATS_RD_TEX",
2384 "THEx_BEATS_RD_TEX_EXT",
2385 "THEx_BEATS_RD_OTHER",
2386 "THEx_BEATS_WR_LSC",
2387 "THEx_BEATS_WR_TIB",
2388 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002389
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002390 /* Performance counters for the Memory System */
2391 "",
2392 "",
2393 "",
2394 "",
2395 "THEx_MMU_REQUESTS",
2396 "",
2397 "",
2398 "",
2399 "",
2400 "",
2401 "",
2402 "",
2403 "",
2404 "",
2405 "",
2406 "",
2407 "THEx_L2_RD_MSG_IN",
2408 "THEx_L2_RD_MSG_IN_STALL",
2409 "THEx_L2_WR_MSG_IN",
2410 "THEx_L2_WR_MSG_IN_STALL",
2411 "THEx_L2_SNP_MSG_IN",
2412 "THEx_L2_SNP_MSG_IN_STALL",
2413 "THEx_L2_RD_MSG_OUT",
2414 "THEx_L2_RD_MSG_OUT_STALL",
2415 "THEx_L2_WR_MSG_OUT",
2416 "THEx_L2_ANY_LOOKUP",
2417 "THEx_L2_READ_LOOKUP",
2418 "THEx_L2_WRITE_LOOKUP",
2419 "THEx_L2_EXT_SNOOP_LOOKUP",
2420 "THEx_L2_EXT_READ",
2421 "THEx_L2_EXT_READ_NOSNP",
2422 "THEx_L2_EXT_READ_UNIQUE",
2423 "THEx_L2_EXT_READ_BEATS",
2424 "THEx_L2_EXT_AR_STALL",
2425 "THEx_L2_EXT_AR_CNT_Q1",
2426 "THEx_L2_EXT_AR_CNT_Q2",
2427 "THEx_L2_EXT_AR_CNT_Q3",
2428 "THEx_L2_EXT_RRESP_0_127",
2429 "THEx_L2_EXT_RRESP_128_191",
2430 "THEx_L2_EXT_RRESP_192_255",
2431 "THEx_L2_EXT_RRESP_256_319",
2432 "THEx_L2_EXT_RRESP_320_383",
2433 "THEx_L2_EXT_WRITE",
2434 "THEx_L2_EXT_WRITE_NOSNP_FULL",
2435 "THEx_L2_EXT_WRITE_NOSNP_PTL",
2436 "THEx_L2_EXT_WRITE_SNP_FULL",
2437 "THEx_L2_EXT_WRITE_SNP_PTL",
2438 "THEx_L2_EXT_WRITE_BEATS",
2439 "THEx_L2_EXT_W_STALL",
2440 "THEx_L2_EXT_AW_CNT_Q1",
2441 "THEx_L2_EXT_AW_CNT_Q2",
2442 "THEx_L2_EXT_AW_CNT_Q3",
2443 "THEx_L2_EXT_SNOOP",
2444 "THEx_L2_EXT_SNOOP_STALL",
2445 "THEx_L2_EXT_SNOOP_RESP_CLEAN",
2446 "THEx_L2_EXT_SNOOP_RESP_DATA",
2447 "THEx_L2_EXT_SNOOP_INTERNAL",
2448 "",
2449 "",
2450 "",
2451 "",
2452 "",
2453 "",
2454 "",
2455};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002456
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002457static const char *const hardware_counters_mali_tMIx[] =
2458{
2459 /* Performance counters for the Job Manager */
2460 "",
2461 "",
2462 "",
2463 "",
2464 "TMIx_MESSAGES_SENT",
2465 "TMIx_MESSAGES_RECEIVED",
2466 "TMIx_GPU_ACTIVE",
2467 "TMIx_IRQ_ACTIVE",
2468 "TMIx_JS0_JOBS",
2469 "TMIx_JS0_TASKS",
2470 "TMIx_JS0_ACTIVE",
2471 "",
2472 "TMIx_JS0_WAIT_READ",
2473 "TMIx_JS0_WAIT_ISSUE",
2474 "TMIx_JS0_WAIT_DEPEND",
2475 "TMIx_JS0_WAIT_FINISH",
2476 "TMIx_JS1_JOBS",
2477 "TMIx_JS1_TASKS",
2478 "TMIx_JS1_ACTIVE",
2479 "",
2480 "TMIx_JS1_WAIT_READ",
2481 "TMIx_JS1_WAIT_ISSUE",
2482 "TMIx_JS1_WAIT_DEPEND",
2483 "TMIx_JS1_WAIT_FINISH",
2484 "TMIx_JS2_JOBS",
2485 "TMIx_JS2_TASKS",
2486 "TMIx_JS2_ACTIVE",
2487 "",
2488 "TMIx_JS2_WAIT_READ",
2489 "TMIx_JS2_WAIT_ISSUE",
2490 "TMIx_JS2_WAIT_DEPEND",
2491 "TMIx_JS2_WAIT_FINISH",
2492 "",
2493 "",
2494 "",
2495 "",
2496 "",
2497 "",
2498 "",
2499 "",
2500 "",
2501 "",
2502 "",
2503 "",
2504 "",
2505 "",
2506 "",
2507 "",
2508 "",
2509 "",
2510 "",
2511 "",
2512 "",
2513 "",
2514 "",
2515 "",
2516 "",
2517 "",
2518 "",
2519 "",
2520 "",
2521 "",
2522 "",
2523 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002524
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002525 /* Performance counters for the Tiler */
2526 "",
2527 "",
2528 "",
2529 "",
2530 "TMIx_TILER_ACTIVE",
2531 "TMIx_JOBS_PROCESSED",
2532 "TMIx_TRIANGLES",
2533 "TMIx_LINES",
2534 "TMIx_POINTS",
2535 "TMIx_FRONT_FACING",
2536 "TMIx_BACK_FACING",
2537 "TMIx_PRIM_VISIBLE",
2538 "TMIx_PRIM_CULLED",
2539 "TMIx_PRIM_CLIPPED",
2540 "TMIx_PRIM_SAT_CULLED",
2541 "",
2542 "",
2543 "TMIx_BUS_READ",
2544 "",
2545 "TMIx_BUS_WRITE",
2546 "TMIx_LOADING_DESC",
2547 "TMIx_IDVS_POS_SHAD_REQ",
2548 "TMIx_IDVS_POS_SHAD_WAIT",
2549 "TMIx_IDVS_POS_SHAD_STALL",
2550 "TMIx_IDVS_POS_FIFO_FULL",
2551 "TMIx_PREFETCH_STALL",
2552 "TMIx_VCACHE_HIT",
2553 "TMIx_VCACHE_MISS",
2554 "TMIx_VCACHE_LINE_WAIT",
2555 "TMIx_VFETCH_POS_READ_WAIT",
2556 "TMIx_VFETCH_VERTEX_WAIT",
2557 "TMIx_VFETCH_STALL",
2558 "TMIx_PRIMASSY_STALL",
2559 "TMIx_BBOX_GEN_STALL",
2560 "TMIx_IDVS_VBU_HIT",
2561 "TMIx_IDVS_VBU_MISS",
2562 "TMIx_IDVS_VBU_LINE_DEALLOCATE",
2563 "TMIx_IDVS_VAR_SHAD_REQ",
2564 "TMIx_IDVS_VAR_SHAD_STALL",
2565 "TMIx_BINNER_STALL",
2566 "TMIx_ITER_STALL",
2567 "TMIx_COMPRESS_MISS",
2568 "TMIx_COMPRESS_STALL",
2569 "TMIx_PCACHE_HIT",
2570 "TMIx_PCACHE_MISS",
2571 "TMIx_PCACHE_MISS_STALL",
2572 "TMIx_PCACHE_EVICT_STALL",
2573 "TMIx_PMGR_PTR_WR_STALL",
2574 "TMIx_PMGR_PTR_RD_STALL",
2575 "TMIx_PMGR_CMD_WR_STALL",
2576 "TMIx_WRBUF_ACTIVE",
2577 "TMIx_WRBUF_HIT",
2578 "TMIx_WRBUF_MISS",
2579 "TMIx_WRBUF_NO_FREE_LINE_STALL",
2580 "TMIx_WRBUF_NO_AXI_ID_STALL",
2581 "TMIx_WRBUF_AXI_STALL",
2582 "",
2583 "",
2584 "",
2585 "TMIx_UTLB_TRANS",
2586 "TMIx_UTLB_TRANS_HIT",
2587 "TMIx_UTLB_TRANS_STALL",
2588 "TMIx_UTLB_TRANS_MISS_DELAY",
2589 "TMIx_UTLB_MMU_REQ",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002590
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002591 /* Performance counters for the Shader Core */
2592 "",
2593 "",
2594 "",
2595 "",
2596 "TMIx_FRAG_ACTIVE",
2597 "TMIx_FRAG_PRIMITIVES",
2598 "TMIx_FRAG_PRIM_RAST",
2599 "TMIx_FRAG_FPK_ACTIVE",
2600 "TMIx_FRAG_STARVING",
2601 "TMIx_FRAG_WARPS",
2602 "TMIx_FRAG_PARTIAL_WARPS",
2603 "TMIx_FRAG_QUADS_RAST",
2604 "TMIx_FRAG_QUADS_EZS_TEST",
2605 "TMIx_FRAG_QUADS_EZS_UPDATE",
2606 "TMIx_FRAG_QUADS_EZS_KILL",
2607 "TMIx_FRAG_LZS_TEST",
2608 "TMIx_FRAG_LZS_KILL",
2609 "",
2610 "TMIx_FRAG_PTILES",
2611 "TMIx_FRAG_TRANS_ELIM",
2612 "TMIx_QUAD_FPK_KILLER",
2613 "",
2614 "TMIx_COMPUTE_ACTIVE",
2615 "TMIx_COMPUTE_TASKS",
2616 "TMIx_COMPUTE_WARPS",
2617 "TMIx_COMPUTE_STARVING",
2618 "TMIx_EXEC_CORE_ACTIVE",
2619 "TMIx_EXEC_ACTIVE",
2620 "TMIx_EXEC_INSTR_COUNT",
2621 "TMIx_EXEC_INSTR_DIVERGED",
2622 "TMIx_EXEC_INSTR_STARVING",
2623 "TMIx_ARITH_INSTR_SINGLE_FMA",
2624 "TMIx_ARITH_INSTR_DOUBLE",
2625 "TMIx_ARITH_INSTR_MSG",
2626 "TMIx_ARITH_INSTR_MSG_ONLY",
2627 "TMIx_TEX_INSTR",
2628 "TMIx_TEX_INSTR_MIPMAP",
2629 "TMIx_TEX_INSTR_COMPRESSED",
2630 "TMIx_TEX_INSTR_3D",
2631 "TMIx_TEX_INSTR_TRILINEAR",
2632 "TMIx_TEX_COORD_ISSUE",
2633 "TMIx_TEX_COORD_STALL",
2634 "TMIx_TEX_STARVE_CACHE",
2635 "TMIx_TEX_STARVE_FILTER",
2636 "TMIx_LS_MEM_READ_FULL",
2637 "TMIx_LS_MEM_READ_SHORT",
2638 "TMIx_LS_MEM_WRITE_FULL",
2639 "TMIx_LS_MEM_WRITE_SHORT",
2640 "TMIx_LS_MEM_ATOMIC",
2641 "TMIx_VARY_INSTR",
2642 "TMIx_VARY_SLOT_32",
2643 "TMIx_VARY_SLOT_16",
2644 "TMIx_ATTR_INSTR",
2645 "TMIx_ARITH_INSTR_FP_MUL",
2646 "TMIx_BEATS_RD_FTC",
2647 "TMIx_BEATS_RD_FTC_EXT",
2648 "TMIx_BEATS_RD_LSC",
2649 "TMIx_BEATS_RD_LSC_EXT",
2650 "TMIx_BEATS_RD_TEX",
2651 "TMIx_BEATS_RD_TEX_EXT",
2652 "TMIx_BEATS_RD_OTHER",
2653 "TMIx_BEATS_WR_LSC",
2654 "TMIx_BEATS_WR_TIB",
2655 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002656
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002657 /* Performance counters for the Memory System */
2658 "",
2659 "",
2660 "",
2661 "",
2662 "TMIx_MMU_REQUESTS",
2663 "",
2664 "",
2665 "",
2666 "",
2667 "",
2668 "",
2669 "",
2670 "",
2671 "",
2672 "",
2673 "",
2674 "TMIx_L2_RD_MSG_IN",
2675 "TMIx_L2_RD_MSG_IN_STALL",
2676 "TMIx_L2_WR_MSG_IN",
2677 "TMIx_L2_WR_MSG_IN_STALL",
2678 "TMIx_L2_SNP_MSG_IN",
2679 "TMIx_L2_SNP_MSG_IN_STALL",
2680 "TMIx_L2_RD_MSG_OUT",
2681 "TMIx_L2_RD_MSG_OUT_STALL",
2682 "TMIx_L2_WR_MSG_OUT",
2683 "TMIx_L2_ANY_LOOKUP",
2684 "TMIx_L2_READ_LOOKUP",
2685 "TMIx_L2_WRITE_LOOKUP",
2686 "TMIx_L2_EXT_SNOOP_LOOKUP",
2687 "TMIx_L2_EXT_READ",
2688 "TMIx_L2_EXT_READ_NOSNP",
2689 "TMIx_L2_EXT_READ_UNIQUE",
2690 "TMIx_L2_EXT_READ_BEATS",
2691 "TMIx_L2_EXT_AR_STALL",
2692 "TMIx_L2_EXT_AR_CNT_Q1",
2693 "TMIx_L2_EXT_AR_CNT_Q2",
2694 "TMIx_L2_EXT_AR_CNT_Q3",
2695 "TMIx_L2_EXT_RRESP_0_127",
2696 "TMIx_L2_EXT_RRESP_128_191",
2697 "TMIx_L2_EXT_RRESP_192_255",
2698 "TMIx_L2_EXT_RRESP_256_319",
2699 "TMIx_L2_EXT_RRESP_320_383",
2700 "TMIx_L2_EXT_WRITE",
2701 "TMIx_L2_EXT_WRITE_NOSNP_FULL",
2702 "TMIx_L2_EXT_WRITE_NOSNP_PTL",
2703 "TMIx_L2_EXT_WRITE_SNP_FULL",
2704 "TMIx_L2_EXT_WRITE_SNP_PTL",
2705 "TMIx_L2_EXT_WRITE_BEATS",
2706 "TMIx_L2_EXT_W_STALL",
2707 "TMIx_L2_EXT_AW_CNT_Q1",
2708 "TMIx_L2_EXT_AW_CNT_Q2",
2709 "TMIx_L2_EXT_AW_CNT_Q3",
2710 "TMIx_L2_EXT_SNOOP",
2711 "TMIx_L2_EXT_SNOOP_STALL",
2712 "TMIx_L2_EXT_SNOOP_RESP_CLEAN",
2713 "TMIx_L2_EXT_SNOOP_RESP_DATA",
2714 "TMIx_L2_EXT_SNOOP_INTERNAL",
2715 "",
2716 "",
2717 "",
2718 "",
2719 "",
2720 "",
2721 "",
2722};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002723
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002724static const char *const hardware_counters_mali_tSIx[] =
2725{
2726 /* Performance counters for the Job Manager */
2727 "",
2728 "",
2729 "",
2730 "",
2731 "TSIx_MESSAGES_SENT",
2732 "TSIx_MESSAGES_RECEIVED",
2733 "TSIx_GPU_ACTIVE",
2734 "TSIx_IRQ_ACTIVE",
2735 "TSIx_JS0_JOBS",
2736 "TSIx_JS0_TASKS",
2737 "TSIx_JS0_ACTIVE",
2738 "",
2739 "TSIx_JS0_WAIT_READ",
2740 "TSIx_JS0_WAIT_ISSUE",
2741 "TSIx_JS0_WAIT_DEPEND",
2742 "TSIx_JS0_WAIT_FINISH",
2743 "TSIx_JS1_JOBS",
2744 "TSIx_JS1_TASKS",
2745 "TSIx_JS1_ACTIVE",
2746 "",
2747 "TSIx_JS1_WAIT_READ",
2748 "TSIx_JS1_WAIT_ISSUE",
2749 "TSIx_JS1_WAIT_DEPEND",
2750 "TSIx_JS1_WAIT_FINISH",
2751 "TSIx_JS2_JOBS",
2752 "TSIx_JS2_TASKS",
2753 "TSIx_JS2_ACTIVE",
2754 "",
2755 "TSIx_JS2_WAIT_READ",
2756 "TSIx_JS2_WAIT_ISSUE",
2757 "TSIx_JS2_WAIT_DEPEND",
2758 "TSIx_JS2_WAIT_FINISH",
2759 "",
2760 "",
2761 "",
2762 "",
2763 "",
2764 "",
2765 "",
2766 "",
2767 "",
2768 "",
2769 "",
2770 "",
2771 "",
2772 "",
2773 "",
2774 "",
2775 "",
2776 "",
2777 "",
2778 "",
2779 "",
2780 "",
2781 "",
2782 "",
2783 "",
2784 "",
2785 "",
2786 "",
2787 "",
2788 "",
2789 "",
2790 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002791
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002792 /* Performance counters for the Tiler */
2793 "",
2794 "",
2795 "",
2796 "",
2797 "TSIx_TILER_ACTIVE",
2798 "TSIx_JOBS_PROCESSED",
2799 "TSIx_TRIANGLES",
2800 "TSIx_LINES",
2801 "TSIx_POINTS",
2802 "TSIx_FRONT_FACING",
2803 "TSIx_BACK_FACING",
2804 "TSIx_PRIM_VISIBLE",
2805 "TSIx_PRIM_CULLED",
2806 "TSIx_PRIM_CLIPPED",
2807 "TSIx_PRIM_SAT_CULLED",
2808 "",
2809 "",
2810 "TSIx_BUS_READ",
2811 "",
2812 "TSIx_BUS_WRITE",
2813 "TSIx_LOADING_DESC",
2814 "",
2815 "",
2816 "",
2817 "",
2818 "TSIx_PREFETCH_STALL",
2819 "TSIx_VCACHE_HIT",
2820 "TSIx_VCACHE_MISS",
2821 "TSIx_VCACHE_LINE_WAIT",
2822 "TSIx_VFETCH_POS_READ_WAIT",
2823 "TSIx_VFETCH_VERTEX_WAIT",
2824 "TSIx_VFETCH_STALL",
2825 "TSIx_PRIMASSY_STALL",
2826 "TSIx_BBOX_GEN_STALL",
2827 "",
2828 "",
2829 "",
2830 "",
2831 "",
2832 "TSIx_BINNER_STALL",
2833 "TSIx_ITER_STALL",
2834 "TSIx_COMPRESS_MISS",
2835 "TSIx_COMPRESS_STALL",
2836 "TSIx_PCACHE_HIT",
2837 "TSIx_PCACHE_MISS",
2838 "TSIx_PCACHE_MISS_STALL",
2839 "TSIx_PCACHE_EVICT_STALL",
2840 "TSIx_PMGR_PTR_WR_STALL",
2841 "TSIx_PMGR_PTR_RD_STALL",
2842 "TSIx_PMGR_CMD_WR_STALL",
2843 "TSIx_WRBUF_ACTIVE",
2844 "TSIx_WRBUF_HIT",
2845 "TSIx_WRBUF_MISS",
2846 "TSIx_WRBUF_NO_FREE_LINE_STALL",
2847 "TSIx_WRBUF_NO_AXI_ID_STALL",
2848 "TSIx_WRBUF_AXI_STALL",
2849 "",
2850 "",
2851 "",
2852 "TSIx_UTLB_TRANS",
2853 "TSIx_UTLB_TRANS_HIT",
2854 "TSIx_UTLB_TRANS_STALL",
2855 "TSIx_UTLB_TRANS_MISS_DELAY",
2856 "TSIx_UTLB_MMU_REQ",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002857
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002858 /* Performance counters for the Shader Core */
2859 "",
2860 "",
2861 "",
2862 "",
2863 "TSIx_FRAG_ACTIVE",
2864 "TSIx_FRAG_PRIMITIVES",
2865 "TSIx_FRAG_PRIM_RAST",
2866 "TSIx_FRAG_FPK_ACTIVE",
2867 "TSIx_FRAG_STARVING",
2868 "TSIx_FRAG_WARPS",
2869 "TSIx_FRAG_PARTIAL_WARPS",
2870 "TSIx_FRAG_QUADS_RAST",
2871 "TSIx_FRAG_QUADS_EZS_TEST",
2872 "TSIx_FRAG_QUADS_EZS_UPDATE",
2873 "TSIx_FRAG_QUADS_EZS_KILL",
2874 "TSIx_FRAG_LZS_TEST",
2875 "TSIx_FRAG_LZS_KILL",
2876 "",
2877 "TSIx_FRAG_PTILES",
2878 "TSIx_FRAG_TRANS_ELIM",
2879 "TSIx_QUAD_FPK_KILLER",
2880 "",
2881 "TSIx_COMPUTE_ACTIVE",
2882 "TSIx_COMPUTE_TASKS",
2883 "TSIx_COMPUTE_WARPS",
2884 "TSIx_COMPUTE_STARVING",
2885 "TSIx_EXEC_CORE_ACTIVE",
2886 "TSIx_EXEC_ACTIVE",
2887 "TSIx_EXEC_INSTR_COUNT",
2888 "TSIx_EXEC_INSTR_DIVERGED",
2889 "TSIx_EXEC_INSTR_STARVING",
2890 "TSIx_ARITH_INSTR_SINGLE_FMA",
2891 "TSIx_ARITH_INSTR_DOUBLE",
2892 "TSIx_ARITH_INSTR_MSG",
2893 "TSIx_ARITH_INSTR_MSG_ONLY",
2894 "TSIx_TEX_INSTR",
2895 "TSIx_TEX_INSTR_MIPMAP",
2896 "TSIx_TEX_INSTR_COMPRESSED",
2897 "TSIx_TEX_INSTR_3D",
2898 "TSIx_TEX_INSTR_TRILINEAR",
2899 "TSIx_TEX_COORD_ISSUE",
2900 "TSIx_TEX_COORD_STALL",
2901 "TSIx_TEX_STARVE_CACHE",
2902 "TSIx_TEX_STARVE_FILTER",
2903 "TSIx_LS_MEM_READ_FULL",
2904 "TSIx_LS_MEM_READ_SHORT",
2905 "TSIx_LS_MEM_WRITE_FULL",
2906 "TSIx_LS_MEM_WRITE_SHORT",
2907 "TSIx_LS_MEM_ATOMIC",
2908 "TSIx_VARY_INSTR",
2909 "TSIx_VARY_SLOT_32",
2910 "TSIx_VARY_SLOT_16",
2911 "TSIx_ATTR_INSTR",
2912 "TSIx_ARITH_INSTR_FP_MUL",
2913 "TSIx_BEATS_RD_FTC",
2914 "TSIx_BEATS_RD_FTC_EXT",
2915 "TSIx_BEATS_RD_LSC",
2916 "TSIx_BEATS_RD_LSC_EXT",
2917 "TSIx_BEATS_RD_TEX",
2918 "TSIx_BEATS_RD_TEX_EXT",
2919 "TSIx_BEATS_RD_OTHER",
2920 "TSIx_BEATS_WR_LSC",
2921 "TSIx_BEATS_WR_TIB",
2922 "",
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002923
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002924 /* Performance counters for the Memory System */
2925 "",
2926 "",
2927 "",
2928 "",
2929 "TSIx_MMU_REQUESTS",
2930 "",
2931 "",
2932 "",
2933 "",
2934 "",
2935 "",
2936 "",
2937 "",
2938 "",
2939 "",
2940 "",
2941 "TSIx_L2_RD_MSG_IN",
2942 "TSIx_L2_RD_MSG_IN_STALL",
2943 "TSIx_L2_WR_MSG_IN",
2944 "TSIx_L2_WR_MSG_IN_STALL",
2945 "TSIx_L2_SNP_MSG_IN",
2946 "TSIx_L2_SNP_MSG_IN_STALL",
2947 "TSIx_L2_RD_MSG_OUT",
2948 "TSIx_L2_RD_MSG_OUT_STALL",
2949 "TSIx_L2_WR_MSG_OUT",
2950 "TSIx_L2_ANY_LOOKUP",
2951 "TSIx_L2_READ_LOOKUP",
2952 "TSIx_L2_WRITE_LOOKUP",
2953 "TSIx_L2_EXT_SNOOP_LOOKUP",
2954 "TSIx_L2_EXT_READ",
2955 "TSIx_L2_EXT_READ_NOSNP",
2956 "TSIx_L2_EXT_READ_UNIQUE",
2957 "TSIx_L2_EXT_READ_BEATS",
2958 "TSIx_L2_EXT_AR_STALL",
2959 "TSIx_L2_EXT_AR_CNT_Q1",
2960 "TSIx_L2_EXT_AR_CNT_Q2",
2961 "TSIx_L2_EXT_AR_CNT_Q3",
2962 "TSIx_L2_EXT_RRESP_0_127",
2963 "TSIx_L2_EXT_RRESP_128_191",
2964 "TSIx_L2_EXT_RRESP_192_255",
2965 "TSIx_L2_EXT_RRESP_256_319",
2966 "TSIx_L2_EXT_RRESP_320_383",
2967 "TSIx_L2_EXT_WRITE",
2968 "TSIx_L2_EXT_WRITE_NOSNP_FULL",
2969 "TSIx_L2_EXT_WRITE_NOSNP_PTL",
2970 "TSIx_L2_EXT_WRITE_SNP_FULL",
2971 "TSIx_L2_EXT_WRITE_SNP_PTL",
2972 "TSIx_L2_EXT_WRITE_BEATS",
2973 "TSIx_L2_EXT_W_STALL",
2974 "TSIx_L2_EXT_AW_CNT_Q1",
2975 "TSIx_L2_EXT_AW_CNT_Q2",
2976 "TSIx_L2_EXT_AW_CNT_Q3",
2977 "TSIx_L2_EXT_SNOOP",
2978 "TSIx_L2_EXT_SNOOP_STALL",
2979 "TSIx_L2_EXT_SNOOP_RESP_CLEAN",
2980 "TSIx_L2_EXT_SNOOP_RESP_DATA",
2981 "TSIx_L2_EXT_SNOOP_INTERNAL",
2982 "",
2983 "",
2984 "",
2985 "",
2986 "",
2987 "",
2988 "",
2989};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01002990
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00002991enum
2992{
2993 /* product id masks for old and new versions of the id field. NB: the T60x must be tested before anything else as it could exceptionally be
2994 * treated as a new style of id with produce code 0x6006 */
2995 PRODUCT_ID_MASK_OLD = 0xffff,
2996 PRODUCT_ID_MASK_NEW = 0xf00f,
2997 /* Old style product ids */
2998 PRODUCT_ID_T60X = 0x6956,
2999 PRODUCT_ID_T62X = 0x0620,
3000 PRODUCT_ID_T72X = 0x0720,
3001 PRODUCT_ID_T76X = 0x0750,
3002 PRODUCT_ID_T82X = 0x0820,
3003 PRODUCT_ID_T83X = 0x0830,
3004 PRODUCT_ID_T86X = 0x0860,
3005 PRODUCT_ID_TFRX = 0x0880,
3006 /* New style product ids */
3007 PRODUCT_ID_TMIX = 0x6000,
3008 PRODUCT_ID_THEX = 0x6001,
3009 PRODUCT_ID_TSIX = 0x7000
3010};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01003011
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00003012struct CounterMapping
3013{
3014 uint32_t product_mask;
3015 uint32_t product_id;
3016 const char *const *names_lut;
3017};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01003018
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00003019static const CounterMapping products[] =
3020{
3021 {
3022 PRODUCT_ID_MASK_OLD, PRODUCT_ID_T60X, hardware_counters_mali_t60x,
3023 },
3024 {
3025 PRODUCT_ID_MASK_OLD, PRODUCT_ID_T62X, hardware_counters_mali_t62x,
3026 },
3027 {
3028 PRODUCT_ID_MASK_OLD, PRODUCT_ID_T72X, hardware_counters_mali_t72x,
3029 },
3030 {
3031 PRODUCT_ID_MASK_OLD, PRODUCT_ID_T76X, hardware_counters_mali_t76x,
3032 },
3033 {
3034 PRODUCT_ID_MASK_OLD, PRODUCT_ID_T82X, hardware_counters_mali_t82x,
3035 },
3036 {
3037 PRODUCT_ID_MASK_OLD, PRODUCT_ID_T83X, hardware_counters_mali_t83x,
3038 },
3039 {
3040 PRODUCT_ID_MASK_OLD, PRODUCT_ID_T86X, hardware_counters_mali_t86x,
3041 },
3042 {
3043 PRODUCT_ID_MASK_OLD, PRODUCT_ID_TFRX, hardware_counters_mali_t88x,
3044 },
3045 {
3046 PRODUCT_ID_MASK_NEW, PRODUCT_ID_TMIX, hardware_counters_mali_tMIx,
3047 },
3048 {
3049 PRODUCT_ID_MASK_NEW, PRODUCT_ID_THEX, hardware_counters_mali_tHEx,
3050 },
3051 {
3052 PRODUCT_ID_MASK_NEW, PRODUCT_ID_TSIX, hardware_counters_mali_tSIx,
3053 },
3054};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01003055
Anthony Barbier88b8d8c2017-12-22 15:45:00 +00003056enum
3057{
3058 NUM_PRODUCTS = sizeof(products) / sizeof(products[0])
3059};
Moritz Pflanzer45634b42017-08-30 12:48:18 +01003060} // namespace mali_userspace
Alex Gildayc357c472018-03-21 13:54:09 +00003061
3062#endif /* DOXYGEN_SKIP_THIS */
3063
Moritz Pflanzer45634b42017-08-30 12:48:18 +01003064#endif /* ARM_COMPUTE_TEST_HWC_NAMES */