SF: Add FenceTracker
FenceTracker tracks all fences in SurfaceFlinger. These timestamps
could be used for debugging, profiling, or be exposed to the
application.
Change-Id: I4297a661c0a7530e744168ac7a2a66c4bca92fd5
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h
index b0088e6..d5c84b6 100644
--- a/services/surfaceflinger/Layer.h
+++ b/services/surfaceflinger/Layer.h
@@ -177,6 +177,8 @@
sp<IGraphicBufferProducer> getProducer() const;
const String8& getName() const;
+ int32_t getSequence() const { return sequence; }
+
// -----------------------------------------------------------------------
// Virtuals
@@ -396,6 +398,10 @@
void logFrameStats();
void getFrameStats(FrameStats* outStats) const;
+ void getFenceData(String8* outName, uint64_t* outFrameNumber,
+ bool* outIsGlesComposition, nsecs_t* outPostedTime,
+ sp<Fence>* outAcquireFence, sp<Fence>* outPrevReleaseFence) const;
+
protected:
// constant
sp<SurfaceFlinger> mFlinger;
@@ -555,6 +561,8 @@
bool clearClientTarget;
};
std::unordered_map<int32_t, HWCInfo> mHwcLayers;
+#else
+ bool mIsGlesComposition;
#endif
// page-flip thread (currently main thread)