Fix transaction phase offsets

There are cases where we have multiple source of transactions
in one frame. In these cases, if a NORMAL gets submitted after an
EARLY, it will override the early one which will cause to use
the wrong phase offset for this frame.

In some cases an EARLY was then still scheduled before the frame
happened, so any kind of phase offset was observeable, which
looked like drifting.

Fix this by making sure an EARLY frame stays an EARLY frame.

Test: Open app. Ensure by looking really closely that vsync-sf is
happening at the supposed offset.
Bug: 75985430

Change-Id: I5dbf097d314767493b0f06b9eb6dd7c6b2f93919
2 files changed