f41745301d5ecfa680dcef3a1948a8a321f80509 |
|
13-Jul-2017 |
Saurabh Shah <saurshah@codeaurora.org> |
sf: Defer DispSync initialization Some DispSync members are initialized based on uninitialized static members of sf, that are in turn initialized in sf constructor. Fix the sequence by deferring DispSync initialization. Current sequence: sf constructor|-> DispSync constructor -> Access static sf members |-> Initialize sf static members New sequence: sf constructor|-> DispSync constructor |-> Initialize sf static members |-> DispSync init -> Access static sf members Bug: 63671437 Test: "present fences are ignored" not present in SF dumpsys Change-Id: I618d2bbbbd4e39fc382e67f85dd8d637dd82cf38
/frameworks/native/services/surfaceflinger/DispSync.h
|
fbc80aef0ba1b11982cf4ca88d218b65b6eca0f3 |
|
27-May-2017 |
Brian Anderson <brianderson@google.com> |
Reduce number of Fence syscalls made. This patch saves 6 or more Fence syscalls per frame. * Timelines are updated just before adding a new fence since the newly added fence is unlikely to have signaled. * Layer::latch uses a FenceTime now, so the signal time is automatically shared with other owners of the FenceTime. * DispSync uses FenceTime now, only using cached values of the signal time that have been populated by a Timeline. Test: SurfaceFlinger boots and dumps still work. Change-Id: Ie0cfc1af2aca143dd8d5f08f08dbe1e597376f2f
/frameworks/native/services/surfaceflinger/DispSync.h
|
cbf153bedf2eafc1443bbc97c4e74f97e7973edd |
|
11-Mar-2017 |
Fabien Sanglard <sanglardf@google.com> |
Use hasSyncFramework value from configStore Change-Id: I41c6b1a26001eb6ba08cbc419dc8a683f5722aa3
/frameworks/native/services/surfaceflinger/DispSync.h
|
c45a7d9dfdefa07512c5acc07bcbee5362b34e3d |
|
14-Mar-2017 |
Fabien Sanglard <sanglardf@google.com> |
[SF] Use presentTimeOffset from configStore Change-Id: If9c872c565e68e8abe552ee11d2c7d48f44aec4b
/frameworks/native/services/surfaceflinger/DispSync.h
|
342b760763300593cd20b01dac8cef61e7b25b86 |
|
01-Sep-2016 |
Chih-Hung Hsieh <chh@google.com> |
Fix google-explicit-constructor warnings in surfaceflinger. * Add explicit keyword to conversion constructors, or use NOLINT for implicit converters. Bug: 28341362 Test: build with WITH_TIDY=1 Change-Id: I94f511c3be31dc22022db6466ee9ed0c6be2bc8e
/frameworks/native/services/surfaceflinger/DispSync.h
|
4a4e4a239f034cb8af2df9a438b26c3bc088889c |
|
19-Apr-2016 |
Tim Murray <timmurray@google.com> |
Revert "Revert "DispSync: Always resync after inactivity"" This reverts commit 67264e930992e43ef3351b04692d4ca59cbb01ad. We've fixed the kernel issues this exposed. bug 28198793 Change-Id: Ie895cc0a815094cce4bee3b2bf45800ee1e2fdc3
/frameworks/native/services/surfaceflinger/DispSync.h
|
67264e930992e43ef3351b04692d4ca59cbb01ad |
|
14-Apr-2016 |
Dan Stoza <stoza@google.com> |
Revert "DispSync: Always resync after inactivity" This reverts commit f34b9be610ce286af224364cb6e69ef6f7697ee9. Bug: 28160740 Change-Id: I48a5bd66712651b42fdc0aaf1492899d7b032977
/frameworks/native/services/surfaceflinger/DispSync.h
|
f34b9be610ce286af224364cb6e69ef6f7697ee9 |
|
06-Apr-2016 |
Dan Stoza <stoza@google.com> |
DispSync: Always resync after inactivity Changes DispSync to enable hardware vsync immediately when new frames arrive after a period of inactivity. No matter how hard we try, we can't avoid drifting over time without being able to detect error based on display retire fences. By enabling hardware vsync immediately, we avoid having a weird period or phase offset relative to hardware while we retrain the model. Once the model has locked, we turn hardware vsync back off to save power (until we detect drift again). Bug: 26255070 Change-Id: If4dd17c2d541015c730f47d824359d7cb4b52c3c
/frameworks/native/services/surfaceflinger/DispSync.h
|
22279c44183a9c71301c770c4275545500a48345 |
|
10-Mar-2016 |
Dan Stoza <stoza@google.com> |
Revert "DispSync: workaround HH hardware vsync issue" This reverts commit c734d95c575830ffc97fc5d2ae14b020c95d05de, which was a workaround for a bug on a device which is now obsolete. Bug: 25845510 Change-Id: I3244bfd3f758c52dfe76e9d5b0a72bbcffdf5a6f
/frameworks/native/services/surfaceflinger/DispSync.h
|
c734d95c575830ffc97fc5d2ae14b020c95d05de |
|
24-Nov-2015 |
Haixia Shi <hshi@google.com> |
DispSync: workaround HH hardware vsync issue The HWC of HH seems to have a bug where it fails to generate vsync events upon the first eventControl call to turn on HWC_EVENT_VSYNC. The workaround is for DispSync to detect when it has received no resync samples after many presents, and return false so that SF will disable HW vsync and re-enable it in the next present. This gets the HWC of HH out of the bad state. Bug:25845510 TEST=reboot HH then immediately capture systrace while scrolling all apps Change-Id: Ie034c113d94ea53068eef75b8eac39a32788666a
/frameworks/native/services/surfaceflinger/DispSync.h
|
676b1f6ed0d637b7eb1858361e0d09068f26e9fa |
|
29-Oct-2015 |
Haixia Shi <hshi@google.com> |
SF: more DispSync improvements. Pass the reference time to DispSyncThread. Since the phase offset is calculated using timestamps relative to the reference time, we must also adjust the phase offset by the same reference time when computing the next refresh time. Always reset phase offset to zero when updating the reference time because the reference time equals the first timestamp. After beginResync() we need to keep HW vsync enabled until the model is updated. Bug: 25113115 Change-Id: I8eae227bee91c24a99bf8e57fbebceb98d29c77d Test: check in systrace that app/sf vsync events have correct phase
/frameworks/native/services/surfaceflinger/DispSync.h
|
664339a8e8d3f2d5acd5728dae666cc9a14e08f3 |
|
28-Oct-2015 |
Haixia Shi <hshi@google.com> |
SF: use first sample timestamp as reference. Do not use the absolute 64-bit nsecs_t timestamp directly in phase and error calculations. Compared to the estimated vsync period, the timestamp tend to many orders of magnitudes larger, and consequently the integer modulo operation used to calculate phase and error can be very sensitive to tiny fluctuation in vsync period. Bug: 25113115 Test: set kTraceDetailedInfo=true; see Phase and Error are stable in systrace Change-Id: I687703eec31b1072c606898c0424a96c0a8ca033
/frameworks/native/services/surfaceflinger/DispSync.h
|
ef78916d86fa60e08a6358af4b0b1f6bd0134164 |
|
29-May-2015 |
Dan Stoza <stoza@google.com> |
SF: Reduce resync samples without present Reduces the number of resync samples that DispSync will attempt to collect without an intervening present from 12 to 4. The former value was causing excessive power draw for some vendors' implementations, and reducing it doesn't seem to harm anything. Bug: 20724456 Change-Id: Ifd6e0490be67756ed001d509a38e8a36953b4618 (cherry picked from commit 9c64757f6530a0510f15f8bd75b1925a3001f83a)
/frameworks/native/services/surfaceflinger/DispSync.h
|
67d8bd66aaf04805cb8f2616ba964141b865e3b9 |
|
11-Sep-2014 |
Lajos Molnar <lajos@google.com> |
surfaceflinger: add getDisplayStats() method This is used by media service to schedule video frames at the proper time, based on precise vsync timings. Bug: 14659809 Change-Id: I1a90603f3dc09dca9aa4f90a3aa845fab56e0a5e
/frameworks/native/services/surfaceflinger/DispSync.h
|
645b1f7ffb41d21a60765d1ec54ba82f14a36a59 |
|
10-Jun-2014 |
Andy McFadden <fadden@android.com> |
Replace "lower power mode" experiment This replaces the previous low-power mode experiment, which discarded refresh events, with a new experiment that alters the refresh period. (see also I2849e5ea335c0d2509fea1c315392bce7f20451d ) The feature is enabled by specifying a nonzero value for the "refresh skip count", which indicates the number of periods to skip. For example, the command: adb shell service call SurfaceFlinger 1016 i32 1 sets a skip count of '1', yielding a 30Hz refresh rate on a device with a 60Hz display. Changing the last value to '2' would set the refresh to 20Hz. '0' returns to the default behavior. Bug 15523257 Change-Id: I00039c22a55750e74035644c63800e4bee1c774a
/frameworks/native/services/surfaceflinger/DispSync.h
|
5167ec68fed047bf65b1eb0c6091534682135eef |
|
22-May-2014 |
Andy McFadden <fadden@android.com> |
Disable DispSync resync when not needed If app and SF events aren't using phase offsets, we don't need to maintain the DispSync model. We just turn hardware VSYNC on whenever something wants to draw. This avoids some edge cases where we were doing too much resync work. Also, updated the systrace output. The "VsyncOn" line was a combination of SF and app event threads, and would occasionally be very weird. Removed VsyncOn, renamed VSYNC to VSYNC-app, and added VSYNC-sf. Also, added more details to the --dispsync dumpsys output. Also, renamed global constants to not look like local variables. Bug 15516453 Change-Id: I0da10b72f0d9a7b7eb5202d87cc18967f698adbd
/frameworks/native/services/surfaceflinger/DispSync.h
|
c751e92c56de5f335a36e68607c7a6c627dcd0dc |
|
08-May-2014 |
Andy McFadden <fadden@android.com> |
Add "dumpsys SurfaceFlinger --dispsync" Dumps the current DispSync state. Bug 14651879 Change-Id: Ide4e6dbd58b117bc1a6b97b57d10cd92ec86dc84
/frameworks/native/services/surfaceflinger/DispSync.h
|
41d67d7ab4da1c393497a620a116a854b3c618e7 |
|
26-Apr-2014 |
Andy McFadden <fadden@android.com> |
Improve SurfaceFlinger PTS estimation Get the next refresh time from DispSync instead of guessing based on the current time. Change-Id: I8dc72a3217bfd4e9b4c905034194d1a298cad69a
/frameworks/native/services/surfaceflinger/DispSync.h
|
f52b3c88f18c0546526996c839fbce74172e11c7 |
|
25-Apr-2014 |
Ruchi Kandoi <kandoiruchi@google.com> |
SurfaceFlinger: Adds the functionality to reduce refresh rate to half of the default. Feature added for the low power mode. Change-Id: I2849e5ea335c0d2509fea1c315392bce7f20451d Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
/frameworks/native/services/surfaceflinger/DispSync.h
|
faf77cce9d9ec0238d6999b3bd0d40c71ff403c5 |
|
31-Jul-2013 |
Jamie Gennis <jgennis@google.com> |
SurfaceFlinger: SW-based vsync events This change adds the DispSync class, which models the hardware vsync event times to allow vsync event callbacks to be done at an arbitrary phase offset from the hardware vsync. This can be used to reduce the minimum latency from Choreographer wake-up to on-screen image presentation. Bug: 10624956 Change-Id: I8c7a54ceacaa4d709726ed97b0dcae4093a7bdcf
/frameworks/native/services/surfaceflinger/DispSync.h
|