Add dump of hdr event history
Track & dump the HDRLayerInfo callback history to
aid debugging when HDR brightness changes aren't
happening
Bug: 234181960
Test: adb shell dumpsys surfaceflinger --hdrinfo
Change-Id: Ia8376517877d4c7844af6be4d488299554c164f5
diff --git a/services/surfaceflinger/HdrLayerInfoReporter.h b/services/surfaceflinger/HdrLayerInfoReporter.h
index bf7c775..614f33f 100644
--- a/services/surfaceflinger/HdrLayerInfoReporter.h
+++ b/services/surfaceflinger/HdrLayerInfoReporter.h
@@ -19,9 +19,11 @@
#include <android-base/thread_annotations.h>
#include <android/gui/IHdrLayerInfoListener.h>
#include <binder/IBinder.h>
+#include <utils/Timers.h>
#include <unordered_map>
+#include "Utils/RingBuffer.h"
#include "WpHash.h"
namespace android {
@@ -79,6 +81,8 @@
return !mListeners.empty();
}
+ void dump(std::string& result) const;
+
private:
mutable std::mutex mMutex;
@@ -88,6 +92,17 @@
};
std::unordered_map<wp<IBinder>, TrackedListener, WpHash> mListeners GUARDED_BY(mMutex);
+
+ struct EventHistoryEntry {
+ nsecs_t timestamp = -1;
+ HdrLayerInfo info;
+
+ EventHistoryEntry() {}
+
+ EventHistoryEntry(const HdrLayerInfo& info) : info(info) { timestamp = systemTime(); }
+ };
+
+ utils::RingBuffer<EventHistoryEntry, 32> mHdrInfoHistory;
};
} // namespace android
\ No newline at end of file