hwui: send TextureView hint to SF

So that SF could use this hint when choosing the refresh rate.
SF would only try to heuristically calculate the frame rate of a layer
when TextureView is updating. This fixes a bug where SF tries to
heuristically calculate the frame rate for UI animations but fails
due to long frames.

Bug: 280249265
Test: Playing a video on Facebook and observe refresh rate
Test: go/cb-pcmark

Change-Id: I0d54d62b97ff48583fbe3cc0da188fe85810fd5e
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index f60c1f3..2bd400d 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -531,7 +531,7 @@
     }
 }
 
-void CanvasContext::draw() {
+void CanvasContext::draw(bool solelyTextureViewUpdates) {
     if (auto grContext = getGrContext()) {
         if (grContext->abandoned()) {
             LOG_ALWAYS_FATAL("GrContext is abandoned/device lost at start of CanvasContext::draw");
@@ -604,7 +604,8 @@
                     static_cast<int32_t>(mCurrentFrameInfo->get(FrameInfoIndex::InputEventId));
             native_window_set_frame_timeline_info(
                     mNativeSurface->getNativeWindow(), frameCompleteNr, vsyncId, inputEventId,
-                    mCurrentFrameInfo->get(FrameInfoIndex::FrameStartTime));
+                    mCurrentFrameInfo->get(FrameInfoIndex::FrameStartTime),
+                    solelyTextureViewUpdates);
         }
     }
 
@@ -885,7 +886,7 @@
     TreeInfo info(TreeInfo::MODE_RT_ONLY, *this);
     prepareTree(info, frameInfo, systemTime(SYSTEM_TIME_MONOTONIC), node);
     if (info.out.canDrawThisFrame) {
-        draw();
+        draw(info.out.solelyTextureViewUpdates);
     } else {
         // wait on fences so tasks don't overlap next frame
         waitOnFences();