summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2018-03-25 22:30:00 +0200
committerChristian Gmeiner <christian.gmeiner@gmail.com>2018-04-08 22:20:46 +0200
commit9ae86c13061f724a29cca9b8207b2bed210edaf9 (patch)
tree1f892adc252c8e8e29ef5b9427c97a207003d61c
parent69bebe06e3af70927472bd4bc59df6ee5bbe2e48 (diff)
etnaviv: support PA performance counters
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Tested-by: Chris Healy <cphealy@gmail.com>
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_query_pm.c42
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_query_pm.h7
2 files changed, 49 insertions, 0 deletions
diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_pm.c b/src/gallium/drivers/etnaviv/etnaviv_query_pm.c
index eaad925e608..8e83eb185cc 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_query_pm.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_query_pm.c
@@ -171,6 +171,48 @@ static const struct etna_perfmon_config query_config[] = {
.source = (const struct etna_perfmon_source[]) {
{ "SH", "PXL_TEXLD_INST_COUNTER" }
}
+ },
+ {
+ .name = "pa-input-vtx-counter",
+ .type = ETNA_QUERY_PA_INPUT_VTX_COUNTER,
+ .source = (const struct etna_perfmon_source[]) {
+ { "PA", "INPUT_VTX_COUNTER" }
+ }
+ },
+ {
+ .name = "pa-input-prim-counter",
+ .type = ETNA_QUERY_PA_INPUT_PRIM_COUNTER,
+ .source = (const struct etna_perfmon_source[]) {
+ { "PA", "INPUT_PRIM_COUNTER" }
+ }
+ },
+ {
+ .name = "pa-output-prim-counter",
+ .type = ETNA_QUERY_PA_OUTPUT_PRIM_COUNTER,
+ .source = (const struct etna_perfmon_source[]) {
+ { "PA", "OUTPUT_PRIM_COUNTER" }
+ }
+ },
+ {
+ .name = "pa-depth-clipped-counter",
+ .type = ETNA_QUERY_PA_DEPTH_CLIPPED_COUNTER,
+ .source = (const struct etna_perfmon_source[]) {
+ { "PA", "DEPTH_CLIPPED_COUNTER" }
+ }
+ },
+ {
+ .name = "pa-trivial-rejected-counter",
+ .type = ETNA_QUERY_PA_TRIVIAL_REJECTED_COUNTER,
+ .source = (const struct etna_perfmon_source[]) {
+ { "PA", "TRIVIAL_REJECTED_COUNTER" }
+ }
+ },
+ {
+ .name = "pa-culled-counter",
+ .type = ETNA_QUERY_PA_CULLED_COUNTER,
+ .source = (const struct etna_perfmon_source[]) {
+ { "PA", "CULLED_COUNTER" }
+ }
}
};
diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_pm.h b/src/gallium/drivers/etnaviv/etnaviv_query_pm.h
index b5e7fe5ad35..00fea71f23b 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_query_pm.h
+++ b/src/gallium/drivers/etnaviv/etnaviv_query_pm.h
@@ -55,6 +55,13 @@ struct etna_screen;
#define ETNA_QUERY_SH_PXL_BRANCH_INST_COUNTER (ETNA_PM_QUERY_BASE + 17)
#define ETNA_QUERY_SH_PXL_TEXLD_INST_COUNTER (ETNA_PM_QUERY_BASE + 18)
+#define ETNA_QUERY_PA_INPUT_VTX_COUNTER (ETNA_PM_QUERY_BASE + 19)
+#define ETNA_QUERY_PA_INPUT_PRIM_COUNTER (ETNA_PM_QUERY_BASE + 20)
+#define ETNA_QUERY_PA_OUTPUT_PRIM_COUNTER (ETNA_PM_QUERY_BASE + 21)
+#define ETNA_QUERY_PA_DEPTH_CLIPPED_COUNTER (ETNA_PM_QUERY_BASE + 22)
+#define ETNA_QUERY_PA_TRIVIAL_REJECTED_COUNTER (ETNA_PM_QUERY_BASE + 23)
+#define ETNA_QUERY_PA_CULLED_COUNTER (ETNA_PM_QUERY_BASE + 24)
+
struct etna_pm_query {
struct etna_query base;
struct etna_perfmon_signal *signal;