diff options
author | 2024-09-20 13:44:02 +0000 | |
---|---|---|
committer | 2024-10-04 19:22:35 +0000 | |
commit | d05a745a9b714eaeb8893a6a0db3069c2567726f (patch) | |
tree | 8394477cc0a7d260faf4c63d4d4666227872a9f6 /services/surfaceflinger/SurfaceFlinger.cpp | |
parent | aa2d404b3150afa89bfe8f911ac980d32f25f4b2 (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.cpp | 14 |
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; |