Confirmed users
346
edits
| Line 32: | Line 32: | ||
==== Order to dispatch Vsync events ==== | ==== Order to dispatch Vsync events ==== | ||
Current Design: | Our Current Design: | ||
VsyncDispatcherHost: | VsyncDispatcherHost: | ||
1. notify the main thread to handle input event. | 1. notify the main thread to handle input event. | ||
| Line 47: | Line 47: | ||
We also need to wait the APZ to update the frame matrix and forward any required input events to the child processes before we notify the compositor and refresh driver. Thus, we will have the most up to date touch coordinates rather than have a racy condition where we might process the previous touch event versus the latest touch events when we composite. | We also need to wait the APZ to update the frame matrix and forward any required input events to the child processes before we notify the compositor and refresh driver. Thus, we will have the most up to date touch coordinates rather than have a racy condition where we might process the previous touch event versus the latest touch events when we composite. | ||
Note1: We need to wait the APZC processed the input event in step 1, then do the remaining task. We might have a large delay for context switch. | |||
[[File:Vsync_Threads_Context_Switch.jpg|800px|Project Silk architecture]] | |||
[ | Note2: If we have [https://bugzilla.mozilla.org/show_bug.cgi?id=930939 Bug 930939], the order will be: | ||
VsyncDispatcherHost: | |||
1. APZ processs input event '''at VsyncDispatcher thread'''. | |||
2. compositor parent to do compose. | |||
3. send vsync event to content process. | |||
4. tick Chrome refresh driver | |||
VsyncDispatcherClient: | |||
1. tick Content refresh driver | |||
==== Life cycle ==== | ==== Life cycle ==== | ||