OSDN Git Service

Drop less aggressively
authorJohn Reck <jreck@google.com>
Thu, 28 Jul 2016 02:28:05 +0000 (19:28 -0700)
committerJohn Reck <jreck@google.com>
Thu, 28 Jul 2016 02:28:05 +0000 (19:28 -0700)
Bug: 30342762

Frame dropping was too frequent and would trigger
during normal triple buffering steady state. Bump
the threshold to drop from 3ms stall to 6ms stall.

Change-Id: I5c1faeaabf0d02323a28e697a4af4105fbcf1c53

libs/hwui/renderthread/CanvasContext.cpp

index 4b9d7d5..82684c5 100644 (file)
@@ -199,6 +199,8 @@ static bool wasSkipped(FrameInfo* info) {
 }
 
 bool CanvasContext::isSwapChainStuffed() {
+    static const auto SLOW_THRESHOLD = 6_ms;
+
     if (mSwapHistory.size() != mSwapHistory.capacity()) {
         // We want at least 3 frames of history before attempting to
         // guess if the queue is stuffed
@@ -209,8 +211,8 @@ bool CanvasContext::isSwapChainStuffed() {
 
     // Was there a happy queue & dequeue time? If so, don't
     // consider it stuffed
-    if (swapA.dequeueDuration < 3_ms
-            && swapA.queueDuration < 3_ms) {
+    if (swapA.dequeueDuration < SLOW_THRESHOLD
+            && swapA.queueDuration < SLOW_THRESHOLD) {
         return false;
     }
 
@@ -225,8 +227,8 @@ bool CanvasContext::isSwapChainStuffed() {
 
         // Was there a happy queue & dequeue time? If so, don't
         // consider it stuffed
-        if (swapB.dequeueDuration < 3_ms
-                && swapB.queueDuration < 3_ms) {
+        if (swapB.dequeueDuration < SLOW_THRESHOLD
+                && swapB.queueDuration < SLOW_THRESHOLD) {
             return false;
         }