Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1aee2013 authored by John Reck's avatar John Reck Committed by Android (Google) Code Review
Browse files

Merge "Fix render_ahead properties" into sc-dev

parents debc58e0 f516e3a3
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -129,8 +129,9 @@ bool Properties::load() {

    runningInEmulator = base::GetBoolProperty(PROPERTY_QEMU_KERNEL, false);

    defaultRenderAhead = std::max(-1, std::min(2, base::GetIntProperty(PROPERTY_RENDERAHEAD,
            render_ahead().value_or(0))));
    defaultRenderAhead = std::max(
            -1,
            std::min(2, base::GetIntProperty(PROPERTY_RENDERAHEAD, render_ahead().value_or(-1))));

    return (prevDebugLayersUpdates != debugLayersUpdates) || (prevDebugOverdraw != debugOverdraw);
}
+15 −8
Original line number Diff line number Diff line
@@ -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;
    if (mFixedRenderAhead) {
        mRenderAheadCapacity = mRenderAheadDepth;
    } else {
        if (DeviceInfo::get()->getMaxRefreshRate() > 66.6f) {
            mRenderAheadCapacity = 1;
        } else {
        mFixedRenderAhead = true;
        mRenderAheadCapacity = mRenderAheadDepth;
            mRenderAheadCapacity = 0;
        }
    }

    if (window) {
@@ -764,12 +766,17 @@ bool CanvasContext::surfaceRequiresRedraw() {
}

void CanvasContext::setRenderAheadDepth(int renderAhead) {
    if (renderAhead > 2 || renderAhead < 0 || mNativeSurface) {
    if (renderAhead > 2 || renderAhead < -1 || mNativeSurface) {
        return;
    }
    if (renderAhead == -1) {
        mFixedRenderAhead = false;
        mRenderAheadDepth = 0;
    } else {
        mFixedRenderAhead = true;
        mRenderAheadDepth = static_cast<uint32_t>(renderAhead);
    }
}

SkRect CanvasContext::computeDirtyRect(const Frame& frame, SkRect* dirty) {
    if (frame.width() != mLastFrameWidth || frame.height() != mLastFrameHeight) {