Add forceDrawNextFrame function for HardwareRenderer

The forceDraw flag in HardwareRenderer will ensure a frame is drawn when
requested even if it would end up drawing multiple frames in a single
vsync.

This is to help blast sync when we want to synchronize the
buffer. We want to make sure we are guaranteed a callback since we don't
want to wait for retries, especially in the case when trying to synchronize
multiple buffers.

There was already a global flag to handle this, but would use the flag
for all draws. This new function is set per draw so once a frame is
drawn it's unset. The global flag was only used for tests so updated the
test to set the flag before every draw and deleted the global property.

Test: Underlying code was in place. This is just piping a new setter. No
usages yet.
Test: TestSceneRunner
Bug: 200284684

Change-Id: Ie1c9950cabb7331cfed1721564a51a1a15cd1624
diff --git a/libs/hwui/tests/macrobench/TestSceneRunner.cpp b/libs/hwui/tests/macrobench/TestSceneRunner.cpp
index de2c621..613a6ae 100644
--- a/libs/hwui/tests/macrobench/TestSceneRunner.cpp
+++ b/libs/hwui/tests/macrobench/TestSceneRunner.cpp
@@ -104,7 +104,6 @@
         // If we're reporting GPU memory usage we need to first start with a clean slate
         RenderProxy::purgeCaches();
     }
-    Properties::forceDrawFrame = true;
     TestContext testContext;
     testContext.setRenderOffscreen(opts.renderOffscreen);
 
@@ -144,6 +143,7 @@
             .setVsync(vsync, vsync, UiFrameInfoBuilder::INVALID_VSYNC_ID,
                       UiFrameInfoBuilder::UNKNOWN_DEADLINE,
                       UiFrameInfoBuilder::UNKNOWN_FRAME_INTERVAL);
+        proxy->forceDrawNextFrame();
         proxy->syncAndDrawFrame();
     }
 
@@ -163,6 +163,7 @@
                           UiFrameInfoBuilder::UNKNOWN_DEADLINE,
                           UiFrameInfoBuilder::UNKNOWN_FRAME_INTERVAL);
             scene->doFrame(i);
+            proxy->forceDrawNextFrame();
             proxy->syncAndDrawFrame();
         }
         if (opts.reportFrametimeWeight) {