etnaviv: fix some pm query issues
authorLucas Stach <l.stach@pengutronix.de>
Fri, 31 May 2019 16:05:12 +0000 (18:05 +0200)
committerChristian Gmeiner <christian.gmeiner@gmail.com>
Fri, 14 Jun 2019 07:06:28 +0000 (09:06 +0200)
The offsets to read the query results were off-by-one, which causes the
counters to report bogus increasing values.

Also the counter result is u32, so we need to initialize the query type
to reflect that.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
src/gallium/drivers/etnaviv/etnaviv_query_pm.c

index ade0b9790c28d1656fdb82ece41007b8c8439a70..c63ed8304919dc27de981f875bf870bd638c5d0f 100644 (file)
@@ -485,9 +485,9 @@ etna_pm_query_get(struct etna_cmd_stream *stream, struct etna_query *q,
    assert(flags);
 
    if (flags == ETNA_PM_PROCESS_PRE)
-      offset = 2;
+      offset = 1;
    else
-      offset = 3;
+      offset = 2;
 
    struct etna_perf p = {
       .flags = flags,
@@ -639,6 +639,10 @@ etna_pm_get_driver_query_info(struct pipe_screen *pscreen, unsigned index,
    info->name = query_config[i].name;
    info->query_type = query_config[i].type;
    info->group_id = query_config[i].group_id;
+   info->type = PIPE_DRIVER_QUERY_TYPE_UINT;
+   info->result_type = PIPE_DRIVER_QUERY_RESULT_TYPE_AVERAGE;
+   info->max_value.u32 = 0;
+   info->flags = 0;
 
    return 1;
 }