From 1d0cae97cd67a455563a92f1f11086dd1f030877 Mon Sep 17 00:00:00 2001 From: Ady Abraham Date: Fri, 14 Jun 2024 13:41:12 -0700 Subject: SF: trace the render rate of an app Add a trace point for both SF and apps when the render rate is overridden. Bug: 347314033 Test: manual Change-Id: I87dc9b17a4c1f97fa43b025cfa684f43c20c5a25 --- libs/gui/DisplayEventDispatcher.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'libs/gui/DisplayEventDispatcher.cpp') diff --git a/libs/gui/DisplayEventDispatcher.cpp b/libs/gui/DisplayEventDispatcher.cpp index f3de96d2cd..c46f9c50ef 100644 --- a/libs/gui/DisplayEventDispatcher.cpp +++ b/libs/gui/DisplayEventDispatcher.cpp @@ -15,6 +15,7 @@ */ #define LOG_TAG "DisplayEventDispatcher" +#define ATRACE_TAG ATRACE_TAG_GRAPHICS #include #include @@ -23,10 +24,13 @@ #include #include #include - #include +#include + +#include namespace android { +using namespace com::android::graphics::libgui; // Number of events to read at a time from the DisplayEventDispatcher pipe. // The value should be large enough that we can quickly drain the pipe @@ -171,6 +175,13 @@ bool DisplayEventDispatcher::processPendingEvents(nsecs_t* outTimestamp, *outDisplayId = ev.header.displayId; *outCount = ev.vsync.count; *outVsyncEventData = ev.vsync.vsyncData; + + // Trace the RenderRate for this app + if (ATRACE_ENABLED() && flags::trace_frame_rate_override()) { + const auto frameInterval = ev.vsync.vsyncData.frameInterval; + int fps = frameInterval > 0 ? 1e9f / frameInterval : 0; + ATRACE_INT("RenderRate", fps); + } break; case DisplayEventReceiver::DISPLAY_EVENT_HOTPLUG: if (ev.hotplug.connectionError == 0) { -- cgit v1.2.3-59-g8ed1b