diff options
Diffstat (limited to 'libs/hwui/tests/main.cpp')
-rw-r--r-- | libs/hwui/tests/main.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/libs/hwui/tests/main.cpp b/libs/hwui/tests/main.cpp index 62782af..aca7c52 100644 --- a/libs/hwui/tests/main.cpp +++ b/libs/hwui/tests/main.cpp @@ -14,8 +14,6 @@ * limitations under the License. */ -#include <stdio.h> - #include <cutils/log.h> #include <gui/Surface.h> #include <ui/PixelFormat.h> @@ -28,6 +26,9 @@ #include "TestContext.h" +#include <stdio.h> +#include <unistd.h> + using namespace android; using namespace android::uirenderer; using namespace android::uirenderer::renderthread; @@ -93,16 +94,27 @@ public: animation.createContent(width, height, renderer); endRecording(renderer, rootNode); + // Do a few cold runs then reset the stats so that the caches are all hot + for (int i = 0; i < 3; i++) { + testContext.waitForVsync(); + proxy->syncAndDrawFrame(); + } + proxy->resetProfileInfo(); + for (int i = 0; i < animation.getFrameCount(); i++) { -#if !HWUI_NULL_GPU testContext.waitForVsync(); -#endif + // workaround b/20853441 + proxy->fence(); ATRACE_NAME("UI-Draw Frame"); + nsecs_t vsync = systemTime(CLOCK_MONOTONIC); + UiFrameInfoBuilder(proxy->frameInfo()) + .setVsync(vsync, vsync); animation.doFrame(i); proxy->syncAndDrawFrame(); } + proxy->dumpProfileInfo(STDOUT_FILENO, 0); rootNode->decStrong(nullptr); } }; |