Mesa (staging/21.2): amd/common: Add fallback for misreported clocks for RGP.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 12 17:45:23 UTC 2021


Module: Mesa
Branch: staging/21.2
Commit: 6721dcfd4ec5f5796452a63d9f03606591a2a91e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6721dcfd4ec5f5796452a63d9f03606591a2a91e

Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date:   Tue Oct 12 03:23:21 2021 +0200

amd/common: Add fallback for misreported clocks for RGP.

Traces with clock = 0 are totally useless due to RGP getting very
confused.

Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13301>
(cherry picked from commit 33065149c149d0650e8848db6b65f81f32e9cf22)

---

 .pick_status.json       | 2 +-
 src/amd/common/ac_rgp.c | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index 1c9df148cea..db509f91bb1 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -13,7 +13,7 @@
         "description": "amd/common: Add fallback for misreported clocks for RGP.",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
diff --git a/src/amd/common/ac_rgp.c b/src/amd/common/ac_rgp.c
index 7d0d48a91c0..5d02004ab05 100644
--- a/src/amd/common/ac_rgp.c
+++ b/src/amd/common/ac_rgp.c
@@ -461,6 +461,13 @@ static void ac_sqtt_fill_asic_info(struct radeon_info *rad_info,
    chunk->trace_shader_core_clock = rad_info->max_shader_clock * 1000000;
    chunk->trace_memory_clock = rad_info->max_memory_clock * 1000000;
 
+   /* RGP gets very confused if these clocks are 0. The 1 GHz clocks are not necessarily correct,
+    * but the resulting traces are at least somewhat useful. */
+   if (!chunk->trace_shader_core_clock)
+      chunk->trace_shader_core_clock = 1e9;
+   if (!chunk->trace_memory_clock)
+      chunk->trace_memory_clock = 1e9;
+
    chunk->device_id = rad_info->pci_id;
    chunk->device_revision_id = rad_info->pci_rev_id;
    chunk->vgprs_per_simd = rad_info->num_physical_wave64_vgprs_per_simd * (has_wave32 ? 2 : 1);



More information about the mesa-commit mailing list