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

Commit d4b43b3c authored by Chris Craik's avatar Chris Craik
Browse files

Fix off by one error in log tracking

bug:8875715

Additionally moves op logging before the op is executed, to print
correctly, in pre-order traversal

Change-Id: I4e9566261f8363c73739d183e6d82b854f72ffad
parent 5d6dc425
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -98,8 +98,8 @@ public:
#if DEBUG_DISPLAY_LIST_OPS_AS_EVENTS
            renderer.eventMark(op->name());
#endif
            status |= op->applyDraw(renderer, dirty);
            logBuffer.writeCommand(0, op->name());
            status |= op->applyDraw(renderer, dirty);

#if DEBUG_MERGE_BEHAVIOR
            Rect& bounds = mOps[i]->state.mBounds;
@@ -200,10 +200,10 @@ public:
        }

        DrawOp* op = mOps[0];
        status_t status = op->multiDraw(renderer, dirty, mOps, mBounds);
        DisplayListLogBuffer& buffer = DisplayListLogBuffer::getInstance();
        buffer.writeCommand(0, "multiDraw");
        buffer.writeCommand(1, op->name());
        status_t status = op->multiDraw(renderer, dirty, mOps, mBounds);

#if DEBUG_MERGE_BEHAVIOR
        renderer.drawScreenSpaceColorRect(mBounds.left, mBounds.top, mBounds.right, mBounds.bottom,
+1 −1
Original line number Diff line number Diff line
@@ -511,8 +511,8 @@ void DisplayList::iterate(OpenGLRenderer& renderer, T& handler, const int level)
    for (unsigned int i = 0; i < mDisplayListData->displayListOps.size(); i++) {
        DisplayListOp *op = mDisplayListData->displayListOps[i];

        handler(op, saveCount, mClipToBounds);
        logBuffer.writeCommand(level, op->name());
        handler(op, saveCount, mClipToBounds);
    }

    DISPLAY_LIST_LOGD("%*sRestoreToCount %d", (level + 1) * 2, "", restoreTo);
+3 −2
Original line number Diff line number Diff line
@@ -77,12 +77,13 @@ void DisplayListLogBuffer::outputCommands(FILE *file)
        if (tmpBufferPtr == mEnd) {
            break;
        }

        fprintf(file, "%*s%s\n", 2 * tmpBufferPtr->level, "", tmpBufferPtr->label);

        OpLog* nextOp = tmpBufferPtr++;
        if (tmpBufferPtr > mBufferLast) {
            tmpBufferPtr = mBufferFirst;
        }

        fprintf(file, "%*s%s\n", tmpBufferPtr->level*2, "", tmpBufferPtr->label);
    }
}