diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 50ac4e5e72..202387468a 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -585610456326bc455ffeb257f6d33d476b4ee3fc +ead227f118077d1f2b57842a32abaf105b573b8a diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index aa936280bf..f2779f31c3 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -420,6 +420,8 @@ class AndroidDevice extends Device { cmd.addAll(['--es', 'route', route]); if (debuggingOptions.enableSoftwareRendering) cmd.addAll(['--ez', 'enable-software-rendering', 'true']); + if (debuggingOptions.skiaDeterministicRendering) + cmd.addAll(['--ez', 'skia-deterministic-rendering', 'true']); if (debuggingOptions.traceSkia) cmd.addAll(['--ez', 'trace-skia', 'true']); if (debuggingOptions.debuggingEnabled) { diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 30809bb399..5397f6d72e 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -90,6 +90,10 @@ class RunCommand extends RunCommandBase { 'when testing Flutter on emulators. By default, Flutter will\n' 'attempt to either use OpenGL or Vulkan and fall back to software\n' 'when neither is available.'); + argParser.addFlag('skia-deterministic-rendering', + negatable: false, + help: 'When combined with --enable-software-rendering, provides 100%\n' + 'deterministic Skia rendering.'); argParser.addFlag('trace-skia', negatable: false, help: 'Enable tracing of Skia code. This is useful when debugging\n' @@ -229,6 +233,7 @@ class RunCommand extends RunCommandBase { startPaused: argResults['start-paused'], useTestFonts: argResults['use-test-fonts'], enableSoftwareRendering: argResults['enable-software-rendering'], + skiaDeterministicRendering: argResults['skia-deterministic-rendering'], traceSkia: argResults['trace-skia'], observatoryPort: observatoryPort, ); diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 0fcee66ed2..0adeb37256 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart @@ -320,6 +320,7 @@ class DebuggingOptions { DebuggingOptions.enabled(this.buildInfo, { this.startPaused: false, this.enableSoftwareRendering: false, + this.skiaDeterministicRendering: false, this.traceSkia: false, this.useTestFonts: false, this.observatoryPort, @@ -330,6 +331,7 @@ class DebuggingOptions { useTestFonts = false, startPaused = false, enableSoftwareRendering = false, + skiaDeterministicRendering = false, traceSkia = false, observatoryPort = null; @@ -338,6 +340,7 @@ class DebuggingOptions { final BuildInfo buildInfo; final bool startPaused; final bool enableSoftwareRendering; + final bool skiaDeterministicRendering; final bool traceSkia; final bool useTestFonts; final int observatoryPort; diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index 9aa78da886..9fd3505c4b 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -210,6 +210,9 @@ class IOSDevice extends Device { if (debuggingOptions.enableSoftwareRendering) launchArguments.add('--enable-software-rendering'); + if (debuggingOptions.skiaDeterministicRendering) + launchArguments.add('--skia-deterministic-rendering'); + if (debuggingOptions.traceSkia) launchArguments.add('--trace-skia'); diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index 86452b219b..f9d5b22ef5 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart @@ -332,6 +332,8 @@ class IOSSimulator extends Device { args.add('--enable-checked-mode'); if (debuggingOptions.startPaused) args.add('--start-paused'); + if (debuggingOptions.skiaDeterministicRendering) + args.add('--skia-deterministic-rendering'); if (debuggingOptions.useTestFonts) args.add('--use-test-fonts');