diff options
author | John Reck <jreck@google.com> | 2021-02-03 16:30:51 -0500 |
---|---|---|
committer | Ady Abraham <adyabr@google.com> | 2021-02-03 15:30:05 -0800 |
commit | f516e3a36e069e99477c027eda448c3d6121a028 (patch) | |
tree | 646fddc04fdd9a14d5d9c158e31c8b3383a75419 /libs/hwui/renderthread/CanvasContext.cpp | |
parent | 621abeb8a9eb40516dc52494889da38714ca73fe (diff) |
Fix render_ahead properties
0 and -1 both meant default when 0 should mean
0 and -1 should mean default
Test: manual
Fixes: 179290765
Change-Id: Ia9aa5e3d83757282bfff776e083d6b3d7d29e9c0
Diffstat (limited to 'libs/hwui/renderthread/CanvasContext.cpp')
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index eacabfd1dbf9..42e93b69a89d 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -157,12 +157,14 @@ static void setBufferCount(ANativeWindow* window) { void CanvasContext::setSurface(ANativeWindow* window, bool enableTimeout) { ATRACE_CALL(); - if (mRenderAheadDepth == 0 && DeviceInfo::get()->getMaxRefreshRate() > 66.6f) { - mFixedRenderAhead = false; - mRenderAheadCapacity = 1; - } else { - mFixedRenderAhead = true; + if (mFixedRenderAhead) { mRenderAheadCapacity = mRenderAheadDepth; + } else { + if (DeviceInfo::get()->getMaxRefreshRate() > 66.6f) { + mRenderAheadCapacity = 1; + } else { + mRenderAheadCapacity = 0; + } } if (window) { @@ -762,11 +764,16 @@ bool CanvasContext::surfaceRequiresRedraw() { } void CanvasContext::setRenderAheadDepth(int renderAhead) { - if (renderAhead > 2 || renderAhead < 0 || mNativeSurface) { + if (renderAhead > 2 || renderAhead < -1 || mNativeSurface) { return; } - mFixedRenderAhead = true; - mRenderAheadDepth = static_cast<uint32_t>(renderAhead); + if (renderAhead == -1) { + mFixedRenderAhead = false; + mRenderAheadDepth = 0; + } else { + mFixedRenderAhead = true; + mRenderAheadDepth = static_cast<uint32_t>(renderAhead); + } } SkRect CanvasContext::computeDirtyRect(const Frame& frame, SkRect* dirty) { |