Revert "Revert "Tie vr flinger to persistent vr mode""
This reverts commit 7480c060. Transfer display control to vr flinger when persistent vr mode is entered, rather than when vr mode is entered. This allows cardboard apps, which will invoke vr mode but not persistent vr mode, to work as in N. This activates vr flinger at device boot for Daydream ready devices, which fixes an issue where an app would attempt to create a surface before vr flinger was running, which would hang indefinitely. The VrManager listener for persistent vr mode is put in vr flinger instead of surface flinger. This is cleaner since the vr interaction with the rest of the device is now consolidated in vr flinger. While testing I encountered a problem where vr flinger was given control of the display but vsync was turned off, causing vr flinger's post thread to hang. I changed the vr flinger logic to give control over vsync and other display settings to the post thread, and took the opportunity to further simplify and improve vr flinger's thread interactions. Bug: 35885165 Test: Manually confirmed that when persistent vr mode is not invoked we get the N-based render implementation, and when persistent vr mode is invoked we get vr flinger. Change-Id: I3b5ad599cc0748e38b861c714c4cc3118f854acf
Loading
Please register or sign in to comment