700 Commits

Author SHA1 Message Date
George Wright
e25596c6a5
Disable ShellTest.SkipAndSubmitFrame for flakes (#21254) 2020-09-17 16:20:52 -07:00
Martin Kustermann
c0b75ffd19
Add --enable-isolate-groups to allowed flags in switches.cc (#21149)
This will allow customers to try out the lightweight isolate support in the Dart VM in AOT mode.

To be future proof, we also add the negative flags to the allow list, thereby allowing the Dart VM to
change the default in the future, while still allowing customers to opt out.

Issue b/158554251
2020-09-17 14:33:51 -07:00
Chris Bracken
08dabe9601
Clean up C++ includes (#21127)
Cleans up header order/grouping for consistency: associated header, C/C++ system/standard library headers, library headers, platform-specific #includes.

Adds <cstring> where strlen, memcpy are being used: there are a bunch of places we use them transitively.

Applies linter-required cleanups. Disables linter on one file due to included RapidJson header. See https://github.com/flutter/flutter/issues/65676

This patch does not cover flutter/shell/platform/darwin. There's a separate, slightly more intensive cleanup for those in progress.
2020-09-11 21:18:35 -07:00
Chris Bracken
16b900b63e
Prefer C++ standard headers to their C counterpart (#21091)
We currently use a mix of C standard includes (e.g. limits.h) and their
C++ variants (e.g. climits). This migrates to a consistent style for all
cases where the C++ variants are acceptable, but leaves the C
equivalents in place where they are required, such as in the embedder
API and other headers that may be used from C.
2020-09-11 17:10:00 -07:00
Emmanuel Garcia
85a7afa913
Add a new raster status kSkipAndRetry frame (#21059) 2020-09-11 16:29:11 -07:00
Jason Simmons
22982407d4
Check for a valid SkSL cache directory before calling VisitFiles (#21118)
The directory may be invalid when running shell_unittests because
some tests call SetCacheDirectoryPath and then delete the directory.
Later tests that try to use that cache base path will be unable to
open the directory.
2020-09-11 16:23:25 -07:00
Chris Bracken
36f7f3ca82
Copyright header hygiene improvements (#21089)
Add copyright headers in a few files where they were missing.

Trim trailing blank comment line where present, for consistency with
other engine code.

Use the standard libtxt copyright header in one file where it differed
(extra (C) and comma compared to other files in libtxt).

This also amends tools/const_finder/test/const_finder_test.dart to look
for a const an additional four lines down to account for the copyright
header added to the test fixture.
2020-09-11 08:55:37 -07:00
David Worsham
a52397e05f
fuchsia: Compile disabled RasterThreadMerger code (#20984) 2020-09-09 18:40:01 -07:00
chenjianguang
5271340b88
Fix usage of WeakPtr valid check (#20106) 2020-09-09 15:34:24 -07:00
Yuqian Li
00978035cd
Open a fresh dir during LoadSkSLs (#21050)
Fixes https://github.com/flutter/flutter/issues/65258

The following devicelab tests should pass after this patch:

- flutter_gallery_sksl_warmup__transition_perf_e2e_ios32
- flutter_gallery_sksl_warmup_ios32__transition_perf
2020-09-09 15:33:33 -07:00
Zachary Anderson
f7c7b41f0a
Revert "Enable lazy-async-stacks by-default in all modes (Take 3) (#20895)" (#21043)
This reverts commit 575a51948d81756c778352b40f639fa557325fd7.
2020-09-09 09:25:17 -07:00
Clement Skau
575a51948d
Enable lazy-async-stacks by-default in all modes (Take 3) (#20895)
Lazy async stacks were already enabled by-default in AOT mode in [0] - which made the
gen_snapshot invocations use "--lazy-async-stacks --no-causal-async-stacks".

This change does the same with the engine defaults, which makes this be enabled
by-default in JIT mode as well.

See go/dart-10x-faster-async for more information.

This is a re-land: A fix for what we believe to have caused the last revert has landed upstream in Dart in dart-lang/sdk@0004589

[0] flutter/flutter@3478232
2020-09-07 10:55:48 +02:00
Emmanuel Garcia
367c6dbd12
Don't use GetTaskQueueId() in rasterizer as it breaks Fuchsia (#20983) 2020-09-03 16:40:01 -07:00
Jim Graham
841401db8c
restore FML_DCHECK removed due to a code reviewing error (#20953) 2020-09-03 14:46:28 -07:00
0xZero
ac8b9c4c52
Member variables should appear before the |WeakPtrFactory|. (#20899) 2020-09-03 14:34:01 -07:00
Jason Simmons
d368b8763a
Log the results when ShellTest.Screenshot fails (#20932)
This test has been flaky on LUCI recently.

See https://github.com/flutter/flutter/issues/65026
2020-09-03 14:13:55 -07:00
Emmanuel Garcia
3f05b521b9
Always set the callback during Rasterizer setup (#20976) 2020-09-03 10:48:46 -07:00
Emmanuel Garcia
efb339f300
Only clear GL context after changing the thread configuration (#20965) 2020-09-02 22:10:02 -07:00
Emmanuel Garcia
61e057aa59
Clear GL context before Gr context (#20957) 2020-09-02 15:08:16 -07:00
Dan Field
634e499bcc
Use hint freed specifically for image disposal (#20754)
* Use hint freed specifically for image disposal
2020-09-02 13:41:58 -07:00
Emmanuel Garcia
615e668014
Clear the GL context only after submitting the frame (#20931)
* Clear the GL context only after submitting the frame
* Fix Screenshot test
2020-09-02 08:46:11 -07:00
Yuqian Li
5585ed9903
Revert "Create root isolate asynchronously (#20142)" (#20937)
This reverts commit 95f2b72728ee7e51800f1784e458e45dac675b3a.
2020-09-01 22:05:53 -07:00
chenjianguang
95f2b72728
Create root isolate asynchronously (#20142)
## Description
As the related issue refer, the application may be doing too much work on its main thread even in a simple hello_world demo.
That is because the creation of `Engine` on the ui thread takes a noticeable time, and it is blocking the platform thread in order to run `Shell::Setup` synchronously.
The cost of `Engine`'s constructor is mainly about the creating of root isolate. Actually, there used to be another time-consuming process, the default font manager setup, which was resolved by https://github.com/flutter/engine/pull/18225. 
Similar to https://github.com/flutter/engine/pull/18225, this pr move the creation of root isolate out from creating `Engine`. After this action, the main thread blocking is quite an acceptable slice.

## Related Issues
https://github.com/flutter/flutter/issues/40563 could be resolved by this pr.
2020-09-01 13:31:00 -07:00
Jason Simmons
1bd9b8e85b
Reset Shell::weak_factory_gpu_ on the raster thread (#20869) 2020-08-31 16:03:02 -07:00
Emmanuel Garcia
c4c4f341b8
Wait for first frame before checking layer tree (#20910) 2020-08-31 15:03:31 -07:00
Emmanuel Garcia
5e54c707e8
Reland: Enable hybrid composition by default on Android (#20722) (#20864)
This reverts commit 4de62c7c2659607acdc75ab8c1ccd305a3c6f9d1.
2020-08-31 12:17:11 -07:00
Emmanuel Garcia
52f62f14f7
Fix race condition (#20905) 2020-08-31 10:11:41 -07:00
Emmanuel Garcia
1b0c684326
Add ability to disable the raster thread merger (#20800) 2020-08-28 17:25:00 -07:00
Chris Yang
2d3e1c58c5
|MessageLoopImpl::FlushTasks| runs one task at a time (#20771) 2020-08-27 14:18:02 -07:00
David Worsham
c866edcbc3
fuchsia: Call out legacy rasterizer code (#20761) 2020-08-26 19:36:14 -07:00
Kaushik Iska
1892e031f2
[embedder] Add gl present callback that takes present info (#20672) 2020-08-26 15:53:01 -07:00
Kaushik Iska
5952760acf
Revert "[fuchsia] Adds a test for clock change (#19993)" (#20790)
This reverts commit 3fe49ec35d38342407a230d8860a4d647e436ae5.
2020-08-26 12:29:03 -07:00
Filip Filmar
3fe49ec35d
[fuchsia] Adds a test for clock change (#19993)
This is a Fuchsia-only shell test, confirming that when the timezone
setting is changed on the realm via Fuchsia's FIDL interface
`fuchsia.settings.Intl`, the Dart isolate running in that realm receives
the change and starts reporting the appropriate timestamp.

We already have a [similar test][tst] that verifies the timezones in the
dart VM matches the local timezone at start, but there was no test that
also verified timezone changes.

[tst]: https://github.com/flutter/engine/blob/master/shell/common/shell_unittests.cc#L1166

See issue #61284
2020-08-25 16:24:25 -07:00
Dan Field
4a88d5e109
Revert hint_freed (#20746)
This caused over-aggressive GCs, which vastly increased CPU usage benchmarks.

* Revert "fix build (#20644)"

This reverts commit b59793ee20be29463fac7a79635bf20253f04107.

* Revert "Hint freed (#19842)"

This reverts commit 3930ac1b25820baee3c67d921a0b009606cb3dae.
2020-08-25 11:55:40 -07:00
Emmanuel Garcia
4de62c7c26
Revert "Enable hybrid composition by default on Android (#20722)" (#20745)
This reverts commit d16ba48e1d79cf0197e96c51c38300ee921baeb0.
2020-08-25 09:54:13 -07:00
Emmanuel Garcia
d16ba48e1d
Enable hybrid composition by default on Android (#20722) 2020-08-24 13:10:23 -07:00
David Worsham
782f08280c
fuchsia: Clean shell_unittests under FEMU (#20704) 2020-08-24 12:47:31 -07:00
David Worsham
4dc866283d
fuchsia: Convert legacy permutations to build flag (#20647) 2020-08-19 19:09:51 -07:00
Kaushik Iska
26fe9125b5
[embedder] Add FBO callback that takes frame info (#20617) 2020-08-19 16:06:02 -07:00
Dan Field
b59793ee20
fix build (#20644) 2020-08-19 14:35:45 -07:00
Dan Field
3930ac1b25
Hint freed (#19842)
* Hint the VM when a layer or picture goes out of scope
2020-08-19 14:04:31 -07:00
Chris Yang
e7136c3f59
Ensure threads are merged when tearing down the Rasterizer (#19919) 2020-08-19 08:31:01 -07:00
David Worsham
04dfe890d1
fuchsia: Increase timeout for flaky test (#20606) 2020-08-18 17:14:30 -07:00
Chris Yang
ac8175fee1
Only create raster_thread_merge when explicitly requested by the embedding platform (#20487) 2020-08-16 10:31:01 -07:00
David Worsham
5a2bf6aa4c
Reland: "fuchsia: Remove dead code / break dependencies" (#20532)
Reland #19396 with a fix for improper scale that was affecting internal tests

Tested: Ran all unittests, ran internal tests, and ran workstation on Fuchsia
BUG: 53062, 53063
2020-08-14 20:41:18 -07:00
Yuqian Li
f644d03500
Add a service protocol for raster cache memory (#20466)
Related issue: https://github.com/flutter/flutter/issues/56719
2020-08-13 20:11:47 -07:00
Dan Field
6d44559b7d
Remove the dummy rasterizer delegate now that flutter_runner is in tree, and cleanup ctor params (#20486) 2020-08-13 14:46:01 -07:00
Mehmet Fidanboylu
dd2c5a1b8b
Plumbing for setting domain network policy (#20218) 2020-08-13 07:26:43 -07:00
David Worsham
6381b1511b
Fix broken shell_unittests on Fuchsia (#20422)
Fixes https://github.com/flutter/flutter/issues/53399
2020-08-11 17:31:25 -07:00
Dan Field
dbc97c5c01
Use performDeferredCleanup instead of freeGpuResources (#20413) 2020-08-11 14:01:01 -07:00