radeonsi/gfx9: add performance counters
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 10 Aug 2017 23:28:40 +0000 (01:28 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Tue, 22 Aug 2017 07:55:16 +0000 (09:55 +0200)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_perfcounter.c

index 531d3b74c6561d0cbada4da7f94e47f19a006003..50b8d1c6c3d266286d072d8318d9c15e2fe39f40 100644 (file)
@@ -403,6 +403,30 @@ static struct si_pc_block groups_VI[] = {
 
 };
 
+static struct si_pc_block groups_gfx9[] = {
+       { &cik_CB, 438, 4 },
+       { &cik_CPF, 32 },
+       { &cik_DB, 328, 4 },
+       { &cik_GRBM, 38 },
+       { &cik_GRBMSE, 16 },
+       { &cik_PA_SU, 292 },
+       { &cik_PA_SC, 491 },
+       { &cik_SPI, 196 },
+       { &cik_SQ, 374 },
+       { &cik_SX, 208 },
+       { &cik_TA, 119, 16 },
+       { &cik_TCA, 35, 2 },
+       { &cik_TCC, 256, 16 },
+       { &cik_TD, 57, 16 },
+       { &cik_TCP, 85, 16 },
+       { &cik_GDS, 121 },
+       { &cik_VGT, 148 },
+       { &cik_IA, 32 },
+       { &cik_WD, 58 },
+       { &cik_CPG, 59 },
+       { &cik_CPC, 35 },
+};
+
 static void si_pc_get_size(struct r600_perfcounter_block *group,
                        unsigned count, unsigned *selectors,
                        unsigned *num_select_dw, unsigned *num_read_dw)
@@ -671,8 +695,11 @@ void si_init_perfcounters(struct si_screen *screen)
                blocks = groups_VI;
                num_blocks = ARRAY_SIZE(groups_VI);
                break;
-       case SI:
        case GFX9:
+               blocks = groups_gfx9;
+               num_blocks = ARRAY_SIZE(groups_gfx9);
+               break;
+       case SI:
        default:
                return; /* not implemented */
        }