| #ifndef __NVC0_QUERY_HW_SM_H__ |
| #define __NVC0_QUERY_HW_SM_H__ |
| |
| #include "nvc0_query_hw.h" |
| |
| struct nvc0_hw_sm_query { |
| struct nvc0_hw_query base; |
| uint8_t ctr[8]; |
| }; |
| |
| static inline struct nvc0_hw_sm_query * |
| nvc0_hw_sm_query(struct nvc0_hw_query *hq) |
| { |
| return (struct nvc0_hw_sm_query *)hq; |
| } |
| |
| /* |
| * Performance counter queries: |
| */ |
| #define NVC0_HW_SM_QUERY(i) (PIPE_QUERY_DRIVER_SPECIFIC + (i)) |
| #define NVC0_HW_SM_QUERY_LAST NVC0_HW_SM_QUERY(NVC0_HW_SM_QUERY_COUNT - 1) |
| enum nvc0_hw_sm_queries |
| { |
| NVC0_HW_SM_QUERY_ACTIVE_CTAS = 0, |
| NVC0_HW_SM_QUERY_ACTIVE_CYCLES, |
| NVC0_HW_SM_QUERY_ACTIVE_WARPS, |
| NVC0_HW_SM_QUERY_ATOM_CAS_COUNT, |
| NVC0_HW_SM_QUERY_ATOM_COUNT, |
| NVC0_HW_SM_QUERY_BRANCH, |
| NVC0_HW_SM_QUERY_DIVERGENT_BRANCH, |
| NVC0_HW_SM_QUERY_GLD_REQUEST, |
| NVC0_HW_SM_QUERY_GLD_MEM_DIV_REPLAY, |
| NVC0_HW_SM_QUERY_GLOBAL_ATOM_CAS, |
| NVC0_HW_SM_QUERY_GLOBAL_LD, |
| NVC0_HW_SM_QUERY_GLOBAL_ST, |
| NVC0_HW_SM_QUERY_GST_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_GST_MEM_DIV_REPLAY, |
| NVC0_HW_SM_QUERY_GRED_COUNT, |
| NVC0_HW_SM_QUERY_GST_REQUEST, |
| NVC0_HW_SM_QUERY_INST_EXECUTED, |
| NVC0_HW_SM_QUERY_INST_ISSUED, |
| NVC0_HW_SM_QUERY_INST_ISSUED0, |
| NVC0_HW_SM_QUERY_INST_ISSUED1, |
| NVC0_HW_SM_QUERY_INST_ISSUED2, |
| NVC0_HW_SM_QUERY_INST_ISSUED1_0, |
| NVC0_HW_SM_QUERY_INST_ISSUED1_1, |
| NVC0_HW_SM_QUERY_INST_ISSUED2_0, |
| NVC0_HW_SM_QUERY_INST_ISSUED2_1, |
| NVC0_HW_SM_QUERY_L1_GLD_HIT, |
| NVC0_HW_SM_QUERY_L1_GLD_MISS, |
| NVC0_HW_SM_QUERY_L1_GLD_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_L1_GST_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_L1_LOCAL_LD_HIT, |
| NVC0_HW_SM_QUERY_L1_LOCAL_LD_MISS, |
| NVC0_HW_SM_QUERY_L1_LOCAL_ST_HIT, |
| NVC0_HW_SM_QUERY_L1_LOCAL_ST_MISS, |
| NVC0_HW_SM_QUERY_L1_SHARED_LD_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_L1_SHARED_ST_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_LOCAL_LD, |
| NVC0_HW_SM_QUERY_LOCAL_LD_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_LOCAL_ST, |
| NVC0_HW_SM_QUERY_LOCAL_ST_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_NOT_PRED_OFF_INST_EXECUTED, |
| NVC0_HW_SM_QUERY_PROF_TRIGGER_0, |
| NVC0_HW_SM_QUERY_PROF_TRIGGER_1, |
| NVC0_HW_SM_QUERY_PROF_TRIGGER_2, |
| NVC0_HW_SM_QUERY_PROF_TRIGGER_3, |
| NVC0_HW_SM_QUERY_PROF_TRIGGER_4, |
| NVC0_HW_SM_QUERY_PROF_TRIGGER_5, |
| NVC0_HW_SM_QUERY_PROF_TRIGGER_6, |
| NVC0_HW_SM_QUERY_PROF_TRIGGER_7, |
| NVC0_HW_SM_QUERY_SHARED_ATOM, |
| NVC0_HW_SM_QUERY_SHARED_ATOM_CAS, |
| NVC0_HW_SM_QUERY_SHARED_LD, |
| NVC0_HW_SM_QUERY_SHARED_LD_BANK_CONFLICT, |
| NVC0_HW_SM_QUERY_SHARED_LD_REPLAY, |
| NVC0_HW_SM_QUERY_SHARED_LD_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_SHARED_ST, |
| NVC0_HW_SM_QUERY_SHARED_ST_BANK_CONFLICT, |
| NVC0_HW_SM_QUERY_SHARED_ST_REPLAY, |
| NVC0_HW_SM_QUERY_SHARED_ST_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_SM_CTA_LAUNCHED, |
| NVC0_HW_SM_QUERY_THREADS_LAUNCHED, |
| NVC0_HW_SM_QUERY_TH_INST_EXECUTED, |
| NVC0_HW_SM_QUERY_TH_INST_EXECUTED_0, |
| NVC0_HW_SM_QUERY_TH_INST_EXECUTED_1, |
| NVC0_HW_SM_QUERY_TH_INST_EXECUTED_2, |
| NVC0_HW_SM_QUERY_TH_INST_EXECUTED_3, |
| NVC0_HW_SM_QUERY_UNCACHED_GLD_TRANSACTIONS, |
| NVC0_HW_SM_QUERY_WARPS_LAUNCHED, |
| NVC0_HW_SM_QUERY_COUNT |
| }; |
| |
| struct nvc0_hw_query * |
| nvc0_hw_sm_create_query(struct nvc0_context *, unsigned); |
| int |
| nvc0_hw_sm_get_driver_query_info(struct nvc0_screen *, unsigned, |
| struct pipe_driver_query_info *); |
| unsigned |
| nvc0_hw_sm_get_num_queries(struct nvc0_screen *); |
| |
| #endif |