Loading libs/hwui/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ cc_defaults { "-DATRACE_TAG=ATRACE_TAG_VIEW", "-DLOG_TAG=\"OpenGLRenderer\"", "-Wall", "-Wthread-safety", "-Wno-unused-parameter", "-Wunreachable-code", "-Werror", Loading libs/hwui/JankTracker.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ JankTracker::JankTracker(ProfileDataContainer* globalData) mFrameIntervalLegacy = frameIntervalNanos; } void JankTracker::calculateLegacyJank(FrameInfo& frame) { void JankTracker::calculateLegacyJank(FrameInfo& frame) REQUIRES(mDataMutex) { // Fast-path for jank-free frames int64_t totalDuration = frame.duration(sFrameStart, FrameInfoIndex::SwapBuffersCompleted); if (mDequeueTimeForgivenessLegacy && frame[FrameInfoIndex::DequeueBufferDuration] > 500_us) { Loading Loading @@ -257,7 +257,7 @@ void JankTracker::finishFrame(FrameInfo& frame, std::unique_ptr<FrameMetricsRepo } } void JankTracker::recomputeThresholds(int64_t frameBudget) { void JankTracker::recomputeThresholds(int64_t frameBudget) REQUIRES(mDataMutex) { if (mThresholdsFrameBudget == frameBudget) { return; } Loading Loading @@ -308,7 +308,7 @@ void JankTracker::dumpFrames(int fd) { dprintf(fd, "\n---PROFILEDATA---\n\n"); } void JankTracker::reset() { void JankTracker::reset() REQUIRES(mDataMutex) { mFrames.clear(); mData->reset(); (*mGlobalData)->reset(); Loading libs/hwui/JankTracker.h +1 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ public: // Calculates the 'legacy' jank information, i.e. with outdated refresh rate information and // without GPU completion or deadlined information. void calculateLegacyJank(FrameInfo& frame); void dumpStats(int fd) { dumpData(fd, &mDescription, mData.get()); } void dumpStats(int fd) NO_THREAD_SAFETY_ANALYSIS { dumpData(fd, &mDescription, mData.get()); } void dumpFrames(int fd); void reset(); Loading libs/hwui/ProfileDataContainer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ namespace android { namespace uirenderer { void ProfileDataContainer::freeData() { void ProfileDataContainer::freeData() REQUIRES(mJankDataMutex) { if (mIsMapped) { munmap(mData, sizeof(ProfileData)); } else { Loading libs/hwui/ProfileDataContainer.h +3 −2 Original line number Diff line number Diff line Loading @@ -37,8 +37,9 @@ public: void rotateStorage(); void switchStorageToAshmem(int ashmemfd); ProfileData* get() { return mData; } ProfileData* operator->() { return mData; } ProfileData* get() NO_THREAD_SAFETY_ANALYSIS { return mData; } ProfileData* operator->() NO_THREAD_SAFETY_ANALYSIS { return mData; } std::mutex& getDataMutex() { return mJankDataMutex; } Loading Loading
libs/hwui/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ cc_defaults { "-DATRACE_TAG=ATRACE_TAG_VIEW", "-DLOG_TAG=\"OpenGLRenderer\"", "-Wall", "-Wthread-safety", "-Wno-unused-parameter", "-Wunreachable-code", "-Werror", Loading
libs/hwui/JankTracker.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ JankTracker::JankTracker(ProfileDataContainer* globalData) mFrameIntervalLegacy = frameIntervalNanos; } void JankTracker::calculateLegacyJank(FrameInfo& frame) { void JankTracker::calculateLegacyJank(FrameInfo& frame) REQUIRES(mDataMutex) { // Fast-path for jank-free frames int64_t totalDuration = frame.duration(sFrameStart, FrameInfoIndex::SwapBuffersCompleted); if (mDequeueTimeForgivenessLegacy && frame[FrameInfoIndex::DequeueBufferDuration] > 500_us) { Loading Loading @@ -257,7 +257,7 @@ void JankTracker::finishFrame(FrameInfo& frame, std::unique_ptr<FrameMetricsRepo } } void JankTracker::recomputeThresholds(int64_t frameBudget) { void JankTracker::recomputeThresholds(int64_t frameBudget) REQUIRES(mDataMutex) { if (mThresholdsFrameBudget == frameBudget) { return; } Loading Loading @@ -308,7 +308,7 @@ void JankTracker::dumpFrames(int fd) { dprintf(fd, "\n---PROFILEDATA---\n\n"); } void JankTracker::reset() { void JankTracker::reset() REQUIRES(mDataMutex) { mFrames.clear(); mData->reset(); (*mGlobalData)->reset(); Loading
libs/hwui/JankTracker.h +1 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ public: // Calculates the 'legacy' jank information, i.e. with outdated refresh rate information and // without GPU completion or deadlined information. void calculateLegacyJank(FrameInfo& frame); void dumpStats(int fd) { dumpData(fd, &mDescription, mData.get()); } void dumpStats(int fd) NO_THREAD_SAFETY_ANALYSIS { dumpData(fd, &mDescription, mData.get()); } void dumpFrames(int fd); void reset(); Loading
libs/hwui/ProfileDataContainer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ namespace android { namespace uirenderer { void ProfileDataContainer::freeData() { void ProfileDataContainer::freeData() REQUIRES(mJankDataMutex) { if (mIsMapped) { munmap(mData, sizeof(ProfileData)); } else { Loading
libs/hwui/ProfileDataContainer.h +3 −2 Original line number Diff line number Diff line Loading @@ -37,8 +37,9 @@ public: void rotateStorage(); void switchStorageToAshmem(int ashmemfd); ProfileData* get() { return mData; } ProfileData* operator->() { return mData; } ProfileData* get() NO_THREAD_SAFETY_ANALYSIS { return mData; } ProfileData* operator->() NO_THREAD_SAFETY_ANALYSIS { return mData; } std::mutex& getDataMutex() { return mJankDataMutex; } Loading