etnaviv: support HI performance counters
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Sun, 25 Mar 2018 20:29:57 +0000 (22:29 +0200)
committerChristian Gmeiner <christian.gmeiner@gmail.com>
Sun, 8 Apr 2018 20:20:32 +0000 (22:20 +0200)
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Chris Healy <cphealy@gmail.com>
src/gallium/drivers/etnaviv/etnaviv_query_pm.c
src/gallium/drivers/etnaviv/etnaviv_query_pm.h

index 2b09e5dac148faababb7fcfb8bd6f0fee7fc1d26..2feca9d1dd90d4aab99d624a24012c66f2c9afe7 100644 (file)
@@ -46,6 +46,41 @@ struct etna_perfmon_config
 };
 
 static const struct etna_perfmon_config query_config[] = {
+   {
+      .name = "hi-total-cyles",
+      .type = ETNA_QUERY_HI_TOTAL_CYCLES,
+      .source = (const struct etna_perfmon_source[]) {
+         { "HI", "TOTAL_CYCLES" }
+      }
+   },
+   {
+      .name = "hi-idle-cyles",
+      .type = ETNA_QUERY_HI_IDLE_CYCLES,
+      .source = (const struct etna_perfmon_source[]) {
+         { "HI", "IDLE_CYCLES" }
+      }
+   },
+   {
+      .name = "hi-axi-cycles-read-request-stalled",
+      .type = ETNA_QUERY_HI_AXI_CYCLES_READ_REQUEST_STALLED,
+      .source = (const struct etna_perfmon_source[]) {
+         { "HI", "AXI_CYCLES_READ_REQUEST_STALLED" }
+      }
+   },
+   {
+      .name = "hi-axi-cycles-write-request-stalled",
+      .type = ETNA_QUERY_HI_AXI_CYCLES_WRITE_REQUEST_STALLED,
+      .source = (const struct etna_perfmon_source[]) {
+         { "HI", "AXI_CYCLES_WRITE_REQUEST_STALLED" }
+      }
+   },
+   {
+      .name = "hi-axi-cycles-write-data-stalled",
+      .type = ETNA_QUERY_HI_AXI_CYCLES_WRITE_DATA_STALLED,
+      .source = (const struct etna_perfmon_source[]) {
+         { "HI", "AXI_CYCLES_WRITE_DATA_STALLED" }
+      }
+   }
 };
 
 static const struct etna_perfmon_config *
index 3d8cf1419bd3e245ec70e395ab9f551401955786..ce823cf3bfc90a1eff374f8618a8eda0ba09716b 100644 (file)
 
 struct etna_screen;
 
+#define ETNA_QUERY_HI_TOTAL_CYCLES                       (ETNA_PM_QUERY_BASE + 0)
+#define ETNA_QUERY_HI_IDLE_CYCLES                        (ETNA_PM_QUERY_BASE + 1)
+#define ETNA_QUERY_HI_AXI_CYCLES_READ_REQUEST_STALLED    (ETNA_PM_QUERY_BASE + 2)
+#define ETNA_QUERY_HI_AXI_CYCLES_WRITE_REQUEST_STALLED   (ETNA_PM_QUERY_BASE + 3)
+#define ETNA_QUERY_HI_AXI_CYCLES_WRITE_DATA_STALLED      (ETNA_PM_QUERY_BASE + 4)
+
 struct etna_pm_query {
    struct etna_query base;
    struct etna_perfmon_signal *signal;