Adds an impeller variant of the new gallery transition perf benchmark (#100837)

This commit is contained in:
Zachary Anderson 2022-03-26 22:12:48 -07:00 committed by GitHub
parent 47f08a3fd6
commit 8acbf54930
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 43 additions and 0 deletions

View file

@ -3526,6 +3526,16 @@ targets:
["devicelab","ios","mac"]
task_name: new_gallery_ios__transition_perf
- name: Mac_ios new_gallery_impeller_ios__transition_perf
bringup: true # Flaky https://github.com/flutter/flutter/issues/96401
recipe: devicelab/devicelab_drone
presubmit: false
timeout: 60
properties:
tags: >
["devicelab","ios","mac"]
task_name: new_gallery_impeller_ios__transition_perf
- name: Mac_ios ios_picture_cache_complexity_scoring_perf__timeline_summary
recipe: devicelab/devicelab_drone
bringup: true

View file

@ -163,6 +163,7 @@
/dev/devicelab/bin/tasks/macos_chrome_dev_mode.dart @zanderso @flutter/tool
/dev/devicelab/bin/tasks/microbenchmarks_ios.dart @zanderso @flutter/engine
/dev/devicelab/bin/tasks/new_gallery_ios__transition_perf.dart @zanderso @flutter/engine
/dev/devicelab/bin/tasks/new_gallery_impeller_ios__transition_perf.dart @zanderso @flutter/engine
/dev/devicelab/bin/tasks/platform_channel_sample_test_ios.dart @zanderso @flutter/engine
/dev/devicelab/bin/tasks/platform_channel_sample_test_swift.dart @zanderso @flutter/engine
/dev/devicelab/bin/tasks/platform_channels_benchmarks_ios.dart @gaaclarke @flutter/engine

View file

@ -0,0 +1,24 @@
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:io';
import 'package:flutter_devicelab/framework/devices.dart';
import 'package:flutter_devicelab/framework/framework.dart';
import 'package:flutter_devicelab/framework/utils.dart';
import 'package:flutter_devicelab/tasks/new_gallery.dart';
import 'package:path/path.dart' as path;
Future<void> main() async {
deviceOperatingSystem = DeviceOperatingSystem.ios;
final Directory galleryParentDir = Directory.systemTemp.createTempSync('flutter_new_gallery_test.');
final Directory galleryDir = Directory(path.join(galleryParentDir.path, 'gallery'));
try {
await task(NewGalleryPerfTest(galleryDir, enableImpeller: true).run);
} finally {
rmTree(galleryParentDir);
}
}

View file

@ -14,11 +14,13 @@ class NewGalleryPerfTest extends PerfTest {
this.galleryDir, {
String timelineFileName = 'transitions',
String dartDefine = '',
bool enableImpeller = false,
}) : super(
galleryDir.path,
'test_driver/transitions_perf.dart',
timelineFileName,
dartDefine: dartDefine,
enableImpeller: enableImpeller,
);
@override

View file

@ -815,6 +815,7 @@ class PerfTest {
String? resultFilename,
this.device,
this.flutterDriveCallback,
this.enableImpeller = false,
}): _resultFilename = resultFilename;
const PerfTest.e2e(
@ -829,6 +830,7 @@ class PerfTest {
String resultFilename = 'e2e_perf_summary',
this.device,
this.flutterDriveCallback,
this.enableImpeller = false,
}) : saveTraceFile = false, timelineFileName = null, _resultFilename = resultFilename;
/// The directory where the app under test is defined.
@ -860,6 +862,9 @@ class PerfTest {
/// If it is not `null`, `flutter drive` will not happen in the PerfTests.
final FlutterDriveCallback? flutterDriveCallback;
/// Whether the perf test should enable Impeller.
final bool enableImpeller;
/// The keys of the values that need to be reported.
///
/// If it's `null`, then report:
@ -929,6 +934,7 @@ class PerfTest {
if (cacheSkSL) '--cache-sksl',
if (dartDefine.isNotEmpty)
...<String>['--dart-define', dartDefine],
if (enableImpeller) '--enable-impeller',
'-d',
deviceId,
];