Add a stretchy benchmark
Test: this
Bug: 187718492
Change-Id: Idaf3a90567a4f90c7089159b496ddf4aac24bf05
diff --git a/libs/hwui/tests/macrobench/main.cpp b/libs/hwui/tests/macrobench/main.cpp
index 174a140..acbbb95 100644
--- a/libs/hwui/tests/macrobench/main.cpp
+++ b/libs/hwui/tests/macrobench/main.cpp
@@ -40,9 +40,9 @@
using namespace android::uirenderer;
using namespace android::uirenderer::test;
-static int gRepeatCount = 1;
static std::vector<TestScene::Info> gRunTests;
static TestScene::Options gOpts;
+static bool gRunLeakCheck = true;
std::unique_ptr<benchmark::BenchmarkReporter> gBenchmarkReporter;
void run(const TestScene::Info& info, const TestScene::Options& opts,
@@ -69,6 +69,7 @@
are offscreen rendered
--benchmark_format Set output format. Possible values are tabular, json, csv
--renderer=TYPE Sets the render pipeline to use. May be skiagl or skiavk
+ --skip-leak-check Skips the memory leak check
)");
}
@@ -170,6 +171,7 @@
Onscreen,
Offscreen,
Renderer,
+ SkipLeakCheck,
};
}
@@ -185,6 +187,7 @@
{"onscreen", no_argument, nullptr, LongOpts::Onscreen},
{"offscreen", no_argument, nullptr, LongOpts::Offscreen},
{"renderer", required_argument, nullptr, LongOpts::Renderer},
+ {"skip-leak-check", no_argument, nullptr, LongOpts::SkipLeakCheck},
{0, 0, 0, 0}};
static const char* SHORT_OPTIONS = "c:r:h";
@@ -214,20 +217,20 @@
break;
case 'c':
- gOpts.count = atoi(optarg);
- if (!gOpts.count) {
+ gOpts.frameCount = atoi(optarg);
+ if (!gOpts.frameCount) {
fprintf(stderr, "Invalid frames argument '%s'\n", optarg);
error = true;
}
break;
case 'r':
- gRepeatCount = atoi(optarg);
- if (!gRepeatCount) {
+ gOpts.repeatCount = atoi(optarg);
+ if (!gOpts.repeatCount) {
fprintf(stderr, "Invalid repeat argument '%s'\n", optarg);
error = true;
} else {
- gRepeatCount = (gRepeatCount > 0 ? gRepeatCount : INT_MAX);
+ gOpts.repeatCount = (gOpts.repeatCount > 0 ? gOpts.repeatCount : INT_MAX);
}
break;
@@ -283,6 +286,10 @@
gOpts.renderOffscreen = true;
break;
+ case LongOpts::SkipLeakCheck:
+ gRunLeakCheck = false;
+ break;
+
case 'h':
printHelp();
exit(EXIT_SUCCESS);
@@ -322,9 +329,6 @@
}
int main(int argc, char* argv[]) {
- // set defaults
- gOpts.count = 150;
-
Typeface::setRobotoTypefaceForTest();
parseOptions(argc, argv);
@@ -345,10 +349,8 @@
gBenchmarkReporter->ReportContext(context);
}
- for (int i = 0; i < gRepeatCount; i++) {
- for (auto&& test : gRunTests) {
- run(test, gOpts, gBenchmarkReporter.get());
- }
+ for (auto&& test : gRunTests) {
+ run(test, gOpts, gBenchmarkReporter.get());
}
if (gBenchmarkReporter) {
@@ -358,6 +360,8 @@
renderthread::RenderProxy::trimMemory(100);
HardwareBitmapUploader::terminate();
- LeakChecker::checkForLeaks();
+ if (gRunLeakCheck) {
+ LeakChecker::checkForLeaks();
+ }
return 0;
}