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

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

Merge "Add stat collection start time"

parents 37c905e6 379f264b
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -169,6 +169,10 @@ void JankTracker::switchStorageToAshmem(int ashmemfd) {
    newData->jankFrameCount += mData->jankFrameCount;
    newData->jankFrameCount += mData->jankFrameCount;
    newData->totalFrameCount >>= divider;
    newData->totalFrameCount >>= divider;
    newData->totalFrameCount += mData->totalFrameCount;
    newData->totalFrameCount += mData->totalFrameCount;
    if (newData->statStartTime > mData->statStartTime
            || newData->statStartTime == 0) {
        newData->statStartTime = mData->statStartTime;
    }


    freeData();
    freeData();
    mData = newData;
    mData = newData;
@@ -235,6 +239,7 @@ void JankTracker::dumpBuffer(const void* buffer, size_t bufsize, int fd) {
}
}


void JankTracker::dumpData(const ProfileData* data, int fd) {
void JankTracker::dumpData(const ProfileData* data, int fd) {
    dprintf(fd, "\nStats since: %lluns", data->statStartTime);
    dprintf(fd, "\nTotal frames rendered: %u", data->totalFrameCount);
    dprintf(fd, "\nTotal frames rendered: %u", data->totalFrameCount);
    dprintf(fd, "\nJanky frames: %u (%.2f%%)", data->jankFrameCount,
    dprintf(fd, "\nJanky frames: %u (%.2f%%)", data->jankFrameCount,
            (float) data->jankFrameCount / (float) data->totalFrameCount * 100.0f);
            (float) data->jankFrameCount / (float) data->totalFrameCount * 100.0f);
@@ -252,6 +257,7 @@ void JankTracker::reset() {
    mData->frameCounts.fill(0);
    mData->frameCounts.fill(0);
    mData->totalFrameCount = 0;
    mData->totalFrameCount = 0;
    mData->jankFrameCount = 0;
    mData->jankFrameCount = 0;
    mData->statStartTime = systemTime(CLOCK_MONOTONIC);
}
}


uint32_t JankTracker::findPercentile(const ProfileData* data, int percentile) {
uint32_t JankTracker::findPercentile(const ProfileData* data, int percentile) {
+2 −1
Original line number Original line Diff line number Diff line
@@ -44,10 +44,11 @@ enum JankType {
struct ProfileData {
struct ProfileData {
    std::array<uint32_t, NUM_BUCKETS> jankTypeCounts;
    std::array<uint32_t, NUM_BUCKETS> jankTypeCounts;
    // See comments on kBucket* constants for what this holds
    // See comments on kBucket* constants for what this holds
    std::array<uint32_t, 57> frameCounts;
    std::array<uint32_t, 55> frameCounts;


    uint32_t totalFrameCount;
    uint32_t totalFrameCount;
    uint32_t jankFrameCount;
    uint32_t jankFrameCount;
    nsecs_t statStartTime;
};
};


// TODO: Replace DrawProfiler with this
// TODO: Replace DrawProfiler with this