summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/DisplayDevice.cpp
diff options
context:
space:
mode:
authorJesse Hall <jessehall@google.com>2013-03-19 17:18:09 -0700
committerJesse Hall <jessehall@google.com>2013-03-20 11:16:55 -0700
commit7414965606f82ac2bcace5d3e2c8a4810517bf1e (patch)
tree1ca5e0fd04307bf98b30d41abd9f69d17fdfe702 /services/surfaceflinger/DisplayDevice.cpp
parentfae23b8757a6e1b70997db28a2eaf34f9ddc9b84 (diff)
downloadframeworks_native-7414965606f82ac2bcace5d3e2c8a4810517bf1e.zip
frameworks_native-7414965606f82ac2bcace5d3e2c8a4810517bf1e.tar.gz
frameworks_native-7414965606f82ac2bcace5d3e2c8a4810517bf1e.tar.bz2
Release virtual display buffer immediately after HWC set
Previously we only queued a virtual display buffer to the sink when the next frame was about to be displayed. This may delay the "last" frame of an animation indefinitely. Now we queue the buffer as soon as HWC set() returns and gives us the release fence. Bug: 8384764 Change-Id: I3844a188e0f6ef6ff28f3e11477cfa063a924b1a
Diffstat (limited to 'services/surfaceflinger/DisplayDevice.cpp')
-rw-r--r--services/surfaceflinger/DisplayDevice.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index ecd12d0..5493e7d 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -236,7 +236,7 @@ void DisplayDevice::swapBuffers(HWComposer& hwc) const {
void DisplayDevice::onSwapBuffersCompleted(HWComposer& hwc) const {
if (hwc.initCheck() == NO_ERROR) {
int fd = hwc.getAndResetReleaseFenceFd(mType);
- mDisplaySurface->setReleaseFenceFd(fd);
+ mDisplaySurface->onFrameCommitted(fd);
}
}