Add back one Skia test on iOS (#125663)
Fixes https://github.com/flutter/flutter/issues/125648
This commit is contained in:
parent
888b208d62
commit
50f83fc277
10
.ci.yaml
10
.ci.yaml
@ -3812,6 +3812,16 @@ targets:
|
||||
["devicelab", "ios", "mac"]
|
||||
task_name: new_gallery_ios__transition_perf
|
||||
|
||||
- name: Mac_ios new_gallery_skia_ios__transition_perf
|
||||
bringup: true
|
||||
recipe: devicelab/devicelab_drone
|
||||
presubmit: false
|
||||
timeout: 60
|
||||
properties:
|
||||
tags: >
|
||||
["devicelab", "ios", "mac"]
|
||||
task_name: new_gallery_skia_ios__transition_perf
|
||||
|
||||
- name: Mac_ios ios_picture_cache_complexity_scoring_perf__timeline_summary
|
||||
recipe: devicelab/devicelab_drone
|
||||
presubmit: false
|
||||
|
@ -145,7 +145,6 @@
|
||||
/dev/devicelab/bin/tasks/tiles_scroll_perf__timeline_summary.dart @zanderso @flutter/engine
|
||||
|
||||
## Mac iOS DeviceLab tests
|
||||
/dev/devicelab/bin/tasks/animated_complex_opacity_perf_impeller_ios__e2e_summary.dart @cyanglaz @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animated_complex_opacity_perf_ios__e2e_summary.dart @cyanglaz @flutter/engine
|
||||
/dev/devicelab/bin/tasks/animation_with_microtasks_perf_ios__timeline_summary.dart @iskakaushik @flutter/engine
|
||||
/dev/devicelab/bin/tasks/backdrop_filter_perf_ios__timeline_summary.dart @cyanglaz @flutter/engine
|
||||
@ -187,6 +186,7 @@
|
||||
/dev/devicelab/bin/tasks/microbenchmarks_ios.dart @cyanglaz @flutter/engine
|
||||
/dev/devicelab/bin/tasks/native_platform_view_ui_tests_ios.dart @hellohuanlin @flutter/ios
|
||||
/dev/devicelab/bin/tasks/new_gallery_ios__transition_perf.dart @zanderso @flutter/engine
|
||||
/dev/devicelab/bin/tasks/new_gallery_skia_ios__transition_perf.dart @zanderso @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_channel_sample_test_ios.dart @cyanglaz @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_channel_sample_test_swift.dart @cyanglaz @flutter/engine
|
||||
/dev/devicelab/bin/tasks/platform_channels_benchmarks_ios.dart @gaaclarke @flutter/engine
|
||||
|
@ -1,14 +0,0 @@
|
||||
// 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:async';
|
||||
|
||||
import 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createAnimatedComplexOpacityPerfE2ETest(enableImpeller: true));
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// 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 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createBackdropFilterPerfTest(enableImpeller: true));
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
// 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:async';
|
||||
|
||||
import 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createColorFilterAndFadePerfE2ETest(enableImpeller: true));
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// 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 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createComplexLayoutScrollPerfTest(badScroll: true, enableImpeller: true));
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// 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 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createComplexLayoutScrollPerfTest(enableImpeller: true));
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// 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 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/gallery.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createGalleryTransitionE2ETest(enableImpeller: true));
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
// 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:async';
|
||||
|
||||
import 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createFullscreenTextfieldPerfE2ETest(enableImpeller: true));
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// 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 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createImageFilteredTransformAnimationPerfTest(enableImpeller: true));
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
// 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 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/microbenchmarks.dart';
|
||||
|
||||
/// Runs microbenchmarks on iOS.
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createMicrobenchmarkTask(enableImpeller: true));
|
||||
}
|
@ -17,7 +17,7 @@ Future<void> main() async {
|
||||
final Directory galleryDir = Directory(path.join(galleryParentDir.path, 'gallery'));
|
||||
|
||||
try {
|
||||
await task(NewGalleryPerfTest(galleryDir, enableImpeller: true).run);
|
||||
await task(NewGalleryPerfTest(galleryDir, enableImpeller: false).run);
|
||||
} finally {
|
||||
rmTree(galleryParentDir);
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// 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 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createUiKitViewScrollPerfTest(enableImpeller: true));
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// 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 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createSimpleAnimationPerfTest(enableImpeller: true));
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
// 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 'package:flutter_devicelab/framework/devices.dart';
|
||||
import 'package:flutter_devicelab/framework/framework.dart';
|
||||
import 'package:flutter_devicelab/tasks/perf_tests.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
deviceOperatingSystem = DeviceOperatingSystem.ios;
|
||||
await task(createTilesScrollPerfTest(enableImpeller: true));
|
||||
}
|
@ -28,7 +28,7 @@ TaskFunction createGalleryTransitionTest({bool semanticsEnabled = false}) {
|
||||
TaskFunction createGalleryTransitionE2EBuildTest(
|
||||
List<String> args, {
|
||||
bool semanticsEnabled = false,
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return GalleryTransitionBuildTest(
|
||||
args,
|
||||
@ -44,7 +44,7 @@ TaskFunction createGalleryTransitionE2EBuildTest(
|
||||
|
||||
TaskFunction createGalleryTransitionE2ETest({
|
||||
bool semanticsEnabled = false,
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return GalleryTransitionTest(
|
||||
testFile: semanticsEnabled
|
||||
@ -91,14 +91,14 @@ class GalleryTransitionTest {
|
||||
this.driverFile,
|
||||
this.measureCpuGpu = true,
|
||||
this.measureMemory = true,
|
||||
this.enableImpeller = false,
|
||||
this.enableImpeller,
|
||||
});
|
||||
|
||||
final bool semanticsEnabled;
|
||||
final bool needFullTimeline;
|
||||
final bool measureCpuGpu;
|
||||
final bool measureMemory;
|
||||
final bool enableImpeller;
|
||||
final bool? enableImpeller;
|
||||
final String testFile;
|
||||
final String timelineSummaryFile;
|
||||
final String? timelineTraceFile;
|
||||
@ -136,7 +136,8 @@ class GalleryTransitionTest {
|
||||
await flutter('drive', options: <String>[
|
||||
'--no-dds',
|
||||
'--profile',
|
||||
if (enableImpeller) '--enable-impeller',
|
||||
if (enableImpeller != null && enableImpeller!) '--enable-impeller',
|
||||
if (enableImpeller != null && !enableImpeller!) '--no-enable-impeller',
|
||||
if (needFullTimeline)
|
||||
'--trace-startup',
|
||||
if (applicationBinaryPath != null)
|
||||
@ -235,14 +236,14 @@ class GalleryTransitionBuildTest extends BuildTestTask {
|
||||
this.driverFile,
|
||||
this.measureCpuGpu = true,
|
||||
this.measureMemory = true,
|
||||
this.enableImpeller = false,
|
||||
this.enableImpeller,
|
||||
}) : super(workingDirectory: galleryDirectory);
|
||||
|
||||
final bool semanticsEnabled;
|
||||
final bool needFullTimeline;
|
||||
final bool measureCpuGpu;
|
||||
final bool measureMemory;
|
||||
final bool enableImpeller;
|
||||
final bool? enableImpeller;
|
||||
final String testFile;
|
||||
final String timelineSummaryFile;
|
||||
final String? timelineTraceFile;
|
||||
@ -280,7 +281,8 @@ class GalleryTransitionBuildTest extends BuildTestTask {
|
||||
return <String>[
|
||||
'--no-dds',
|
||||
'--profile',
|
||||
if (enableImpeller) '--enable-impeller',
|
||||
if (enableImpeller != null && enableImpeller!) '--enable-impeller',
|
||||
if (enableImpeller != null && !enableImpeller!) '--no-enable-impeller',
|
||||
if (needFullTimeline) '--trace-startup',
|
||||
'-t',
|
||||
'test_driver/$testFile.dart',
|
||||
|
@ -15,7 +15,7 @@ import '../microbenchmarks.dart';
|
||||
|
||||
/// Creates a device lab task that runs benchmarks in
|
||||
/// `dev/benchmarks/microbenchmarks` reports results to the dashboard.
|
||||
TaskFunction createMicrobenchmarkTask({bool enableImpeller = false}) {
|
||||
TaskFunction createMicrobenchmarkTask({bool? enableImpeller}) {
|
||||
return () async {
|
||||
final Device device = await devices.workingDevice;
|
||||
await device.unlock();
|
||||
@ -32,7 +32,8 @@ TaskFunction createMicrobenchmarkTask({bool enableImpeller = false}) {
|
||||
// --release doesn't work on iOS due to code signing issues
|
||||
'--profile',
|
||||
'--no-publish-port',
|
||||
if (enableImpeller) '--enable-impeller',
|
||||
if (enableImpeller != null && enableImpeller) '--enable-impeller',
|
||||
if (enableImpeller != null && !enableImpeller) '--no-enable-impeller',
|
||||
'-d',
|
||||
device.deviceId,
|
||||
];
|
||||
|
@ -14,14 +14,13 @@ class NewGalleryPerfTest extends PerfTest {
|
||||
this.galleryDir, {
|
||||
String timelineFileName = 'transitions',
|
||||
String dartDefine = '',
|
||||
bool enableImpeller = false,
|
||||
super.enableImpeller,
|
||||
super.timeoutSeconds,
|
||||
}) : super(
|
||||
galleryDir.path,
|
||||
'test_driver/transitions_perf.dart',
|
||||
timelineFileName,
|
||||
dartDefine: dartDefine,
|
||||
enableImpeller: enableImpeller,
|
||||
);
|
||||
|
||||
@override
|
||||
|
@ -26,7 +26,7 @@ String _testOutputDirectory(String testDirectory) {
|
||||
TaskFunction createComplexLayoutScrollPerfTest({
|
||||
bool measureCpuGpu = true,
|
||||
bool badScroll = false,
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return PerfTest(
|
||||
'${flutterDirectory.path}/dev/benchmarks/complex_layout',
|
||||
@ -39,7 +39,7 @@ TaskFunction createComplexLayoutScrollPerfTest({
|
||||
).run;
|
||||
}
|
||||
|
||||
TaskFunction createTilesScrollPerfTest({bool enableImpeller = false}) {
|
||||
TaskFunction createTilesScrollPerfTest({bool? enableImpeller}) {
|
||||
return PerfTest(
|
||||
'${flutterDirectory.path}/dev/benchmarks/complex_layout',
|
||||
'test_driver/scroll_perf.dart',
|
||||
@ -48,7 +48,7 @@ TaskFunction createTilesScrollPerfTest({bool enableImpeller = false}) {
|
||||
).run;
|
||||
}
|
||||
|
||||
TaskFunction createUiKitViewScrollPerfTest({bool enableImpeller = false}) {
|
||||
TaskFunction createUiKitViewScrollPerfTest({bool? enableImpeller}) {
|
||||
return PerfTest(
|
||||
'${flutterDirectory.path}/dev/benchmarks/platform_views_layout',
|
||||
'test_driver/uikit_view_scroll_perf.dart',
|
||||
@ -59,7 +59,7 @@ TaskFunction createUiKitViewScrollPerfTest({bool enableImpeller = false}) {
|
||||
).run;
|
||||
}
|
||||
|
||||
TaskFunction createUiKitViewScrollPerfNonIntersectingTest({bool enableImpeller = false}) {
|
||||
TaskFunction createUiKitViewScrollPerfNonIntersectingTest({bool? enableImpeller}) {
|
||||
return PerfTest(
|
||||
'${flutterDirectory.path}/dev/benchmarks/platform_views_layout',
|
||||
'test_driver/uikit_view_scroll_perf_non_intersecting.dart',
|
||||
@ -130,7 +130,7 @@ TaskFunction createCubicBezierPerfE2ETest() {
|
||||
|
||||
TaskFunction createBackdropFilterPerfTest({
|
||||
bool measureCpuGpu = true,
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return PerfTest(
|
||||
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
|
||||
@ -174,7 +174,7 @@ TaskFunction createPostBackdropFilterPerfTest({bool measureCpuGpu = true}) {
|
||||
|
||||
TaskFunction createSimpleAnimationPerfTest({
|
||||
bool measureCpuGpu = true,
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return PerfTest(
|
||||
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
|
||||
@ -364,7 +364,7 @@ TaskFunction createFullscreenTextfieldPerfTest() {
|
||||
}
|
||||
|
||||
TaskFunction createFullscreenTextfieldPerfE2ETest({
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return PerfTest.e2e(
|
||||
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
|
||||
@ -390,7 +390,7 @@ TaskFunction createColorFilterAndFadePerfTest() {
|
||||
).run;
|
||||
}
|
||||
|
||||
TaskFunction createColorFilterAndFadePerfE2ETest({bool enableImpeller = false}) {
|
||||
TaskFunction createColorFilterAndFadePerfE2ETest({bool? enableImpeller}) {
|
||||
return PerfTest.e2e(
|
||||
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
|
||||
'test/color_filter_and_fade_perf_e2e.dart',
|
||||
@ -437,7 +437,7 @@ TaskFunction createFadingChildAnimationPerfTest() {
|
||||
}
|
||||
|
||||
TaskFunction createImageFilteredTransformAnimationPerfTest({
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return PerfTest(
|
||||
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
|
||||
@ -456,7 +456,7 @@ TaskFunction createsMultiWidgetConstructPerfE2ETest() {
|
||||
).run;
|
||||
}
|
||||
|
||||
TaskFunction createListTextLayoutPerfE2ETest({bool enableImpeller = false}) {
|
||||
TaskFunction createListTextLayoutPerfE2ETest({bool? enableImpeller}) {
|
||||
return PerfTest.e2e(
|
||||
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
|
||||
'test/list_text_layout_perf_e2e.dart',
|
||||
@ -630,7 +630,7 @@ TaskFunction createGradientStaticPerfE2ETest() {
|
||||
}
|
||||
|
||||
TaskFunction createAnimatedBlurBackropFilterPerfTest({
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return PerfTest(
|
||||
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
|
||||
@ -643,7 +643,7 @@ TaskFunction createAnimatedBlurBackropFilterPerfTest({
|
||||
}
|
||||
|
||||
TaskFunction createAnimatedComplexOpacityPerfE2ETest({
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return PerfTest.e2e(
|
||||
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
|
||||
@ -653,7 +653,7 @@ TaskFunction createAnimatedComplexOpacityPerfE2ETest({
|
||||
}
|
||||
|
||||
TaskFunction createAnimatedComplexImageFilteredPerfE2ETest({
|
||||
bool enableImpeller = false,
|
||||
bool? enableImpeller,
|
||||
}) {
|
||||
return PerfTest.e2e(
|
||||
'${flutterDirectory.path}/dev/benchmarks/macrobenchmarks',
|
||||
@ -944,8 +944,8 @@ class PerfTest {
|
||||
String? resultFilename,
|
||||
this.device,
|
||||
this.flutterDriveCallback,
|
||||
this.enableImpeller = false,
|
||||
this.timeoutSeconds,
|
||||
this.enableImpeller,
|
||||
}): _resultFilename = resultFilename;
|
||||
|
||||
const PerfTest.e2e(
|
||||
@ -960,8 +960,8 @@ class PerfTest {
|
||||
String resultFilename = 'e2e_perf_summary',
|
||||
this.device,
|
||||
this.flutterDriveCallback,
|
||||
this.enableImpeller = false,
|
||||
this.timeoutSeconds,
|
||||
this.enableImpeller,
|
||||
}) : saveTraceFile = false, timelineFileName = null, _resultFilename = resultFilename;
|
||||
|
||||
/// The directory where the app under test is defined.
|
||||
@ -994,7 +994,7 @@ class PerfTest {
|
||||
final FlutterDriveCallback? flutterDriveCallback;
|
||||
|
||||
/// Whether the perf test should enable Impeller.
|
||||
final bool enableImpeller;
|
||||
final bool? enableImpeller;
|
||||
|
||||
/// Number of seconds to time out the test after, allowing debug callbacks to run.
|
||||
final int? timeoutSeconds;
|
||||
@ -1068,7 +1068,8 @@ class PerfTest {
|
||||
...<String>['--use-existing-app', existingApp],
|
||||
if (dartDefine.isNotEmpty)
|
||||
...<String>['--dart-define', dartDefine],
|
||||
if (enableImpeller) '--enable-impeller',
|
||||
if (enableImpeller != null && enableImpeller!) '--enable-impeller',
|
||||
if (enableImpeller != null && !enableImpeller!) '--no-enable-impeller',
|
||||
'-d',
|
||||
deviceId,
|
||||
];
|
||||
|
Loading…
x
Reference in New Issue
Block a user