Rework blast sync callback model
The previous code waited for a frame complete callback from hwui before notifying WMS that a draw had occurred. However, frame complete callback was not guaranteed to get called since it only invokes a callback if a draw actually occured. VRI really needs a signal that RT has completed, since it just needs to know that a draw was possible so it can notify WMS that the RT completed its pass. Instead, rename frameCompleteCallback to frameCommitCallback since that API is exposed to a public API when a frame was actually drawn. Create a new callback, frameCompleteCallback, that is invoked when the draw has completed, regardless if a frame was actually drawn. When the frameCompleteCallback is invoked, VRI can check to see if a new frame actually drew. VRI can call into BBQ to see if the frame acquired matches the frame that was attempted to draw. If so, VRI can wait on a transaction callback. If not, it can allow VRI to continue. In either case, it will notify WMS that the draw has finished. Test: Split over and over Bug: 195262673 Change-Id: I24dd19ab2746be3fc33e597761abf8c5249f8b5b
Loading
Please register or sign in to comment