1 #ifndef __NV50_QUERY_HW_METRIC_H__ 2 #define __NV50_QUERY_HW_METRIC_H__ 3 4 #include "nv50_query_hw.h" 5 6 struct nv50_hw_metric_query { 7 struct nv50_hw_query base; 8 struct nv50_hw_query *queries[4]; 9 unsigned num_queries; 10 }; 11 12 static inline struct nv50_hw_metric_query * nv50_hw_metric_query(struct nv50_hw_query * hq)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) 23 enum nv50_hw_metric_queries 24 { 25 NV50_HW_METRIC_QUERY_BRANCH_EFFICIENCY = 0, 26 NV50_HW_METRIC_QUERY_COUNT 27 }; 28 29 struct nv50_hw_query * 30 nv50_hw_metric_create_query(struct nv50_context *, unsigned); 31 int 32 nv50_hw_metric_get_driver_query_info(struct nv50_screen *, unsigned, 33 struct pipe_driver_query_info *); 34 #endif 35