diff options
author | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2015-11-25 15:30:03 +0100 |
---|---|---|
committer | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2015-11-25 15:52:09 +0100 |
commit | ad22006892c5511dac7d0d680633a1b857da49fb (patch) | |
tree | 46c64acd6d362d3ca3060787f1549e850561cb5d /src/gallium/drivers/radeon/r600_pipe_common.c | |
parent | b9fc01aee75dcc2d56750ea430e32d74127faf69 (diff) | |
download | external_mesa3d-ad22006892c5511dac7d0d680633a1b857da49fb.zip external_mesa3d-ad22006892c5511dac7d0d680633a1b857da49fb.tar.gz external_mesa3d-ad22006892c5511dac7d0d680633a1b857da49fb.tar.bz2 |
radeonsi: implement AMD_performance_monitor for CIK+
Expose most of the performance counter groups that are exposed by Catalyst.
Ideally, the driver will work with GPUPerfStudio at some point, but we are not
quite there yet. In any case, this is the reason for grouping multiple
instances of hardware blocks in the way it is implemented.
The counters can also be shown using the Gallium HUD. If one is interested to
see how work is distributed across multiple shader engines, one can set the
environment variable RADEON_PC_SEPARATE_SE=1 to obtain finer-grained performance
counter groups.
Part of the implementation is in radeon because an implementation for
older hardware would largely follow along the same lines, but exposing
a different set of blocks which are programmed slightly differently.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/gallium/drivers/radeon/r600_pipe_common.c')
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c index 7464f67..f03dcd9 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -977,6 +977,7 @@ bool r600_common_screen_init(struct r600_common_screen *rscreen, void r600_destroy_common_screen(struct r600_common_screen *rscreen) { + r600_perfcounters_destroy(rscreen); r600_gpu_load_kill_thread(rscreen); pipe_mutex_destroy(rscreen->gpu_load_mutex); |