1#ifndef __NV50_QUERY_HW_METRIC_H__
2#define __NV50_QUERY_HW_METRIC_H__
3
4#include "nv50_query_hw.h"
5
6struct nv50_hw_metric_query {
7   struct nv50_hw_query base;
8   struct nv50_hw_query *queries[4];
9   unsigned num_queries;
10};
11
12static inline struct nv50_hw_metric_query *
13nv50_hw_metric_query(struct nv50_hw_query *hq)
14{
15   return (struct nv50_hw_metric_query *)hq;
16}
17
18/*
19 * Driver metrics queries:
20 */
21#define NV50_HW_METRIC_QUERY(i)   (PIPE_QUERY_DRIVER_SPECIFIC + 1024 + (i))
22#define NV50_HW_METRIC_QUERY_LAST  NV50_HW_METRIC_QUERY(NV50_HW_METRIC_QUERY_COUNT - 1)
23enum nv50_hw_metric_queries
24{
25    NV50_HW_METRIC_QUERY_BRANCH_EFFICIENCY = 0,
26    NV50_HW_METRIC_QUERY_COUNT
27};
28
29struct nv50_hw_query *
30nv50_hw_metric_create_query(struct nv50_context *, unsigned);
31int
32nv50_hw_metric_get_driver_query_info(struct nv50_screen *, unsigned,
33                                     struct pipe_driver_query_info *);
34#endif
35