Mesa (master): freedreno: query max gpu freq

Rob Clark robclark at kemper.freedesktop.org
Wed Feb 17 15:42:18 UTC 2016


Module: Mesa
Branch: master
Commit: 45ab5b1c34a7fe78f6e5f95e11f24674657ecfd3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=45ab5b1c34a7fe78f6e5f95e11f24674657ecfd3

Author: Rob Clark <robclark at freedesktop.org>
Date:   Wed Feb 10 13:25:32 2016 -0500

freedreno: query max gpu freq

This will be needed to support converting from cycle counts to time for
performance related queries (initially time-elapsed, but there are some
additional performance counters that could be wired up).

Signed-off-by: Rob Clark <robclark at freedesktop.org>

---

 configure.ac                                     |  2 +-
 src/gallium/drivers/freedreno/freedreno_screen.c | 10 ++++++++++
 src/gallium/drivers/freedreno/freedreno_screen.h |  1 +
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 57330cb..d4ce99a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -74,7 +74,7 @@ LIBDRM_AMDGPU_REQUIRED=2.4.63
 LIBDRM_INTEL_REQUIRED=2.4.61
 LIBDRM_NVVIEUX_REQUIRED=2.4.66
 LIBDRM_NOUVEAU_REQUIRED=2.4.66
-LIBDRM_FREEDRENO_REQUIRED=2.4.65
+LIBDRM_FREEDRENO_REQUIRED=2.4.67
 DRI2PROTO_REQUIRED=2.6
 DRI3PROTO_REQUIRED=1.0
 PRESENTPROTO_REQUIRED=1.0
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c
index 9a94e63..bd83734 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -537,6 +537,16 @@ fd_screen_create(struct fd_device *dev)
 	}
 	screen->device_id = val;
 
+	if (fd_pipe_get_param(screen->pipe, FD_MAX_FREQ, &val)) {
+		DBG("could not get gpu freq");
+		/* this limits what performance related queries are
+		 * supported but is not fatal
+		 */
+		screen->max_freq = 0;
+	} else {
+		screen->max_freq = val;
+	}
+
 	if (fd_pipe_get_param(screen->pipe, FD_GPU_ID, &val)) {
 		DBG("could not get gpu-id");
 		goto fail;
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.h b/src/gallium/drivers/freedreno/freedreno_screen.h
index 8fb096a..a81c778 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.h
+++ b/src/gallium/drivers/freedreno/freedreno_screen.h
@@ -56,6 +56,7 @@ struct fd_screen {
 	uint32_t device_id;
 	uint32_t gpu_id;         /* 220, 305, etc */
 	uint32_t chip_id;        /* coreid:8 majorrev:8 minorrev:8 patch:8 */
+	uint32_t max_freq;
 	uint32_t max_rts;        /* max # of render targets */
 
 	void *compiler;          /* currently unused for a2xx */




More information about the mesa-commit mailing list