summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.cpp
diff options
context:
space:
mode:
author Alec Mouri <alecmouri@google.com> 2024-09-20 13:44:02 +0000
committer Alec Mouri <alecmouri@google.com> 2024-10-04 19:22:35 +0000
commitd05a745a9b714eaeb8893a6a0db3069c2567726f (patch)
tree8394477cc0a7d260faf4c63d4d4666227872a9f6 /services/surfaceflinger/SurfaceFlinger.cpp
parentaa2d404b3150afa89bfe8f911ac980d32f25f4b2 (diff)
Add metrics for logging SurfaceControl events
Currently, we log whenever dataspaces change on a layer. We also log when a layer is destroyed, so that we can log its last dataspace. Bug: 329474645 Flag: EXEMPT logging Test: GraphicsAtomTests Change-Id: I06f4591a1b523cb565923c7d6e4103f0e294d8ad
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 8d16b9fe94..bbdfc1261a 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -83,6 +83,7 @@
#include <renderengine/RenderEngine.h>
#include <renderengine/impl/ExternalTexture.h>
#include <scheduler/FrameTargeter.h>
+#include <statslog_surfaceflinger.h>
#include <sys/types.h>
#include <ui/ColorSpace.h>
#include <ui/DebugUtils.h>
@@ -3157,6 +3158,19 @@ void SurfaceFlinger::onCompositionPresented(PhysicalDisplayId pacesetterId,
mAddingHDRLayerInfoListener = false;
}
+ for (const auto& layerEvent : mLayerEvents) {
+ auto result =
+ stats::stats_write(stats::SURFACE_CONTROL_EVENT,
+ static_cast<int32_t>(layerEvent.uid),
+ static_cast<int64_t>(layerEvent.timeSinceLastEvent.count()),
+ static_cast<int32_t>(layerEvent.dataspace));
+ if (result < 0) {
+ ALOGW("Failed to report layer event with error: %d", result);
+ }
+ }
+
+ mLayerEvents.clear();
+
if (haveNewListeners || mHdrLayerInfoChanged) {
for (auto& [compositionDisplay, listener] : hdrInfoListeners) {
HdrLayerInfoReporter::HdrLayerInfo info;