Home | History | Annotate | Download | only in nvc0
      1 #ifndef __NVC0_QUERY_HW_SM_H__
      2 #define __NVC0_QUERY_HW_SM_H__
      3 
      4 #include "nvc0_query_hw.h"
      5 
      6 struct nvc0_hw_sm_query {
      7    struct nvc0_hw_query base;
      8    uint8_t ctr[8];
      9 };
     10 
     11 static inline struct nvc0_hw_sm_query *
     12 nvc0_hw_sm_query(struct nvc0_hw_query *hq)
     13 {
     14    return (struct nvc0_hw_sm_query *)hq;
     15 }
     16 
     17 /*
     18  * Performance counter queries:
     19  */
     20 #define NVC0_HW_SM_QUERY(i)    (PIPE_QUERY_DRIVER_SPECIFIC + (i))
     21 #define NVC0_HW_SM_QUERY_LAST   NVC0_HW_SM_QUERY(NVC0_HW_SM_QUERY_COUNT - 1)
     22 enum nvc0_hw_sm_queries
     23 {
     24    NVC0_HW_SM_QUERY_ACTIVE_CTAS = 0,
     25    NVC0_HW_SM_QUERY_ACTIVE_CYCLES,
     26    NVC0_HW_SM_QUERY_ACTIVE_WARPS,
     27    NVC0_HW_SM_QUERY_ATOM_CAS_COUNT,
     28    NVC0_HW_SM_QUERY_ATOM_COUNT,
     29    NVC0_HW_SM_QUERY_BRANCH,
     30    NVC0_HW_SM_QUERY_DIVERGENT_BRANCH,
     31    NVC0_HW_SM_QUERY_GLD_REQUEST,
     32    NVC0_HW_SM_QUERY_GLD_MEM_DIV_REPLAY,
     33    NVC0_HW_SM_QUERY_GLOBAL_ATOM_CAS,
     34    NVC0_HW_SM_QUERY_GLOBAL_LD,
     35    NVC0_HW_SM_QUERY_GLOBAL_ST,
     36    NVC0_HW_SM_QUERY_GST_TRANSACTIONS,
     37    NVC0_HW_SM_QUERY_GST_MEM_DIV_REPLAY,
     38    NVC0_HW_SM_QUERY_GRED_COUNT,
     39    NVC0_HW_SM_QUERY_GST_REQUEST,
     40    NVC0_HW_SM_QUERY_INST_EXECUTED,
     41    NVC0_HW_SM_QUERY_INST_ISSUED,
     42    NVC0_HW_SM_QUERY_INST_ISSUED0,
     43    NVC0_HW_SM_QUERY_INST_ISSUED1,
     44    NVC0_HW_SM_QUERY_INST_ISSUED2,
     45    NVC0_HW_SM_QUERY_INST_ISSUED1_0,
     46    NVC0_HW_SM_QUERY_INST_ISSUED1_1,
     47    NVC0_HW_SM_QUERY_INST_ISSUED2_0,
     48    NVC0_HW_SM_QUERY_INST_ISSUED2_1,
     49    NVC0_HW_SM_QUERY_L1_GLD_HIT,
     50    NVC0_HW_SM_QUERY_L1_GLD_MISS,
     51    NVC0_HW_SM_QUERY_L1_GLD_TRANSACTIONS,
     52    NVC0_HW_SM_QUERY_L1_GST_TRANSACTIONS,
     53    NVC0_HW_SM_QUERY_L1_LOCAL_LD_HIT,
     54    NVC0_HW_SM_QUERY_L1_LOCAL_LD_MISS,
     55    NVC0_HW_SM_QUERY_L1_LOCAL_ST_HIT,
     56    NVC0_HW_SM_QUERY_L1_LOCAL_ST_MISS,
     57    NVC0_HW_SM_QUERY_L1_SHARED_LD_TRANSACTIONS,
     58    NVC0_HW_SM_QUERY_L1_SHARED_ST_TRANSACTIONS,
     59    NVC0_HW_SM_QUERY_LOCAL_LD,
     60    NVC0_HW_SM_QUERY_LOCAL_LD_TRANSACTIONS,
     61    NVC0_HW_SM_QUERY_LOCAL_ST,
     62    NVC0_HW_SM_QUERY_LOCAL_ST_TRANSACTIONS,
     63    NVC0_HW_SM_QUERY_NOT_PRED_OFF_INST_EXECUTED,
     64    NVC0_HW_SM_QUERY_PROF_TRIGGER_0,
     65    NVC0_HW_SM_QUERY_PROF_TRIGGER_1,
     66    NVC0_HW_SM_QUERY_PROF_TRIGGER_2,
     67    NVC0_HW_SM_QUERY_PROF_TRIGGER_3,
     68    NVC0_HW_SM_QUERY_PROF_TRIGGER_4,
     69    NVC0_HW_SM_QUERY_PROF_TRIGGER_5,
     70    NVC0_HW_SM_QUERY_PROF_TRIGGER_6,
     71    NVC0_HW_SM_QUERY_PROF_TRIGGER_7,
     72    NVC0_HW_SM_QUERY_SHARED_ATOM,
     73    NVC0_HW_SM_QUERY_SHARED_ATOM_CAS,
     74    NVC0_HW_SM_QUERY_SHARED_LD,
     75    NVC0_HW_SM_QUERY_SHARED_LD_BANK_CONFLICT,
     76    NVC0_HW_SM_QUERY_SHARED_LD_REPLAY,
     77    NVC0_HW_SM_QUERY_SHARED_LD_TRANSACTIONS,
     78    NVC0_HW_SM_QUERY_SHARED_ST,
     79    NVC0_HW_SM_QUERY_SHARED_ST_BANK_CONFLICT,
     80    NVC0_HW_SM_QUERY_SHARED_ST_REPLAY,
     81    NVC0_HW_SM_QUERY_SHARED_ST_TRANSACTIONS,
     82    NVC0_HW_SM_QUERY_SM_CTA_LAUNCHED,
     83    NVC0_HW_SM_QUERY_THREADS_LAUNCHED,
     84    NVC0_HW_SM_QUERY_TH_INST_EXECUTED,
     85    NVC0_HW_SM_QUERY_TH_INST_EXECUTED_0,
     86    NVC0_HW_SM_QUERY_TH_INST_EXECUTED_1,
     87    NVC0_HW_SM_QUERY_TH_INST_EXECUTED_2,
     88    NVC0_HW_SM_QUERY_TH_INST_EXECUTED_3,
     89    NVC0_HW_SM_QUERY_UNCACHED_GLD_TRANSACTIONS,
     90    NVC0_HW_SM_QUERY_WARPS_LAUNCHED,
     91    NVC0_HW_SM_QUERY_COUNT
     92 };
     93 
     94 struct nvc0_hw_query *
     95 nvc0_hw_sm_create_query(struct nvc0_context *, unsigned);
     96 int
     97 nvc0_hw_sm_get_driver_query_info(struct nvc0_screen *, unsigned,
     98                                  struct pipe_driver_query_info *);
     99 unsigned
    100 nvc0_hw_sm_get_num_queries(struct nvc0_screen *);
    101 
    102 #endif
    103