diff options
author | Christian Gmeiner <[email protected]> | 2017-09-19 18:16:04 +0200 |
---|---|---|
committer | Christian Gmeiner <[email protected]> | 2017-09-20 14:25:13 +0200 |
commit | a3d79946e5d815a40a448e7d473dd68b91d1c635 (patch) | |
tree | 28021ad4da270cb38049ae8e91342395a5e42fb7 /src/gallium/drivers | |
parent | 65a09f98ad1411982ce68de7a2d05942d608e674 (diff) |
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 <[email protected]>
Reviewed-by: Wladimir J. van der Laan <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/etnaviv/etnaviv_query.c | 15 | ||||
-rw-r--r-- | src/gallium/drivers/etnaviv/etnaviv_query_sw.c | 21 | ||||
-rw-r--r-- | src/gallium/drivers/etnaviv/etnaviv_query_sw.h | 4 |
3 files changed, 28 insertions, 12 deletions
diff --git a/src/gallium/drivers/etnaviv/etnaviv_query.c b/src/gallium/drivers/etnaviv/etnaviv_query.c index 617e47562d6..16adb8c21fc 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query.c +++ b/src/gallium/drivers/etnaviv/etnaviv_query.c @@ -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 diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_sw.c b/src/gallium/drivers/etnaviv/etnaviv_query_sw.c index 213c61f38b3..90f4a658261 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_sw.c +++ b/src/gallium/drivers/etnaviv/etnaviv_query_sw.c @@ -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; +} diff --git a/src/gallium/drivers/etnaviv/etnaviv_query_sw.h b/src/gallium/drivers/etnaviv/etnaviv_query_sw.h index 9de2bc60f9c..f07d0f5915d 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_query_sw.h +++ b/src/gallium/drivers/etnaviv/etnaviv_query_sw.h @@ -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 |