772 Commits

Author SHA1 Message Date
gaaclarke
4c11ced794
lightweight flutter engines: sharing skia contexts for the io thread (#23508) 2021-01-13 13:04:16 -08:00
gaaclarke
07689c2d6e
share font collections between spawn engines (#23603) 2021-01-13 11:38:48 -08:00
gaaclarke
22bb891d63
Plumbing refactor to allow the usage of Dart_CreateIsolateInGroup (#23549)
Did the plumbing refactor that allows us to call Dart_CreateIsolateInGroup when applicable.
2021-01-12 16:43:12 -08:00
Michael Reed
0229f6cb17
Update virtual to take sampling (#23476) 2021-01-07 15:49:03 -08:00
Jason Simmons
83732f262c
Provide a runtime switch for selecting SkParagraph text layout (#23474) 2021-01-07 12:59:03 -08:00
Michael Reed
022bb11fa7
Remove dead code for 3x3 matrices (#23363)
Co-authored-by: Mike Reed <reed@google.com>
2021-01-05 08:54:20 -05:00
mikerreed
7cb464aedb
Switch to new virtuals on SkCanvas (#23350)
* Switch to new virtuals on SkCanvas

Co-authored-by: Mike Reed <reed@google.com>
2020-12-30 16:45:33 -05:00
David Worsham
b304148d46
fuchsia: Shutdown Dart VM properly (#23243) 2020-12-28 18:16:27 -08:00
Gary Qian
1c975f1e7c
AssetResolver updating in AssetManager for Dynamic features (#23130) 2020-12-23 17:39:55 -08:00
Dan Field
5a2244c581
Reland path volatility tracker, disabling it if deterministic rendering is requested (#23226)
* Reland path volatility tracker (#23063)" (#23220)

This reverts commit fceef3aaa9d156e8ec3f4a079c142921882f70d8.

* allow disabling based on whether deterministic rendering is needed
2020-12-22 08:25:20 -08:00
Dan Field
fceef3aaa9
Revert "Reland path volatility tracker (#23063)" (#23220)
This reverts commit 205d2b8e188be518c313c9b537429b566d36fa35.
2020-12-21 13:53:18 -08:00
Zachary Anderson
51c9ae9566
Add --strict_null_safety_checks to the Dart flag allowlist (#23144) 2020-12-17 09:44:00 -08:00
gaaclarke
9643c9d110
Started shutting down the sampler when it gets deleted (#23012) 2020-12-14 17:59:13 -08:00
Dan Field
205d2b8e18
Reland path volatility tracker (#23063)
* Revert "Revert "Set SkPath::setIsVolatile based on whether the path survives at least two frames (#22620)" (#23044)"

This reverts commit 4f914253bd7cd2a5cca3fd97213df37494e9bf37.

* Fix tracing
2020-12-14 17:21:55 -08:00
gaaclarke
f37c8c5796
Implemented FlutterEngineGroup and Spawn API. (#22975) 2020-12-14 17:07:44 -08:00
Dan Field
4f914253bd
Revert "Set SkPath::setIsVolatile based on whether the path survives at least two frames (#22620)" (#23044)
This reverts commit 2efc7c10aa12005010c837a1023024bb26bee143.
2020-12-11 15:39:24 -08:00
Dan Field
2efc7c10aa
Set SkPath::setIsVolatile based on whether the path survives at least two frames (#22620)
This patch defaults the volatility bit on SkPaths to false, and then flips it to true if the path survives at least two frames.
2020-12-10 13:57:23 -08:00
Gary Qian
8d4b7f3a68
Add split AOT loading unit failure/error code path (#22857) 2020-12-08 22:58:01 -08:00
mikerreed
6ae2594b97
opt into new Skia APIs (#22845) 2020-12-03 15:28:02 -08:00
zljj0818
48befc59d4
More rename from GPU thread to raster thread (#22819) 2020-12-03 15:03:02 -08:00
Gary Qian
fcbfa9f527
Split AOT Engine Runtime (#22624) 2020-12-02 13:28:01 -08:00
Kaushik Iska
eb6eabcb51
Reland "Introduce a delegate class for gpu metal rendering (#22611)" (#22777)
This reverts commit 0d71d27aa7d9058841bbba104021927c7f17b7ce.
2020-12-02 13:04:10 -06:00
Jonah Williams
d85cb10707
add trace kernel flag to allowlist (#22812) 2020-12-02 09:49:04 -08:00
Kaushik Iska
adb3312f0c
Revert "Introduce a delegate class for gpu metal rendering (#22611)" (#22775)
This reverts commit 5bf6533538e034bbfecd39680186e559c8a90da3.
2020-11-30 14:47:01 -06:00
Kaushik Iska
5bf6533538
Introduce a delegate class for gpu metal rendering (#22611) 2020-11-25 15:46:38 -06:00
Brian Osman
298bf68b10
Fix use of uninitialized memory in animator (#22714)
* Fix use of uninitialized memory in animator

Discovered via MSAN build of embedder_unittests
2020-11-24 14:51:31 -05:00
Chris Yang
054bfef24b
Fix shell_unittests flakes related to external_view_embedder (#22683) 2020-11-23 15:48:03 -08:00
Gary Qian
53fc019aab
Split AOT Android Embedder and shell (#22179) 2020-11-19 17:22:26 -08:00
gaaclarke
1c3bc02649
started providing the GPU sync switch to external view embedders (#22302) 2020-11-17 18:43:01 -08:00
Chris Yang
2c2e3a2885
re-enable skipandsubmitframe (#22546) 2020-11-17 09:53:01 -08:00
Dan Field
63a6fe3cf9
Opt in fixutres (#22502) 2020-11-13 12:02:07 -08:00
Kaushik Iska
1ff237fdca
Reland "remove surface dependance on external view embedder (#22468)" (#22470) 2020-11-12 15:37:12 -08:00
Dan Field
d07368169e
Limit heap growth on Android (#20473)
Limit heap growth to half of totalMem by default, with the option to set it higher or lower in the AndroidManifest
2020-11-12 14:53:54 -08:00
Kaushik Iska
021ff04336
Reverts 2 commits that remove surface dependance on external view embedder (#22468)
* Revert "Remove GetExternalViewEmbedder from surface (#22272)"

This reverts commit 5419f70f173db1c9f2d5db4c289560e68ce9b77b.

* Revert "Rasterizer is initialized with an external view embedder (#22405)"

This reverts commit f95df42e6e3d80f17c2024e9956768be9416717f.
2020-11-12 08:41:11 -08:00
Kaushik Iska
5419f70f17
Remove GetExternalViewEmbedder from surface (#22272)
This decouples surfaces from view embedders.
2020-11-11 13:45:24 -08:00
Kaushik Iska
f95df42e6e
Rasterizer is initialized with an external view embedder (#22405)
This allows us to not rely on surface methods for getting
the external view embedder.

Conflicts:
	shell/common/rasterizer.cc
	shell/common/rasterizer_unittests.cc
2020-11-11 12:49:03 -08:00
Kaushik Iska
caf678d30f
Move common graphics utils to //flutter/common/graphics (#22320) 2020-11-10 12:34:02 -08:00
Chris Yang
fb72023d38
Reland "Do not involve external_view_embedder in submit frame process if threads are not merged. #22275" (#22372) 2020-11-06 21:04:02 -08:00
Gary Qian
e231e3bc93
Remove extra method in ComputePlatformResolvedLocale (#22362) 2020-11-06 16:34:45 -08:00
Chris Bracken
74472ce6da
Revert "Rasterizer is initialized with an external view embedder (#22348)" (#22367)
This reverts commit 0d5f2e901d1953d04eb45004666d34a4537a0060.

Due to merge conflicts, this also reverts #22275:

Revert "Do not involve external_view_embedder in submit frame process if threads are not merged. (#22275)"

This reverts commit 016fbde1bb275288242e2cf097b52af1dd66ab06.
2020-11-06 15:26:47 -08:00
Chris Yang
016fbde1bb
Do not involve external_view_embedder in submit frame process if threads are not merged. (#22275) 2020-11-06 11:04:01 -08:00
Kaushik Iska
0d5f2e901d
Rasterizer is initialized with an external view embedder (#22348)
This allows us to not rely on surface methods for getting
the external view embedder.
2020-11-06 09:01:28 -08:00
Kaushik Iska
6e95e005f1
Platform views have CreateExternalViewEmbedder (#22214) 2020-11-06 05:30:48 -08:00
freiling
3105db8ee8
SKP based shader warmup (#20643) 2020-11-04 23:19:02 -08:00
gaaclarke
122f242588
added unit tests to the rasterizer (#22282) 2020-11-04 13:56:29 -08:00
gaaclarke
4e9459e007
Refactored the FlutterEngine to make it easier to implement spawn functionality (#21890) 2020-10-30 15:29:10 -07:00
stuartmorgan
06b0910e2d
Fix possible use of std::moved value in Rasterizer (#22125) 2020-10-28 18:12:03 -07:00
Filip Filmar
992689c70d
[fuchsia] Adds a test for timezone change (#21934) 2020-10-23 18:52:02 -07:00
Greg Spencer
6bc70e4a11
Reland: Migration to PlatformDispatcher and multi-window (#21932)
This re-lands #20496 and #21780 after fixing the semantics-enabling code that was causing the post-submit web_smoke_test to fail.

Below is the description from the original PR:

This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.

The design doc for this change is here.

The major changes in this PR:

Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:

Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.

The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
2020-10-22 14:54:25 -07:00
Chinmay Garde
defa8be2b1
Isolates launched by the engine instance use the settings of that instance. (#22052)
This regression was introduced in https://github.com/flutter/engine/pull/21820
for sound-null safety. The settings used to launch the VM were incorrectly used
to determine the isolate lifecycle callbacks. Since the first shell/engine in
the process also starts the VM, these objects are usually identical. However,
for subsequent engine shell/engine launches, the callbacks attached to the new
settings object would be ignored. The unit-test harness is also structured in
such a way that each test case tears down the VM before the next. So all
existing tests created a bespoke VM for the test run, and, the tests that did
create multiple isolates did not also test attaching callbacks to the settings
object.

Fixes https://github.com/flutter/engine/pull/22041
2020-10-22 02:20:50 -07:00