Use separate Transaction object in SV

Currently, setAlpha was using mRtTransaction to send the SC transaction.
However, that's also used by positionChanged. This could cause
synchronization issues because both callbacks are invoked from a thread
pool with no synchronization ensured.

Instead, create a Transaction that's used just for FrameCallbacks.
FrameCallbacks will all occur on the same thread so it's safe to use the
same object. Additionally, created a separate transaction that should be
used for positionChanged. This is because it's invoked from a thread
pool can could interfere with the main render thread transactions.
Finally, use the original mRtTransaction only for places that are called
synchronously from renderThread.

Test: Hard to repro original issue. Bubbles works
Bug: 184559328
Change-Id: Ia5a36ad063c19e8a481a57170e47029f7c2c7ee7
1 file changed