diff options
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index d5b4e4187fe4..7b456007e4ae 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -3991,9 +3991,7 @@ public final class ViewRootImpl implements ViewParent, // when the values are applicable. setPreferredFrameRate(mPreferredFrameRate); setPreferredFrameRateCategory(mPreferredFrameRateCategory); - mLastPreferredFrameRateCategory = mPreferredFrameRateCategory; mPreferredFrameRateCategory = FRAME_RATE_CATEGORY_NO_PREFERENCE; - mLastPreferredFrameRate = mPreferredFrameRate; mPreferredFrameRate = 0; } @@ -11982,8 +11980,11 @@ public final class ViewRootImpl implements ViewParent, ? FRAME_RATE_CATEGORY_HIGH : preferredFrameRateCategory; try { - mFrameRateTransaction.setFrameRateCategory(mSurfaceControl, - frameRateCategory, false).apply(); + if (mLastPreferredFrameRateCategory != frameRateCategory) { + mFrameRateTransaction.setFrameRateCategory(mSurfaceControl, + frameRateCategory, false).applyAsyncUnsafe(); + mLastPreferredFrameRateCategory = frameRateCategory; + } } catch (Exception e) { Log.e(mTag, "Unable to set frame rate category", e); } @@ -12003,8 +12004,11 @@ public final class ViewRootImpl implements ViewParent, } try { - mFrameRateTransaction.setFrameRate(mSurfaceControl, - preferredFrameRate, Surface.FRAME_RATE_COMPATIBILITY_DEFAULT).apply(); + if (mLastPreferredFrameRate != preferredFrameRate) { + mFrameRateTransaction.setFrameRate(mSurfaceControl, preferredFrameRate, + Surface.FRAME_RATE_COMPATIBILITY_DEFAULT).applyAsyncUnsafe(); + mLastPreferredFrameRate = preferredFrameRate; + } } catch (Exception e) { Log.e(mTag, "Unable to set frame rate", e); } |