From ba36008af65325f03c076830f05aa2ad68ce58ed Mon Sep 17 00:00:00 2001 From: Carlo Bernaschina Date: Wed, 13 Sep 2017 12:59:05 -0700 Subject: [PATCH] Add --trace-skia parameter to flutter run (#12070) * Add --trace-skia parameter to flutter run Skia tracing is extremely useful for internal debug, but reduces the amount of space available in the Dart Timeline buffers. Disable skia tracing by default and expose them via the --trace-skia flag. * Roll Engine to 57a1445a45964d386500c39f5e8d06db060abadb --- bin/internal/engine.version | 2 +- packages/flutter_tools/lib/src/android/android_device.dart | 2 ++ packages/flutter_tools/lib/src/commands/run.dart | 6 ++++++ packages/flutter_tools/lib/src/device.dart | 3 +++ packages/flutter_tools/lib/src/ios/devices.dart | 3 +++ 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/bin/internal/engine.version b/bin/internal/engine.version index 08f2fe7ca6a..9611d26a754 100644 --- a/bin/internal/engine.version +++ b/bin/internal/engine.version @@ -1 +1 @@ -31d03de019794a4b0e3c98c04cf7be501fb962fb +57a1445a45964d386500c39f5e8d06db060abadb diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index a70a55318f3..8a688b2a9a4 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -404,6 +404,8 @@ class AndroidDevice extends Device { cmd.addAll(['--es', 'route', route]); if (debuggingOptions.enableSoftwareRendering) cmd.addAll(['--ez', 'enable-software-rendering', 'true']); + if (debuggingOptions.traceSkia) + cmd.addAll(['--ez', 'trace-skia', 'true']); if (debuggingOptions.debuggingEnabled) { if (debuggingOptions.buildInfo.isDebug) cmd.addAll(['--ez', 'enable-checked-mode', 'true']); diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index 22291859b06..17651d5f5a6 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -96,6 +96,11 @@ 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('trace-skia', + defaultsTo: false, + negatable: false, + help: 'Enable tracing of Skia code. This is useful when debugging\n' + 'the GPU thread. By default, Flutter will not log skia code.'); argParser.addFlag('use-test-fonts', negatable: true, defaultsTo: false, @@ -237,6 +242,7 @@ class RunCommand extends RunCommandBase { startPaused: argResults['start-paused'], useTestFonts: argResults['use-test-fonts'], enableSoftwareRendering: argResults['enable-software-rendering'], + traceSkia: argResults['trace-skia'], observatoryPort: observatoryPort, diagnosticPort: diagnosticPort, ); diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 9bc0634edb5..57b47044444 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart @@ -317,6 +317,7 @@ class DebuggingOptions { DebuggingOptions.enabled(this.buildInfo, { this.startPaused: false, this.enableSoftwareRendering: false, + this.traceSkia: false, this.useTestFonts: false, this.observatoryPort, this.diagnosticPort @@ -327,6 +328,7 @@ class DebuggingOptions { useTestFonts = false, startPaused = false, enableSoftwareRendering = false, + traceSkia = false, observatoryPort = null, diagnosticPort = null; @@ -335,6 +337,7 @@ class DebuggingOptions { final BuildInfo buildInfo; final bool startPaused; final bool enableSoftwareRendering; + final bool traceSkia; final bool useTestFonts; final int observatoryPort; final int diagnosticPort; diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index 6071b1e240a..693dc9c4e36 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -214,6 +214,9 @@ class IOSDevice extends Device { if (debuggingOptions.enableSoftwareRendering) launchArguments.add('--enable-software-rendering'); + if (debuggingOptions.traceSkia) + launchArguments.add('--trace-skia'); + if (platformArgs['trace-startup'] ?? false) launchArguments.add('--trace-startup');