[PATCH 1/2] etnaviv: move sw get_driver_query_info(..)
Wladimir J. van der Laan
laanwj at gmail.com
Tue Sep 19 16:46:34 UTC 2017
On Tue, Sep 19, 2017 at 06:16:04PM +0200, Christian Gmeiner wrote:
> 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 at gmail.com>
Reviewed-by: Wladimir J. van der Laan <laanwj at gmail.com>
> ---
> src/gallium/drivers/etnaviv/etnaviv_query.c | 15 +++------------
> src/gallium/drivers/etnaviv/etnaviv_query_sw.c | 21 +++++++++++++++++++++
> 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 617e47562d..16adb8c21f 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 213c61f38b..90f4a65826 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 9de2bc60f9..f07d0f5915 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
> --
> 2.13.5
>
> _______________________________________________
> etnaviv mailing list
> etnaviv at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/etnaviv
More information about the etnaviv
mailing list