SF: Fix initialization of mRefreshStartTime

Commit 64a0427a8f0d17cb89140336173c77110349009b introduced a bug
by re-arranging code in FE and BE by initializing mRefreshStartTime
in beginFrame which is invoked after preComposition, which is the
first place it is referenced.   This change moves the initialization
to be prior to usage.

Bug: 111647590
Test: run cts -m CtsDeqpTestCases, run cts -m CtsViewTestCases
Change-Id: Ia9856d5aafd668c78f0741979b472af830276e6e
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 7da01c9..df810c6 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1765,6 +1765,8 @@
     ATRACE_CALL();
     ALOGV("preComposition");
 
+    mRefreshStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
     bool needExtraInvalidate = false;
     mDrawingState.traverseInZOrder([&](Layer* layer) {
         if (layer->onPreComposition(mRefreshStartTime)) {
@@ -2218,8 +2220,6 @@
 
 void SurfaceFlinger::beginFrame()
 {
-    mRefreshStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
-
     for (const auto& [token, display] : mDisplays) {
         bool dirty = !display->getDirtyRegion(mRepaintEverything).isEmpty();
         bool empty = display->getVisibleLayersSortedByZ().size() == 0;