Merge "vsyncId should always be incremental" into sc-dev am: 544b5f5b2e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15083427 Change-Id: I0cc10866d8e0bd5358dd06dd9c3127d122013d39
This commit is contained in:
@@ -15,22 +15,28 @@
|
||||
*/
|
||||
#include "TimeLord.h"
|
||||
#include <limits>
|
||||
#include "FrameInfo.h"
|
||||
|
||||
namespace android {
|
||||
namespace uirenderer {
|
||||
namespace renderthread {
|
||||
|
||||
TimeLord::TimeLord() : mFrameIntervalNanos(milliseconds_to_nanoseconds(16)),
|
||||
mFrameTimeNanos(0),
|
||||
mFrameIntendedTimeNanos(0),
|
||||
mFrameVsyncId(-1),
|
||||
mFrameDeadline(std::numeric_limits<int64_t>::max()){}
|
||||
TimeLord::TimeLord()
|
||||
: mFrameIntervalNanos(milliseconds_to_nanoseconds(16))
|
||||
, mFrameTimeNanos(0)
|
||||
, mFrameIntendedTimeNanos(0)
|
||||
, mFrameVsyncId(UiFrameInfoBuilder::INVALID_VSYNC_ID)
|
||||
, mFrameDeadline(std::numeric_limits<int64_t>::max()) {}
|
||||
|
||||
bool TimeLord::vsyncReceived(nsecs_t vsync, nsecs_t intendedVsync, int64_t vsyncId,
|
||||
int64_t frameDeadline, nsecs_t frameInterval) {
|
||||
if (intendedVsync > mFrameIntendedTimeNanos) {
|
||||
mFrameIntendedTimeNanos = intendedVsync;
|
||||
mFrameVsyncId = vsyncId;
|
||||
|
||||
// The intendedVsync might have been advanced to account for scheduling
|
||||
// jitter. Since we don't have a way to advance the vsync id we just
|
||||
// reset it.
|
||||
mFrameVsyncId = (vsyncId > mFrameVsyncId) ? vsyncId : UiFrameInfoBuilder::INVALID_VSYNC_ID;
|
||||
mFrameDeadline = frameDeadline;
|
||||
if (frameInterval > 0) {
|
||||
mFrameIntervalNanos = frameInterval;
|
||||
|
||||
Reference in New Issue
Block a user