etnaviv: move sw get_driver_query_info(..)

This change makes etna_get_driver_query_info(..) more generic
and puts the knowledge of supported queries directly besides
the implementation.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com>
This commit is contained in:
Christian Gmeiner 2017-09-19 18:16:04 +02:00
parent 65a09f98ad
commit a3d79946e5
3 changed files with 28 additions and 12 deletions

View file

@ -81,21 +81,12 @@ static int
etna_get_driver_query_info(struct pipe_screen *pscreen, unsigned index,
struct pipe_driver_query_info *info)
{
struct pipe_driver_query_info list[] = {
{"prims-emitted", PIPE_QUERY_PRIMITIVES_EMITTED, { 0 }},
{"draw-calls", ETNA_QUERY_DRAW_CALLS, { 0 }},
{"rs-operations", ETNA_QUERY_RS_OPERATIONS, { 0 }},
};
int nr_sw_queries = etna_sw_get_driver_query_info(pscreen, 0, NULL);
if (!info)
return ARRAY_SIZE(list);
return nr_sw_queries;
if (index >= ARRAY_SIZE(list))
return 0;
*info = list[index];
return 1;
return etna_sw_get_driver_query_info(pscreen, index, info);
}
static void

View file

@ -124,3 +124,24 @@ etna_sw_create_query(struct etna_context *ctx, unsigned query_type)
return q;
}
int
etna_sw_get_driver_query_info(struct pipe_screen *pscreen, unsigned index,
struct pipe_driver_query_info *info)
{
static const struct pipe_driver_query_info list[] = {
{"prims-emitted", PIPE_QUERY_PRIMITIVES_EMITTED, { 0 }},
{"draw-calls", ETNA_QUERY_DRAW_CALLS, { 0 }},
{"rs-operations", ETNA_QUERY_RS_OPERATIONS, { 0 }},
};
if (!info)
return ARRAY_SIZE(list);
if (index >= ARRAY_SIZE(list))
return 0;
*info = list[index];
return 1;
}

View file

@ -44,4 +44,8 @@ etna_sw_query(struct etna_query *q)
struct etna_query *
etna_sw_create_query(struct etna_context *ctx, unsigned query_type);
int
etna_sw_get_driver_query_info(struct pipe_screen *pscreen, unsigned index,
struct pipe_driver_query_info *info);
#endif