diff options
author | 2024-09-24 21:00:32 +0000 | |
---|---|---|
committer | 2024-10-04 19:14:46 +0000 | |
commit | ef3ecd5096d8f4a4c92dd19e0d9ae09320455ba9 (patch) | |
tree | 30ad908fd45c4dcc2385052cf1842cf59f52cada /libs/hwui/DeferredLayerUpdater.cpp | |
parent | 1be78c0ffa559ea633744da3cd258edf3d13e607 (diff) |
Add metrics for TextureView dataspace changes
Bug: 329475035
Flag: EXEMPT logging only
Test: builds
Test: GraphicsAtomTests
Change-Id: Ia65ceb3bf205e3050b182aa6d170a453076bdc4c
Diffstat (limited to 'libs/hwui/DeferredLayerUpdater.cpp')
-rw-r--r-- | libs/hwui/DeferredLayerUpdater.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp index b763a96e8e8a..c0160705fd47 100644 --- a/libs/hwui/DeferredLayerUpdater.cpp +++ b/libs/hwui/DeferredLayerUpdater.cpp @@ -19,6 +19,7 @@ #include <GLES2/gl2ext.h> // TODO: Use public SurfaceTexture APIs once available and include public NDK header file instead. +#include <statslog_hwui.h> #include <surfacetexture/surface_texture_platform.h> #include "AutoBackendTextureRelease.h" @@ -50,6 +51,14 @@ DeferredLayerUpdater::~DeferredLayerUpdater() { setTransform(nullptr); mRenderState.removeContextCallback(this); destroyLayer(); + if (mFirstTimeForDataspace > std::chrono::steady_clock::time_point::min()) { + auto currentTime = std::chrono::steady_clock::now(); + stats_write(stats::TEXTURE_VIEW_EVENT, static_cast<int32_t>(getuid()), + static_cast<int64_t>(std::chrono::duration_cast<std::chrono::milliseconds>( + currentTime - mFirstTimeForDataspace) + .count()), + mDataspace); + } } void DeferredLayerUpdater::setSurfaceTexture(AutoTextureRelease&& consumer) { @@ -195,6 +204,21 @@ void DeferredLayerUpdater::apply() { updateLayer(forceFilter, layerImage, outTransform, currentCropRect, maxLuminanceNits); } + + if (dataspace != mDataspace || + mFirstTimeForDataspace == std::chrono::steady_clock::time_point::min()) { + auto currentTime = std::chrono::steady_clock::now(); + if (mFirstTimeForDataspace > std::chrono::steady_clock::time_point::min()) { + stats_write(stats::TEXTURE_VIEW_EVENT, static_cast<int32_t>(getuid()), + static_cast<int64_t>( + std::chrono::duration_cast<std::chrono::milliseconds>( + currentTime - mFirstTimeForDataspace) + .count()), + mDataspace); + } + mFirstTimeForDataspace = currentTime; + mDataspace = dataspace; + } } } |