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

Commit 283aebfd authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Update GpuStats/SFStats for puller API feedback" into rvc-dev am: f08d9c83 am: 4a80d62a

Change-Id: I6ecda7f6b015eae7cf0e54fcaf5231f326d1a25c
parents 61d2d3a5 4a80d62a
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -32,8 +32,8 @@ namespace android {

GpuStats::~GpuStats() {
    if (mStatsdRegistered) {
        AStatsManager_unregisterPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO);
        AStatsManager_unregisterPullAtomCallback(android::util::GPU_STATS_APP_INFO);
        AStatsManager_clearPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO);
        AStatsManager_clearPullAtomCallback(android::util::GPU_STATS_APP_INFO);
    }
}

@@ -178,10 +178,10 @@ void GpuStats::interceptSystemDriverStatsLocked() {

void GpuStats::registerStatsdCallbacksIfNeeded() {
    if (!mStatsdRegistered) {
        AStatsManager_registerPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO,
                                               GpuStats::pullAtomCallback, nullptr, this);
        AStatsManager_registerPullAtomCallback(android::util::GPU_STATS_APP_INFO,
                                               GpuStats::pullAtomCallback, nullptr, this);
        AStatsManager_setPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO, nullptr,
                                         GpuStats::pullAtomCallback, this);
        AStatsManager_setPullAtomCallback(android::util::GPU_STATS_APP_INFO, nullptr,
                                         GpuStats::pullAtomCallback, this);
        mStatsdRegistered = true;
    }
}
+6 −7
Original line number Diff line number Diff line
@@ -188,17 +188,16 @@ TimeStats::TimeStats(std::unique_ptr<StatsEventDelegate> statsDelegate,

TimeStats::~TimeStats() {
    std::lock_guard<std::mutex> lock(mMutex);
    mStatsDelegate->unregisterStatsPullAtomCallback(
            android::util::SURFACEFLINGER_STATS_GLOBAL_INFO);
    mStatsDelegate->unregisterStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO);
    mStatsDelegate->clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO);
    mStatsDelegate->clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO);
}

void TimeStats::onBootFinished() {
    std::lock_guard<std::mutex> lock(mMutex);
    mStatsDelegate->registerStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO,
                                                  TimeStats::pullAtomCallback, nullptr, this);
    mStatsDelegate->registerStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO,
                                                  TimeStats::pullAtomCallback, nullptr, this);
    mStatsDelegate->setStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO,
                                             nullptr, TimeStats::pullAtomCallback, this);
    mStatsDelegate->setStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO,
                                             nullptr, TimeStats::pullAtomCallback, this);
}

void TimeStats::parseArgs(bool asProto, const Vector<String16>& args, std::string& result) {
+7 −7
Original line number Diff line number Diff line
@@ -165,15 +165,15 @@ public:
        virtual AStatsEvent* addStatsEventToPullData(AStatsEventList* data) {
            return AStatsEventList_addStatsEvent(data);
        }
        virtual void registerStatsPullAtomCallback(int32_t atom_tag,
                                                   AStatsManager_PullAtomCallback callback,
        virtual void setStatsPullAtomCallback(int32_t atom_tag,
                                              AStatsManager_PullAtomMetadata* metadata,
                                              AStatsManager_PullAtomCallback callback,
                                              void* cookie) {
            return AStatsManager_registerPullAtomCallback(atom_tag, callback, metadata, cookie);
            return AStatsManager_setPullAtomCallback(atom_tag, metadata, callback, cookie);
        }

        virtual void unregisterStatsPullAtomCallback(int32_t atom_tag) {
            return AStatsManager_unregisterPullAtomCallback(atom_tag);
        virtual void clearStatsPullAtomCallback(int32_t atom_tag) {
            return AStatsManager_clearPullAtomCallback(atom_tag);
        }

        virtual void statsEventSetAtomId(AStatsEvent* event, uint32_t atom_id) {
+9 −10
Original line number Diff line number Diff line
@@ -152,9 +152,9 @@ public:
        struct AStatsEvent* addStatsEventToPullData(AStatsEventList*) override {
            return mEvent;
        }
        void registerStatsPullAtomCallback(int32_t atom_tag,
        void setStatsPullAtomCallback(int32_t atom_tag, AStatsManager_PullAtomMetadata*,
                                      AStatsManager_PullAtomCallback callback,
                                           AStatsManager_PullAtomMetadata*, void* cookie) override {
                                      void* cookie) override {
            mAtomTags.push_back(atom_tag);
            mCallback = callback;
            mCookie = cookie;
@@ -164,7 +164,7 @@ public:
            return (*mCallback)(atom_tag, nullptr, cookie);
        }

        MOCK_METHOD1(unregisterStatsPullAtomCallback, void(int32_t));
        MOCK_METHOD1(clearStatsPullAtomCallback, void(int32_t));
        MOCK_METHOD2(statsEventSetAtomId, void(AStatsEvent*, uint32_t));
        MOCK_METHOD2(statsEventWriteInt32, void(AStatsEvent*, int32_t));
        MOCK_METHOD2(statsEventWriteInt64, void(AStatsEvent*, int64_t));
@@ -261,18 +261,18 @@ TEST_F(TimeStatsTest, disabledByDefault) {
    ASSERT_FALSE(mTimeStats->isEnabled());
}

TEST_F(TimeStatsTest, registersCallbacksAfterBoot) {
TEST_F(TimeStatsTest, setsCallbacksAfterBoot) {
    mTimeStats->onBootFinished();
    EXPECT_THAT(mDelegate->mAtomTags,
                UnorderedElementsAre(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO,
                                     android::util::SURFACEFLINGER_STATS_LAYER_INFO));
}

TEST_F(TimeStatsTest, unregistersCallbacksOnDestruction) {
TEST_F(TimeStatsTest, clearsCallbacksOnDestruction) {
    EXPECT_CALL(*mDelegate,
                unregisterStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO));
                clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO));
    EXPECT_CALL(*mDelegate,
                unregisterStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO));
                clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO));
    mTimeStats.reset();
}

@@ -1039,8 +1039,7 @@ TEST_F(TimeStatsTest, layerStatsCallback_pullsMultipleBuckets) {
    insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 3, 4000000);
    insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 4, 5000000);

    // Now make sure that TimeStats flushes global stats to register the
    // callback.
    // Now make sure that TimeStats flushes global stats to set the callback.
    mTimeStats->setPowerMode(HWC_POWER_MODE_NORMAL);
    mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(3000000));
    mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(5000000));