summaryrefslogtreecommitdiff
path: root/libs/hwui/ProfileData.cpp
AgeCommit message (Collapse)Author
2024-02-22Implement RenderThread for host Jerome Gaillard
This creates a host implementation of RenderThread in libhwui. In order to do this, it also implements ThreadBase, ReadBack, CacheManager. Most of those implementations are no-op. Bug: 322360037 Test: build libandroid_runtime on host Change-Id: If72f46fe9baa645ff95330b971a102c2db554bb6
2021-12-14Enable path clipping for View outlines Chet Haase
Clipping Views to Outlines has existed for several releases, as has providing a Path for shaping Oulines. However, using a Path-shaped Outline to clip a View against was specifically disabled internally, due to historical functionality limitations (prior to enabling Skia for HWUI rendering) as well as performance concerns. On current (even relatively low-end) hardware, path clipping is now sufficiently performant that we are enabling this functionality. This functionality will be used by AndroidX APIs that enable easier shaping via paths. Bug: 201807515 Test: Manual testing including hwui performance tests and CTS OutlineTest Change-Id: Ic61d9393cb72c6ad3517954177e5037a383a0c4d
2021-04-13Change hwui jank detection to use deadline & gpu completion (1/2) Jorim Jaggi
- Use GPU finish time as well as actual deadline to determine jank rate. - Use dynamic interval to adjust for 60/90hz switching - Move frame metrics reporting into JankTracker to adjust the deadline communicated to the app when in stuffing scenario. - Adjust double-stuffing detection to be a bit more readable. Test: GraphicsStatsValidationTest.java Test: adb shell dumpsys gfxinfo Test: FrameMetricsListenerTest Test: Log output of FrameMetricsObserver Bug: 169858044 Change-Id: I3a6b8ed163e2cf9cf2b67667110340ebe35f98a1
2020-01-10Expose HWUI metrics via statsd Stan Iliev
Add atom definition for HWUI stats. Implement a C++ statsd puller inside GraphicsStatsService service. GraphicsStatsService has new private API, which returns a serialized proto with HWUI stats grouped by application package and version. Test: Ran "adb shell cmd stats pull-source 10068" Test: Ran "statsd_testdrive 10068" and it looks OK Bug: 142665516 Change-Id: I400c0dbf9e25181d36f9018688b03d86839ac3de
2019-08-01Add GPU draw stats to gfxinfo and GraphicsStatsService Stan Iliev
Test: ran dumpsys with gfxinfo and graphicsstats Change-Id: Id9950de87dc4343c6878baa6a6dd42fbc8aeddef
2019-06-14Replace CLOCK_MONOTONIC with SYSTEM_TIME_MONOTONIC Jerome Gaillard
Using SYSTEM_TIME_MONOTONIC works for Android (where it translates to CLOCK_MONOTONIC) and host targets, while CLOCK_MONOTONIC is not defined on macOS. Bug: 117921091 Test: existing tests should pass Change-Id: I1fad472881830fb0701a320cf37319e083932ad4
2018-05-09A better HW Bitmap uploader John Reck
Move all HW bitmap upload operations off of RenderThread. Ensure EGL context outlives all upload requests Bug: 79250950 Test: builds, boots, systrace is good, CTS bitmap tests pass Change-Id: I5ace6c516d33b1afdf1a407cd8b183f6b60c22c1
2018-04-06Improving jank tests diagnostics Vadim Tryshev
When there were 0 total frames, ProfileData generates something like: Janky frames: 0 (nan%) Then the test fails to parse it, and ends up with a mysterious "Failed to parse NUM_JANKY" diag (see the bug). Making the case 0/0 a 0%. Bug: 77528721 Test: atest google/perf/jank/SystemUI/UbSystemUIJankTests:android.platform.systemui.tests.jank.LauncherJankTests#testOpenAllAppsContainer Change-Id: Ib65b80dc689f7b6ee06b108114ffd7de9d739721
2018-03-19Revert "Revert "Break down jank between frame drops vs. triple buffered"" John Reck
This reverts commit a6d8fbf4ea634f5f605b2b7db3ca98975f8625b5. Fixes an out-of-bounds read in COMPARISONS by switching up how comparisons works. Instead of requiring all jank types to have an associated COMPARISON's entry, which kHighInputLatency and kMissedDeadline don't, instead have each COMPARISON indicate which JankType it applies to so it can be independently sized from JankTypes. Bug: 70220906 Bug: 75566601 Test: launching & using maps works Change-Id: I7fd90daeb320b4627e42c3418c89726d860998c1
2018-03-19Revert "Break down jank between frame drops vs. triple buffered" Aaron Whyte
This reverts commit 09979fbee7201b46158c2c033194529e4284ea13. Reason for revert: Based on stacktraces and change history, I think this is causing a cluster of P crashes. https://b.corp.google.com/issues?q=(%22android%22%20%22:uirenderer::JankTracker::finishFrame%22) Bug: 75566601 Bug: 75811585 Bug: 75407175 Bug: 75736222 Bug: 75391447 Bug: 75659839 Change-Id: I59a8c2d8906d347210c77fb3628f5801bc299bfb
2018-03-14Break down jank between frame drops vs. triple buffered John Reck
Bug: 70220906 Test: JankyScene vs. systrace vs. jankstats Change-Id: Ia012685020cc5bcabbd3f92f0bdeb84eaf50733d
2017-11-03Format the world (or just HWUI) John Reck
Test: No code changes, just ran through clang-format Change-Id: Id23aa4ec7eebc0446fe3a30260f33e7fd455bb8c
2017-07-05Split out jank data from policy John Reck
Move ProfileData out to its own file with helper accessors. This keeps policy (what is/isn't jank) outside of the data storage. Also use lambdas to iterate over the histogram to make it nicer for dumping & proto-ifying. Test: hwui_unit_tests pass & jank data still dumps Change-Id: I88488369ec77590a2867f51128e65bb786aa34e6