78 Commits

Author SHA1 Message Date
Chinmay Garde
0dedb56d2f
[embedder] Avoid looking for the kernel binary in AOT builds. (#7577) 2019-01-24 14:22:39 -08:00
Brian Osman
50ddc3712f
Remove SkColorSpaceXformCanvas, use color-managed SkSurfaces instead (#7548)
Behavior (visual) changes should be very minor. Things that are to be expected:
* A few things were not color managed correctly by the transform canvas (color emoji, some color filters). Those will be handled correctly with the tagged surfaces (although we're always transforming to sRGB, so nothing should change until we target a wider gamut).
* Image filtering will happen in the source color space, rather than the destination. Very minor.
* The transform canvas did caching of images in the destination color space. Now, the conversion happens at draw time. If there are performance issues, images can be pre-converted to the destination with makeColorSpace().
2019-01-22 15:34:51 -05:00
Chinmay Garde
898b4f8da4
Allow embedders to specify AOT snapshot buffers. (#7538) 2019-01-18 16:32:35 -08:00
Chinmay Garde
a0b4d6b617
Configure the embedder in AOT in "profile" and "release" runtime modes. (#7533) 2019-01-18 12:24:21 -08:00
Chris Bracken
1e93a8eb39
Deprecate FlutterProjectArgs.main_path, packages_path (#7497)
As of Dart 2, running from Dart source is no longer supported.  Dart
code should now be compiled to kernel form and will be loaded by from
kernel.blob in the assets directory. We retain the struct members for ABI
stability. package_path is also not required since kernel blobs are
self-contained.
2019-01-16 12:47:39 -08:00
KyleWong
b058920cab Edit the bundleid so that it conform to UIT specifications. (#7503) 2019-01-16 11:35:39 -08:00
Chinmay Garde
26e02aaa23
Wire up support for external OpenGL textures for the embedder. (#7087) 2019-01-09 15:21:39 -08:00
Chris Bracken
08465e8000
Verify RunConfiguration is valid before running (#6922)
In cases where a valid IsolateConfiguration cannot be inferred, (e.g.,
settings.kernel_list_asset is missing) RunConfiguration can be created
with a null IsolateConfiguration. In such cases, bail out early with
kInvalidSettings.

Also adds a redundant paranoid check to EmbedderEngine::Run.
2018-12-16 14:07:42 -08:00
Chris Bracken
67cd7d4d3b
Compile embedder unit test Dart to kernel (#7231)
As of the migration to Dart 2, it has been necessary to compile Dart to
kernel prior to execution. The embedder currently requires that the
resulting kernel file be named `kernel_blob.bin` and be located at the
root of the assets directory passed to the embedder API.

This patch updates the test_fixtures build rule to perform a kernel
compile using frontend_server, outputting `kernel_blob.bin` to
`fixtures/test_target_name` directory, and updates the embedder
unittests to specify the kernel file rather than the Dart source file.

Since the kernel compiler requires a `main()` function to be defined, it
also updates `simple_main.dart` from runtime_unittests to define
`main()` rather than `simple_main()`.

This also updates all existing sub-targets to be testonly.

This relands commit ac9e521a1ddbb99816a93d92ce9fb70e950b3763, which was
reverted in commit 494112582932af98b282617d7a34b1fbb8c90307. Rather than
running as prebuilt_dart_action, we use dart_action to ensure the
frontend snapshot it compatible with the VM on which it's executed.
2018-12-16 12:23:18 -08:00
Chris Bracken
4941125829
Revert "Compile embedder unit test Dart to kernel (#7227)" (#7230)
This reverts commit ac9e521a1ddbb99816a93d92ce9fb70e950b3763.

This broke dynamic release mode builds of
//flutter/runtime:runtime_fixtures_kernel (likely all product-mode
builds).
2018-12-15 14:43:26 -08:00
Chris Bracken
ac9e521a1d
Compile embedder unit test Dart to kernel (#7227)
Compile embedder unit test Dart to kernel

As of the migration to Dart 2, it has been necessary to compile Dart to
kernel prior to execution. The embedder currently requires that the
resulting kernel file be named `kernel_blob.bin` and be located at the
root of the assets directory passed to the embedder API.

This patch updates the test_fixtures build rule to perform a kernel
compile using frontend_server, outputting `kernel_blob.bin` to
`fixtures/test_target_name` directory, and updates the embedder
unittests to specify the kernel file rather than the Dart source file.

Since the kernel compiler requires a `main()` function to be defined, it
also updates `simple_main.dart` from runtime_unittests to define
`main()` rather than `simple_main()`.

This also updates all existing sub-targets to be testonly.
2018-12-15 13:59:58 -08:00
Chris Bracken
dcfae4e803
Eliminate main_dart_file_path, package_file_path (#6973)
These settings were specific to Dart 1 and are no longer used in the
engine. This eliminates them from the Settings class.
2018-12-10 09:12:10 -08:00
Chris Bracken
25d99cd257
Use software renderer in embedder unittests (#6928)
Reduces spurious error log messages in GLContextMakeCurrent() attempting
set up the GR context:

  [ERROR:flutter/shell/gpu/gpu_surface_gl.cc(42)] Could not make the context current to setup the gr context.
2018-11-26 10:48:37 -08:00
Mehmet Fidanboylu
94dd7165ef
Skia Cleanup (#6786) 2018-11-07 15:29:52 -08:00
Michael Goderbauer
70a1106b50
Unify copyright lines (#6757) 2018-11-07 12:24:35 -08:00
Chinmay Garde
ba8f6aa71c
Handle Windows headers defining ERROR to 0 in log levels. (#6677) 2018-10-26 16:47:14 -07:00
Chinmay Garde
e78f86e011
Fix mac builds. Only Linux and Windows require default GL proc resolvers. (#6641) 2018-10-23 10:46:14 -07:00
James Clarke
52e48ab84a Fix Windows embedding. Appears that #6523 or #6525 introduced a bug for embedder scenarios causing the window native library to be incorrectly initialized and thus incapable of correctly resolving GL functions. This change fixes that. (#6624) 2018-10-23 09:47:53 -07:00
Chinmay Garde
08272ee6aa
Allow specifying custom toolchains and sysroots for host builds. (#6548)
Updates buildroot to https://github.com/flutter/buildroot/pull/180.
2018-10-15 14:18:02 -07:00
Jason Simmons
75e875240e
Fix the Mac embedder build (#6525) 2018-10-12 16:24:54 -07:00
Jason Simmons
7767c785b4
Provide a default GL function resolver in the embedder (#6523)
Also check whether the implementation behind the resolver is OpenGL or
OpenGL ES
2018-10-12 15:07:46 -07:00
Ben Konyi
6f8c827b25
Dart SDK roll for 2018-09-28 (#6388) 2018-09-28 18:02:04 -07:00
Chinmay Garde
f2a3df97e2
Wire up the Skia persistent GPU related artifacts cache. (#6278)
Also teaches FML to create files and directories.
2018-09-26 14:54:09 -07:00
Dan Field
89516aad94
Engine::Run returns enum: success, failure, or isolate already running (#6324)
* If isolate is already running, return true

* Use shell::Engine::RunStatus as result of Engine::Run
2018-09-24 18:01:22 -04:00
Ryan Macnak
60bb5da33c
Reapply "Some cleanups enabled by removing support for Dart 1" (#6250)
Following fixes in dart-lang/sdk@91cbb57cd5
2018-09-14 09:36:13 -07:00
Michael Goderbauer
6f459e2f10
Revert "Reapply "Some cleanups enabled by removing support for Dart 1" (#6216)" (#6232)
This reverts commit e3133e0e3f7cbbd57fa930c11f3640561d691eba.
2018-09-12 12:07:20 +02:00
Ryan Macnak
e3133e0e3f
Reapply "Some cleanups enabled by removing support for Dart 1." (#6216)
- Add missing Dart 2 flags to gen_snapshot invocation.
 - Disable brittle service test.
2018-09-10 17:03:54 -07:00
Chinmay Garde
b9523318ca
Allow embedders to specify a custom GL proc address resolver. (#6204)
This updates the embedder API but introduces no breaking ABI/API
changes.
2018-09-07 18:25:38 -07:00
Ryan Macnak
bf96dbed38
Revert "Some cleanups enabled by removing support for Dart. (#5621)" (#6205)
This reverts commit 4c2448d1591a5fab033de3885ad34d1fdf5474f1.
2018-09-07 17:39:51 -07:00
Ryan Macnak
4c2448d159
Some cleanups enabled by removing support for Dart. (#5621)
- Switch core snapshot to Dart 2 and remove support for loading platform.dill.
 - Remove support for loading script snapshots.
 - Remove support for loading source.
 - Remove settings and fix names to reflect the above.
 - Remove support for loading the service isolate from source.
2018-09-07 15:44:46 -07:00
Chinmay Garde
f25d89a2de
Fix windows embedder builds. (#6137) 2018-08-31 20:23:53 -07:00
Chinmay Garde
b3c778fe9c
Allow embedders to specify software renderer configs. (#6133) 2018-08-31 20:03:06 -07:00
Chinmay Garde
47a1ce0e62
Allow embedders to set the root surface transformation. (#6085) 2018-08-28 14:13:49 -07:00
Chinmay Garde
3087090149
Allow embedders to invalidate FBO bindings after present. (#6084) 2018-08-24 16:53:13 -07:00
Chinmay Garde
c822ab26cf
Allow building the embedder API for the target toolchains. (#6069) 2018-08-22 16:42:47 -07:00
Martin Kustermann
81baff97c2
Switch all embedders to use platform_strong.dill instead of platform.dill (the flutter_tester binary already does this) (#6024) 2018-08-15 17:45:11 +02:00
Michael Goderbauer
a76054f4b6
Switch to minimal ICU data config for flutter (#5922) 2018-08-01 17:24:07 -07:00
Chinmay Garde
9f8285ac6c
Remove all dependencies on Garnet. (#5869) 2018-07-26 12:49:34 -07:00
Jason Simmons
0bad812c72
Migrate to a standalone Tonic repository separated from Topaz (#5817) 2018-07-23 11:49:35 -07:00
Ryan Macnak
fe9dd64d70
Replace AssetResolver GetAsBuffer with GetAsMapping. (#5546)
Toward no-copy loading of kernel.
2018-06-19 14:24:19 -07:00
Chinmay Garde
b537231b7a
Fix build issues for the embedder on Windows. (#5386) 2018-05-25 15:20:36 -07:00
Chinmay Garde
8caa7612f8
Create a shell with no GPU configurations unless explicitly specified by the platform. (#5383) 2018-05-25 14:31:01 -07:00
Chinmay Garde
b067d79ce9
Copy embedder header to the out directory. (#5379)
This allows the stable header to be referenced from a known location. Also reduces the visibility of the framework target so that it is automatically built on the mac.
2018-05-25 12:09:36 -07:00
Chinmay Garde
e25c70c64c
Explicitly package vm and isolate snapshots on desktop and embedder targets. (#5368)
These snapshots used to be included (from the runtime target) in the executable if AOT mode was disabled. The mobile shells now include this snapshot in the kernel snapshot generated on the host. However the target that run on the host still need this. The tester target was already patched but the desktop embedder targets were overlooked. The unit tests passed on the embedder target because the unit tester exectuable was including the snapshot in addition to the dylib. Now the dylib itself depends on the snapshot directly.
2018-05-24 16:05:39 -07:00
Ryan Macnak
86d96fd0ce
Reapply "Don't link the core snapshot in the Android engine." (#5353)
Add back the core snapshot to runtime_unittests and embedder_unittests.
2018-05-23 17:09:51 -07:00
Ryan Macnak
78f8a0f45a
[fuchsia] Changes for running Dart 2 on flutter_runner. (#5080)
- Remove assumption that we're in Dart 2 mode only if there's a platform kernel.
 - Load core snapshots from the package instead of linking them in.
2018-04-25 13:31:13 -07:00
Chinmay Garde
3cc8d82895
Fix more Linux unittest targets. (#5045) 2018-04-18 18:15:50 -07:00
Chinmay Garde
d4729abaf7
Update the embedder GN target to use a source set instead of a complete static library. (#5040)
Creating a dylib from a “complete” static library does not propagate symbol visisbility definitions. I also got rid of the static library and used a source set instead because we don’t need to do the extra work for other targets.
2018-04-18 12:50:22 -07:00
Jason Simmons
572c5844aa
Configure kernel paths in the embedder if the asset directory contains the kernel assets (#5039)
"flutter build bundle" in Dart 2 mode now builds an assets directory
containing the application and platform kernels along with the app's other
assets.

With this patch, embedders can run these bundles by setting
FlutterProjectArgs.assets_path to the bundle directory.  In this scenario,
FlutterProjectArgs.main_path and packages_path will be ignored.
2018-04-18 12:12:39 -07:00
Chinmay Garde
58e84c8bf0
Re-land "Support multiple shells in a single process. (#4932)" (#4998)
* Re-land "Support multiple shells in a single process. (#4932)"

This reverts commit 723c7d01439da4261bc836075fb55651ce9e7f03.
2018-04-13 13:48:15 -07:00