Merge "Fix vr flinger post thread to resume correctly" into oc-dr1-dev am: 4bfb7550af
am: 21802dacac

Change-Id: Iddbcd0b9b3a89bd5b3f47400143669421edb743d
diff --git a/libs/vr/libvrflinger/hardware_composer.cpp b/libs/vr/libvrflinger/hardware_composer.cpp
index 00172a1..d937c88 100644
--- a/libs/vr/libvrflinger/hardware_composer.cpp
+++ b/libs/vr/libvrflinger/hardware_composer.cpp
@@ -210,9 +210,6 @@
 }
 
 void HardwareComposer::OnPostThreadResumed() {
-  if (request_display_callback_)
-    request_display_callback_(true);
-
   hwc2_hidl_->resetCommands();
 
   // HIDL HWC seems to have an internal race condition. If we submit a frame too
@@ -249,9 +246,6 @@
 
   // Trigger target-specific performance mode change.
   property_set(kDvrPerformanceProperty, "idle");
-
-  if (request_display_callback_)
-    request_display_callback_(false);
 }
 
 HWC::Error HardwareComposer::Validate(hwc2_display_t display) {
@@ -479,6 +473,9 @@
     pending_surfaces_ = std::move(surfaces);
   }
 
+  if (request_display_callback_)
+    request_display_callback_(!display_idle);
+
   // Set idle state based on whether there are any surfaces to handle.
   UpdatePostThreadState(PostThreadState::Idle, display_idle);
 }