Merge changes from topic "surfacectrl"

* changes:
  Pass start time from HWUI canvas context.
  Implement timeline in libandroid ASurfaceControl.
This commit is contained in:
Rachel Lee 2021-12-15 20:02:30 +00:00 committed by Android (Google) Code Review
commit 7834d38d95
3 changed files with 12 additions and 2 deletions

View File

@ -526,8 +526,9 @@ nsecs_t CanvasContext::draw() {
if (vsyncId != UiFrameInfoBuilder::INVALID_VSYNC_ID) {
const auto inputEventId =
static_cast<int32_t>(mCurrentFrameInfo->get(FrameInfoIndex::InputEventId));
native_window_set_frame_timeline_info(mNativeSurface->getNativeWindow(), vsyncId,
inputEventId);
native_window_set_frame_timeline_info(
mNativeSurface->getNativeWindow(), vsyncId, inputEventId,
mCurrentFrameInfo->get(FrameInfoIndex::FrameStartTime));
}
}

View File

@ -263,6 +263,7 @@ LIBANDROID {
ASurfaceTransaction_setEnableBackPressure; # introduced=31
ASurfaceTransaction_setFrameRate; # introduced=30
ASurfaceTransaction_setFrameRateWithChangeStrategy; # introduced=31
ASurfaceTransaction_setFrameTimeline; # introduced=Tiramisu
ASurfaceTransaction_setGeometry; # introduced=29
ASurfaceTransaction_setHdrMetadata_cta861_3; # introduced=29
ASurfaceTransaction_setHdrMetadata_smpte2086; # introduced=29

View File

@ -659,3 +659,11 @@ void ASurfaceTransaction_setOnCommit(ASurfaceTransaction* aSurfaceTransaction, v
transaction->addTransactionCommittedCallback(callback, context);
}
void ASurfaceTransaction_setFrameTimeline(ASurfaceTransaction* aSurfaceTransaction,
int64_t vsyncId) {
CHECK_NOT_NULL(aSurfaceTransaction);
// TODO(b/210043506): Get start time from platform.
ASurfaceTransaction_to_Transaction(aSurfaceTransaction)
->setFrameTimelineInfo({.vsyncId = vsyncId, .startTimeNanos = 0});
}