Skip to content

Commit 7d31fe3

Browse files
authored
[Impeller] Plumb through the enable-vulkan-validation flag. (#123808)
[Impeller] Plumb through the enable-vulkan-validation flag.
1 parent d163620 commit 7d31fe3

File tree

5 files changed

+23
-0
lines changed

5 files changed

+23
-0
lines changed

packages/flutter_tools/lib/src/android/android_device.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,8 @@ class AndroidDevice extends Device {
660660
...<String>['--ez', 'enable-impeller', 'true'],
661661
if (debuggingOptions.enableImpeller == ImpellerStatus.disabled)
662662
...<String>['--ez', 'enable-impeller', 'false'],
663+
if (debuggingOptions.enableVulkanValidation)
664+
...<String>['--ez', 'enable-vulkan-validation', 'true'],
663665
if (debuggingOptions.debuggingEnabled) ...<String>[
664666
if (debuggingOptions.buildInfo.isDebug) ...<String>[
665667
...<String>['--ez', 'enable-checked-mode', 'true'],

packages/flutter_tools/lib/src/commands/run.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
183183
addAndroidSpecificBuildOptions(hide: !verboseHelp);
184184
usesFatalWarningsOption(verboseHelp: verboseHelp);
185185
addEnableImpellerFlag(verboseHelp: verboseHelp);
186+
addEnableVulkanValidationFlag(verboseHelp: verboseHelp);
186187
addEnableEmbedderApiFlag(verboseHelp: verboseHelp);
187188
}
188189

@@ -196,6 +197,7 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
196197
bool get runningWithPrebuiltApplication => argResults![FlutterOptions.kUseApplicationBinary] != null;
197198
bool get trackWidgetCreation => boolArg('track-widget-creation');
198199
ImpellerStatus get enableImpeller => ImpellerStatus.fromBool(argResults!['enable-impeller'] as bool?);
200+
bool get enableVulkanValidation => boolArg('enable-vulkan-validation');
199201
bool get uninstallFirst => boolArg('uninstall-first');
200202
bool get enableEmbedderApi => boolArg('enable-embedder-api');
201203

@@ -237,6 +239,7 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
237239
webBrowserDebugPort: webBrowserDebugPort,
238240
webBrowserFlags: webBrowserFlags,
239241
enableImpeller: enableImpeller,
242+
enableVulkanValidation: enableVulkanValidation,
240243
uninstallFirst: uninstallFirst,
241244
enableDartProfiling: enableDartProfiling,
242245
enableEmbedderApi: enableEmbedderApi,
@@ -285,6 +288,7 @@ abstract class RunCommandBase extends FlutterCommand with DeviceBasedDevelopment
285288
nullAssertions: boolArg('null-assertions'),
286289
nativeNullAssertions: boolArg('native-null-assertions'),
287290
enableImpeller: enableImpeller,
291+
enableVulkanValidation: enableVulkanValidation,
288292
uninstallFirst: uninstallFirst,
289293
serveObservatory: boolArg('serve-observatory'),
290294
enableDartProfiling: enableDartProfiling,

packages/flutter_tools/lib/src/device.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -965,6 +965,7 @@ class DebuggingOptions {
965965
this.nullAssertions = false,
966966
this.nativeNullAssertions = false,
967967
this.enableImpeller = ImpellerStatus.platformDefault,
968+
this.enableVulkanValidation = false,
968969
this.uninstallFirst = false,
969970
this.serveObservatory = false,
970971
this.enableDartProfiling = true,
@@ -986,6 +987,7 @@ class DebuggingOptions {
986987
this.cacheSkSL = false,
987988
this.traceAllowlist,
988989
this.enableImpeller = ImpellerStatus.platformDefault,
990+
this.enableVulkanValidation = false,
989991
this.uninstallFirst = false,
990992
this.enableDartProfiling = true,
991993
this.enableEmbedderApi = false,
@@ -1059,6 +1061,7 @@ class DebuggingOptions {
10591061
required this.nullAssertions,
10601062
required this.nativeNullAssertions,
10611063
required this.enableImpeller,
1064+
required this.enableVulkanValidation,
10621065
required this.uninstallFirst,
10631066
required this.serveObservatory,
10641067
required this.enableDartProfiling,
@@ -1098,6 +1101,7 @@ class DebuggingOptions {
10981101
final bool webUseSseForDebugBackend;
10991102
final bool webUseSseForInjectedClient;
11001103
final ImpellerStatus enableImpeller;
1104+
final bool enableVulkanValidation;
11011105
final bool serveObservatory;
11021106
final bool enableDartProfiling;
11031107
final bool enableEmbedderApi;
@@ -1230,6 +1234,7 @@ class DebuggingOptions {
12301234
'nullAssertions': nullAssertions,
12311235
'nativeNullAssertions': nativeNullAssertions,
12321236
'enableImpeller': enableImpeller.asBool,
1237+
'enableVulkanValidation': enableVulkanValidation,
12331238
'serveObservatory': serveObservatory,
12341239
'enableDartProfiling': enableDartProfiling,
12351240
'enableEmbedderApi': enableEmbedderApi,
@@ -1278,6 +1283,7 @@ class DebuggingOptions {
12781283
nullAssertions: json['nullAssertions']! as bool,
12791284
nativeNullAssertions: json['nativeNullAssertions']! as bool,
12801285
enableImpeller: ImpellerStatus.fromBool(json['enableImpeller'] as bool?),
1286+
enableVulkanValidation: (json['enableVulkanValidation'] as bool?) ?? false,
12811287
uninstallFirst: (json['uninstallFirst'] as bool?) ?? false,
12821288
serveObservatory: (json['serveObservatory'] as bool?) ?? false,
12831289
enableDartProfiling: (json['enableDartProfiling'] as bool?) ?? true,

packages/flutter_tools/lib/src/runner/flutter_command.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1060,6 +1060,15 @@ abstract class FlutterCommand extends Command<void> {
10601060
);
10611061
}
10621062

1063+
void addEnableVulkanValidationFlag({required bool verboseHelp}) {
1064+
argParser.addFlag('enable-vulkan-validation',
1065+
hide: !verboseHelp,
1066+
help: 'Enable vulkan validation on the Impeller rendering backend if '
1067+
'Vulkan is in use and the validation layers are available to the '
1068+
'application.',
1069+
);
1070+
}
1071+
10631072
void addEnableEmbedderApiFlag({required bool verboseHelp}) {
10641073
argParser.addFlag('enable-embedder-api',
10651074
hide: !verboseHelp,

packages/flutter_tools/test/commands.shard/hermetic/run_test.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,7 @@ void main() {
10501050
'--null-assertions',
10511051
'--native-null-assertions',
10521052
'--enable-impeller',
1053+
'--enable-vulkan-validation',
10531054
'--trace-systrace',
10541055
'--enable-software-rendering',
10551056
'--skia-deterministic-rendering',
@@ -1068,6 +1069,7 @@ void main() {
10681069
expect(options.nativeNullAssertions, true);
10691070
expect(options.traceSystrace, true);
10701071
expect(options.enableImpeller, ImpellerStatus.enabled);
1072+
expect(options.enableVulkanValidation, true);
10711073
expect(options.enableSoftwareRendering, true);
10721074
expect(options.skiaDeterministicRendering, true);
10731075
}, overrides: <Type, Generator>{

0 commit comments

Comments
 (0)