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