diff options
author | 2024-10-21 22:15:16 +0000 | |
---|---|---|
committer | 2024-10-21 22:15:16 +0000 | |
commit | eb6bc3d377ff6bde3af9368a0a6f9a20b6c88c08 (patch) | |
tree | f23f61861c0f3881ce287dd185eaa3c1b1ff897c /services/surfaceflinger/Layer.cpp | |
parent | 84b7155fe5026c01a54f3f77d1da3a71c400e623 (diff) | |
parent | d05a745a9b714eaeb8893a6a0db3069c2567726f (diff) |
Merge "Add metrics for logging SurfaceControl events" into main
Diffstat (limited to 'services/surfaceflinger/Layer.cpp')
-rw-r--r-- | services/surfaceflinger/Layer.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index e5dc2eeda9..c88092b23f 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -185,6 +185,14 @@ Layer::~Layer() { mFlinger->onLayerDestroyed(this); + const auto currentTime = std::chrono::steady_clock::now(); + if (mBufferInfo.mTimeSinceDataspaceUpdate > std::chrono::steady_clock::time_point::min()) { + mFlinger->mLayerEvents.emplace_back(mOwnerUid, getSequence(), mBufferInfo.mDataspace, + std::chrono::duration_cast<std::chrono::milliseconds>( + currentTime - + mBufferInfo.mTimeSinceDataspaceUpdate)); + } + if (mDrawingState.sidebandStream != nullptr) { mFlinger->mTunnelModeEnabledReporter->decrementTunnelModeCount(); } @@ -1261,8 +1269,17 @@ void Layer::gatherBufferInfo() { } } } - if (lastDataspace != mBufferInfo.mDataspace) { + if (lastDataspace != mBufferInfo.mDataspace || + mBufferInfo.mTimeSinceDataspaceUpdate == std::chrono::steady_clock::time_point::min()) { mFlinger->mHdrLayerInfoChanged = true; + const auto currentTime = std::chrono::steady_clock::now(); + if (mBufferInfo.mTimeSinceDataspaceUpdate > std::chrono::steady_clock::time_point::min()) { + mFlinger->mLayerEvents + .emplace_back(mOwnerUid, getSequence(), lastDataspace, + std::chrono::duration_cast<std::chrono::milliseconds>( + currentTime - mBufferInfo.mTimeSinceDataspaceUpdate)); + } + mBufferInfo.mTimeSinceDataspaceUpdate = currentTime; } if (mBufferInfo.mDesiredHdrSdrRatio != mDrawingState.desiredHdrSdrRatio) { mBufferInfo.mDesiredHdrSdrRatio = mDrawingState.desiredHdrSdrRatio; |