surfaceflinger: fix color tranform matrix races

The color transform matrices may be updated by the binder threads
while being used by the main thread.  Protect the matrices with
mStateLock, compute the effective matrix when the individual
matrices are updated, and copy the effective matrix to mDrawingState
during commitTransaction.

This commit fixes the race and moves the matrix computation out of
the hot path.

Bug: 79210409
Test: night light, color correction, boosted
Change-Id: Ibdb756b7b66345ffcef3c665652e20b050865f6d
2 files changed