summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorChristian Gmeiner <[email protected]>2017-09-19 18:16:04 +0200
committerChristian Gmeiner <[email protected]>2017-09-20 14:25:13 +0200
commita3d79946e5d815a40a448e7d473dd68b91d1c635 (patch)
tree28021ad4da270cb38049ae8e91342395a5e42fb7 /src/gallium
parent65a09f98ad1411982ce68de7a2d05942d608e674 (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')
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_query.c15
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_query_sw.c21
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_query_sw.h4
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