From: Marek Olšák <marek.ol...@amd.com>

---
 src/gallium/drivers/radeonsi/si_query.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_query.c 
b/src/gallium/drivers/radeonsi/si_query.c
index 7f32be39a16..9c51c9892e6 100644
--- a/src/gallium/drivers/radeonsi/si_query.c
+++ b/src/gallium/drivers/radeonsi/si_query.c
@@ -1935,45 +1935,56 @@ static struct pipe_driver_query_info 
si_driver_query_list[] = {
        X("GPU-vgt-busy",               GPU_VGT_BUSY,           UINT64, 
AVERAGE),
        X("GPU-ia-busy",                GPU_IA_BUSY,            UINT64, 
AVERAGE),
        X("GPU-sx-busy",                GPU_SX_BUSY,            UINT64, 
AVERAGE),
        X("GPU-wd-busy",                GPU_WD_BUSY,            UINT64, 
AVERAGE),
        X("GPU-bci-busy",               GPU_BCI_BUSY,           UINT64, 
AVERAGE),
        X("GPU-sc-busy",                GPU_SC_BUSY,            UINT64, 
AVERAGE),
        X("GPU-pa-busy",                GPU_PA_BUSY,            UINT64, 
AVERAGE),
        X("GPU-db-busy",                GPU_DB_BUSY,            UINT64, 
AVERAGE),
        X("GPU-cp-busy",                GPU_CP_BUSY,            UINT64, 
AVERAGE),
        X("GPU-cb-busy",                GPU_CB_BUSY,            UINT64, 
AVERAGE),
+
+       /* SRBM_STATUS2 */
        X("GPU-sdma-busy",              GPU_SDMA_BUSY,          UINT64, 
AVERAGE),
+
+       /* CP_STAT */
        X("GPU-pfp-busy",               GPU_PFP_BUSY,           UINT64, 
AVERAGE),
        X("GPU-meq-busy",               GPU_MEQ_BUSY,           UINT64, 
AVERAGE),
        X("GPU-me-busy",                GPU_ME_BUSY,            UINT64, 
AVERAGE),
        X("GPU-surf-sync-busy",         GPU_SURF_SYNC_BUSY,     UINT64, 
AVERAGE),
        X("GPU-cp-dma-busy",            GPU_CP_DMA_BUSY,        UINT64, 
AVERAGE),
        X("GPU-scratch-ram-busy",       GPU_SCRATCH_RAM_BUSY,   UINT64, 
AVERAGE),
 };
 
 #undef X
 #undef XG
 #undef XFULL
 
 static unsigned si_get_num_queries(struct si_screen *sscreen)
 {
-       if (sscreen->info.drm_major == 2 && sscreen->info.drm_minor >= 42)
-               return ARRAY_SIZE(si_driver_query_list);
-       else if (sscreen->info.drm_major == 3) {
+       /* amdgpu */
+       if (sscreen->info.drm_major == 3) {
                if (sscreen->info.chip_class >= VI)
                        return ARRAY_SIZE(si_driver_query_list);
                else
                        return ARRAY_SIZE(si_driver_query_list) - 7;
        }
-       else
-               return ARRAY_SIZE(si_driver_query_list) - 25;
+
+       /* radeon */
+       if (sscreen->info.has_read_registers_query) {
+               if (sscreen->info.chip_class == CIK)
+                       return ARRAY_SIZE(si_driver_query_list) - 6;
+               else
+                       return ARRAY_SIZE(si_driver_query_list) - 7;
+       }
+
+       return ARRAY_SIZE(si_driver_query_list) - 21;
 }
 
 static int si_get_driver_query_info(struct pipe_screen *screen,
                                    unsigned index,
                                    struct pipe_driver_query_info *info)
 {
        struct si_screen *sscreen = (struct si_screen*)screen;
        unsigned num_queries = si_get_num_queries(sscreen);
 
        if (!info) {
-- 
2.17.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to