152 Commits

Author SHA1 Message Date
gaaclarke
1c3bc02649
started providing the GPU sync switch to external view embedders (#22302) 2020-11-17 18:43:01 -08:00
Kaushik Iska
1ff237fdca
Reland "remove surface dependance on external view embedder (#22468)" (#22470) 2020-11-12 15:37:12 -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
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
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
freiling
3105db8ee8
SKP based shader warmup (#20643) 2020-11-04 23:19:02 -08:00
stuartmorgan
06b0910e2d
Fix possible use of std::moved value in Rasterizer (#22125) 2020-10-28 18:12:03 -07:00
Chris Bracken
c449c8ee50
Eliminate FLUTTER_NOLINT where possible (#21904)
This removes most of the remaining FLUTTER_NOLINT comments and opts
these files back into linter enforcement.

I've filed https://github.com/flutter/flutter/issues/68273 to require
that all FLUTTER_NOLINT comments be followed by a GitHub issue URL
describing the problem to be fixed.
2020-10-16 12:44:49 -07:00
Matej Knopp
5c9dddc376
Discard wrong size layer tree instead of rendering it (#21179) 2020-09-18 12:37:02 -07:00
Emmanuel Garcia
85a7afa913
Add a new raster status kSkipAndRetry frame (#21059) 2020-09-11 16:29:11 -07:00
David Worsham
a52397e05f
fuchsia: Compile disabled RasterThreadMerger code (#20984) 2020-09-09 18: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
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
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
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
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
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
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
Chris Yang
ac8175fee1
Only create raster_thread_merge when explicitly requested by the embedding platform (#20487) 2020-08-16 10:31:01 -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
Dan Field
dbc97c5c01
Use performDeferredCleanup instead of freeGpuResources (#20413) 2020-08-11 14:01:01 -07:00
Ming Lyu (CareF)
409a5e5963
FrameTiming build start timestamp fix and add vsync start timestamp (#20229) 2020-08-07 19:41:01 -07:00
Adlai Holler
c57aff1800
Use the GrDirectContext factories instead of deprecated GrContext ones (#19962)
This is part of a larger effort to expose the difference between GrDirectContext,
which runs on the GPU thread and can directly perform operations like uploading
textures, and GrRecordingContext, which can only queue up work to be delivered
to the GrDirectContext later.
2020-07-28 13:32:09 -07:00
gaaclarke
21efd7325e
Made the linter print out more information in its output and fixed bugs (#19895) 2020-07-22 15:38:09 -07:00
freiling
15d19a4949
Test Framework for SKP based shader warmup (#19260)
* [fuchsia] fix Rasterizer::ScreenshotLayerTreeAsPicture on Fuchsia

* [fuchsia] Add shell test for skp based shader warmup

* [fuchsia] use custom image serialization when writing out SKP's

This change adds custom image serialization functions for skp serialization
which write out onlythe image metadata and not the contents of the
images themselves. This allows SKP's to be used for shader warmup with
a significantly reduced disk space footprint.
2020-07-20 17:03:45 -07:00
Emmanuel Garcia
d1f3037c4c
Switch to FlutterSurfaceView if no Android view is in the frame (#19487) 2020-07-06 14:51:46 -07:00
David Worsham
220a831028
Move fuchsia/scenic integration behind #define (#19003)
Additionally create "_next" permutations for all of the test binaries
on Fuchsia, in order to test both code-paths.

Using the #define follow-up CLs can also create a flutter_runner_next
binary that does not contain any legacy integration code.

BUG: 53847
2020-06-26 14:03:18 -07:00
Sanjay Chouksey
e9edf32d40
Add PlatformView support for Fuchsia (#19132)
* Add PlatformView support for Fuchsia

This change allows embedding views provided by fuchsia components into
a flutter app running on Fuchsia. This conforms to Flutters idiomatic
approach to composite PlatformView alongside other rendered layers.

This uses the `view embedder` infrastructure to allow
`PlatformViewLayer`
to hold fuchsia views. This is meant to eventually supplant the legacy
`SceneHost` and `ChildViewLayer` mechanism to embed fuchsia `ChildView`.

To see how this will get used check out:
https://fuchsia-review.googlesource.com/c/experiences/+/398536/6/examples/hello_experiences/lib/fuchsia_view.dart

Includes unittests for platform_view.cc.

Note: This change has no impact on the legacy code to embed fuchsia
views.

* Rename OnCreateViewMethodCall to OnCreateView

Same for OnDestroyViewMethodCall to OnDestroyView

Co-authored-by: Sanjay Chouksey <sanjayc@google.com>
2020-06-25 16:27:39 -07:00
Emmanuel Garcia
24d2143b98
EndFrame should be always called by rasterizer (#19257) 2020-06-24 14:02:48 -07:00
Emmanuel Garcia
b990ad11bd
Implement external view embedder on Android (#19033)
The external view embedder allows to embed Android views in a Flutter app.
2020-06-20 12:51:55 -07:00
Kaushik Iska
c8b077fa1a
Revert "Remove pipeline in favor of layer tree holder (#18901)" (#19066)
Reverting for b/158816279
2020-06-16 13:15:57 -07:00
Kaushik Iska
acf048bd0d
Remove log added for local testing (#19012) 2020-06-11 19:22:36 -07:00
Kaushik Iska
2651beba06
Exit before pushing a trace event when layer tree holder is empty (#19008) 2020-06-11 19:17:20 -07:00
Chris Yang
b1a08f2abd
Make rasterizer screenshot work with gl_context_switch (#18850) 2020-06-10 10:00:43 -07:00
Kaushik Iska
28e7b7999f
Remove pipeline in favor of layer tree holder (#18901)
Relanding of a change that was reverted in:
https://github.com/flutter/engine/pull/18427
2020-06-09 12:19:34 -07:00
Chris Yang
1482d9b05e
Rework GLContextSwitch, get rid of RendererContextManager (#18601) 2020-06-04 11:37:51 -07:00
Emmanuel Garcia
243bb59c71
Pass SurfaceFrame to SubmitFrame (#18709) 2020-06-02 21:59:44 -07:00
gaaclarke
bef5ac6132
Made the Rasterizer avoid GPU calls when backgrounded (#18563) 2020-05-26 21:02:40 -07:00
Kaushik Iska
0d2768772f
[fuchsia] Remove SceneDisplayLag event on Fuchsia (#18515)
See: https://github.com/flutter/flutter/issues/56598
2020-05-20 10:56:35 -07:00