diff options
author | 2021-11-04 19:32:24 +0000 | |
---|---|---|
committer | 2021-11-04 12:44:59 -0700 | |
commit | 3f0286607e9d35196fdff27f84381dffb7bafcad (patch) | |
tree | 13a1516759c73f6be74d56edc1d42dac04e9c7e0 /libs/gui/DisplayEventDispatcher.cpp | |
parent | 4488087777617032701d63495b2238aaf36b5eae (diff) |
Revert "Revert "Send multiple scheduler frame timelines.""
This reverts commit caaa47d60b83670206dcd3c34382719b1f247ab5.
Reason for revert: Fix the reverted CL in 2nd CL.
Bug: 198192508
Bug: 204941507
Test: See 2nd CL.
Change-Id: I15c693c2e0a82ef81a490319da11871bd74298b3
Diffstat (limited to 'libs/gui/DisplayEventDispatcher.cpp')
-rw-r--r-- | libs/gui/DisplayEventDispatcher.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libs/gui/DisplayEventDispatcher.cpp b/libs/gui/DisplayEventDispatcher.cpp index 6f1a7aed9c..c986b82fd8 100644 --- a/libs/gui/DisplayEventDispatcher.cpp +++ b/libs/gui/DisplayEventDispatcher.cpp @@ -130,6 +130,19 @@ int DisplayEventDispatcher::handleEvent(int, int events, void*) { return 1; // keep the callback } +void DisplayEventDispatcher::populateFrameTimelines(const DisplayEventReceiver::Event& event, + VsyncEventData* outVsyncEventData) const { + for (size_t i = 0; i < DisplayEventReceiver::kFrameTimelinesLength; i++) { + DisplayEventReceiver::Event::VSync::FrameTimeline receiverTimeline = + event.vsync.frameTimelines[i]; + outVsyncEventData->frameTimelines[i] = {.id = receiverTimeline.vsyncId, + .deadlineTimestamp = + receiverTimeline.deadlineTimestamp, + .expectedPresentTime = + receiverTimeline.expectedVSyncTimestamp}; + } +} + bool DisplayEventDispatcher::processPendingEvents(nsecs_t* outTimestamp, PhysicalDisplayId* outDisplayId, uint32_t* outCount, @@ -154,6 +167,9 @@ bool DisplayEventDispatcher::processPendingEvents(nsecs_t* outTimestamp, outVsyncEventData->deadlineTimestamp = ev.vsync.deadlineTimestamp; outVsyncEventData->frameInterval = ev.vsync.frameInterval; outVsyncEventData->expectedPresentTime = ev.vsync.expectedVSyncTimestamp; + outVsyncEventData->preferredFrameTimelineIndex = + ev.vsync.preferredFrameTimelineIndex; + populateFrameTimelines(ev, outVsyncEventData); break; case DisplayEventReceiver::DISPLAY_EVENT_HOTPLUG: dispatchHotplug(ev.header.timestamp, ev.header.displayId, ev.hotplug.connected); |