summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/FenceTracker.cpp
AgeCommit message (Collapse)Author
2016-11-15Track frame events incrementally and per layer. Brian Anderson
* Replaces FenceTracker, which was owned by SurfaceFlinger, with FrameEventHistory, which is owned by Layer. * Updates FrameEventHistory as events occur. * Changes SurfaceFlinger flag "--fences" to "--frame-events". Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter=*GetFrameTimestamps* Change-Id: I868c2ef93964656d7e41848243433499e7f45fe7
2016-11-15Fix FenceTracker releaseFence Brian Anderson
This patch: * Fixes the release fence when GPU compositing. * Stores the final release fence in ConsumerBase just before releasing the Buffer, which helps ensure sync points aren't added unknowningly. * Makes HWC2 release pending buffers as the first step of postCompostion, rather than the last, which should allow dequeue to unblock a little earlier and helps make sure the previous buffer's release fence has been finalized before FenceTracker::addFrame is called. * Fence tracker only sets the release fence once it has been finalized so it does not report a release fence for a buffer that is still latched. Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter=*GetFrameTimestamps* Change-Id: I27d484bfd48f730bdcea2628f96795c6f4b4df7b
2016-11-15Add displayPresentTime to getFrameTimestamps Brian Anderson
Makes HWC1 use displayRetireTime and HWC2 use displayPresentTime. Properly takes into account if HWC2On1Adapter is used. Returns whether present or retire is supported via eglQueryTimestampSupportedANDROID, which uses a cached answer in Surface. Surface::getFrameTimestamps returns with an error if the caller requests an unsupported timestamp. Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter=*GetFrameTimestamps* Change-Id: Ib91c2d05d7fb5cbf307e2dec1e20e79bcc19d90b
2016-11-15Rename posted to requestedPresent for getFrameTimestamps Brian Anderson
Test: Just a rename. Change-Id: I63aa5b1b84715de2bebffb25f92bd826323a9acb
2016-10-11Revert "Delete HWC1" Fabien Sanglard
This reverts commit 90f923493fa053655a203c34ea491086aeb07602. Change-Id: If9da49e3bc85f8ff21ac1bd22a6bab97e9aa3103
2016-10-10Delete HWC1 Fabien Sanglard
After 10 years of good service, HWC1 is not needed anymore since HWC2 is now mandatory. Change-Id: I5768b50c89854688ba31032f01ea231699393e5b
2016-06-13SF: Fix HWC2 build break Pablo Ceballos
Bug 29330291 Change-Id: Ifd9993ac0321c7436a17c3e64925d415ec993003
2016-06-07Plumbing for getting FenceTracker timestamps Pablo Ceballos
Change-Id: I1ebee9e42e28658bd3a2b161fdaabb7da756d8f3
2016-06-01SF: Re-enable fence tracker by default Pablo Ceballos
- Don't check whether the fences have completed or not unless the data has been requested. Bug 22431447 Change-Id: Id4cb8bfba38547884849ef23c9b6f42f0d4d0750
2016-03-30SF: Disable FenceTracker from makefile Pablo Ceballos
- Add tracing to the FenceTracker. - Disable it by default with #ifdefs, it can be enabled in the makefile. Bug 27882222 Change-Id: I640e028c4dc97b46e800a7f21cdb2cb6a4b4ff18
2016-03-21SF: Add FenceTracker Pablo Ceballos
FenceTracker tracks all fences in SurfaceFlinger. These timestamps could be used for debugging, profiling, or be exposed to the application. Change-Id: I4297a661c0a7530e744168ac7a2a66c4bca92fd5