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

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

Merge "C++11 style fixups"

parents d4d18e29 c87be99c
Loading
Loading
Loading
Loading
+25 −16
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ namespace uirenderer {

#define UI_THREAD_FRAME_INFO_SIZE 9

HWUI_ENUM(FrameInfoIndex,
enum class FrameInfoIndex {
    kFlags = 0,
    kIntendedVsync,
    kVsync,
@@ -47,13 +47,14 @@ HWUI_ENUM(FrameInfoIndex,

    // Must be the last value!
    kNumIndexes
);
};

HWUI_ENUM(FrameInfoFlags,
enum class FrameInfoFlags {
    kWindowLayoutChanged = 1 << 0,
    kRTAnimation = 1 << 1,
    kSurfaceCanvas = 1 << 2,
);
};
MAKE_FLAGS_ENUM(FrameInfoFlags)

class ANDROID_API UiFrameInfoBuilder {
public:
@@ -62,17 +63,21 @@ public:
    }

    UiFrameInfoBuilder& setVsync(nsecs_t vsyncTime, nsecs_t intendedVsync) {
        mBuffer[FrameInfoIndex::kVsync] = vsyncTime;
        mBuffer[FrameInfoIndex::kIntendedVsync] = intendedVsync;
        set(FrameInfoIndex::kVsync) = vsyncTime;
        set(FrameInfoIndex::kIntendedVsync) = intendedVsync;
        return *this;
    }

    UiFrameInfoBuilder& addFlag(FrameInfoFlagsEnum flag) {
        mBuffer[FrameInfoIndex::kFlags] |= static_cast<uint64_t>(flag);
    UiFrameInfoBuilder& addFlag(FrameInfoFlags flag) {
        set(FrameInfoIndex::kFlags) |= static_cast<uint64_t>(flag);
        return *this;
    }

private:
    inline int64_t& set(FrameInfoIndex index) {
        return mBuffer[static_cast<int>(index)];
    }

    int64_t* mBuffer;
};

@@ -81,33 +86,37 @@ public:
    void importUiThreadInfo(int64_t* info);

    void markSyncStart() {
        mFrameInfo[FrameInfoIndex::kSyncStart] = systemTime(CLOCK_MONOTONIC);
        set(FrameInfoIndex::kSyncStart) = systemTime(CLOCK_MONOTONIC);
    }

    void markIssueDrawCommandsStart() {
        mFrameInfo[FrameInfoIndex::kIssueDrawCommandsStart] = systemTime(CLOCK_MONOTONIC);
        set(FrameInfoIndex::kIssueDrawCommandsStart) = systemTime(CLOCK_MONOTONIC);
    }

    void markSwapBuffers() {
        mFrameInfo[FrameInfoIndex::kSwapBuffers] = systemTime(CLOCK_MONOTONIC);
        set(FrameInfoIndex::kSwapBuffers) = systemTime(CLOCK_MONOTONIC);
    }

    void markFrameCompleted() {
        mFrameInfo[FrameInfoIndex::kFrameCompleted] = systemTime(CLOCK_MONOTONIC);
        set(FrameInfoIndex::kFrameCompleted) = systemTime(CLOCK_MONOTONIC);
    }

    int64_t operator[](FrameInfoIndexEnum index) const {
    int64_t operator[](FrameInfoIndex index) const {
        if (index == FrameInfoIndex::kNumIndexes) return 0;
        return mFrameInfo[static_cast<int>(index)];
    }

    int64_t operator[](int index) const {
        if (index < 0 || index >= FrameInfoIndex::kNumIndexes) return 0;
        return mFrameInfo[static_cast<int>(index)];
        if (index < 0 || index >= static_cast<int>(FrameInfoIndex::kNumIndexes)) return 0;
        return mFrameInfo[index];
    }

private:
    int64_t mFrameInfo[FrameInfoIndex::kNumIndexes];
    inline int64_t& set(FrameInfoIndex index) {
        return mFrameInfo[static_cast<int>(index)];
    }

    int64_t mFrameInfo[static_cast<int>(FrameInfoIndex::kNumIndexes)];
};

} /* namespace uirenderer */
+5 −5
Original line number Diff line number Diff line
@@ -30,8 +30,8 @@ static const char* JANK_TYPE_NAMES[] = {
};

struct Comparison {
    FrameInfoIndexEnum start;
    FrameInfoIndexEnum end;
    FrameInfoIndex start;
    FrameInfoIndex end;
};

static const Comparison COMPARISONS[] = {
@@ -91,15 +91,15 @@ void JankTracker::setFrameInterval(nsecs_t frameInterval) {
}

void JankTracker::addFrame(const FrameInfo& frame) {
    using namespace FrameInfoIndex;
    mTotalFrameCount++;
    // Fast-path for jank-free frames
    int64_t totalDuration = frame[kFrameCompleted] - frame[kIntendedVsync];
    int64_t totalDuration =
            frame[FrameInfoIndex::kFrameCompleted] - frame[FrameInfoIndex::kIntendedVsync];
    if (CC_LIKELY(totalDuration < mFrameInterval)) {
        return;
    }

    if (frame[kFlags] & EXEMPT_FRAMES_FLAGS) {
    if (frame[FrameInfoIndex::kFlags] & EXEMPT_FRAMES_FLAGS) {
        return;
    }

+1 −1
Original line number Diff line number Diff line
@@ -399,7 +399,7 @@ void CanvasContext::dumpFrames(int fd) {
            continue;
        }
        fprintf(file, "\n");
        for (int i = 0; i < FrameInfoIndex::kNumIndexes; i++) {
        for (int i = 0; i < static_cast<int>(FrameInfoIndex::kNumIndexes); i++) {
            fprintf(file, "%" PRId64 ",", frame[i]);
        }
    }
+2 −1
Original line number Diff line number Diff line
@@ -114,7 +114,8 @@ void DrawFrameTask::run() {

bool DrawFrameTask::syncFrameState(TreeInfo& info) {
    ATRACE_CALL();
    mRenderThread->timeLord().vsyncReceived(mFrameInfo[FrameInfoIndex::kVsync]);
    int64_t vsync = mFrameInfo[static_cast<int>(FrameInfoIndex::kVsync)];
    mRenderThread->timeLord().vsyncReceived(vsync);
    mContext->makeCurrent();
    Caches::getInstance().textureCache.resetMarkInUse();

+3 −2
Original line number Diff line number Diff line
@@ -52,10 +52,11 @@ namespace renderthread {
    MethodInvokeRenderTask* task = new MethodInvokeRenderTask((RunnableMethod) Bridge_ ## method); \
    ARGS(method) *args = (ARGS(method) *) task->payload()

HWUI_ENUM(DumpFlags,
enum class DumpFlags {
        kFrameStats = 1 << 0,
        kReset      = 1 << 1,
);
};
MAKE_FLAGS_ENUM(DumpFlags)

CREATE_BRIDGE4(createContext, RenderThread* thread, bool translucent,
        RenderNode* rootRenderNode, IContextFactory* contextFactory) {
Loading