27489 Commits

Author SHA1 Message Date
Brandon DeRosier
ef4d01a9ea [Impeller] Uniquely label offscreen resources (flutter/engine#39987)
[Impeller] Uniquely label offscreen resources
2023-03-01 21:59:51 +00:00
Jim Graham
713de45bb4 switch DL rendertests to DlCanvas(SkCanvas) and DlCanvas(Builder) operations (flutter/engine#39944)
add DlCanvas(SkCanvas) vs DlCanvas(Builder) variants to DL rendertests
2023-03-01 21:33:24 +00:00
Brandon DeRosier
56dfdf8fbf [Impeller] Add checkbox for toggling the ColorWheel cache (flutter/engine#39986)
[Impeller] Add checkbox for toggling the ColorWheel cache
2023-03-01 21:24:08 +00:00
Jonah Williams
6e8933fadd [Impeller] Improve atlas blending performance by reducing size of subpass. (flutter/engine#39669)
[Impeller] Improve atlas blending performance by reducing size of subpass.
2023-03-01 21:05:05 +00:00
Kaushik Iska
b1c105b5ec [Impeller] Remove transient usage from sampled and stored images (flutter/engine#39957) 2023-03-01 15:37:33 -05:00
Robert Ancell
a226775bdc Simplify FlView (flutter/engine#39467)
This PR simplifies the FlView GL interactions. It removes some code paths that were never being used (possibly for future use with platform views?) and complex internal APIs that could be done in a single method call. This is motivated in investigating https://github.com/ubuntu-flutter-community/software/issues/868.

I plan to take this further, since there doesn't seem to be any reason why multiple FlGLArea widgets are used - we can draw all the layers in one widget.

For reviewers - the individual commits aren't particularly interesting, I just did it that way to be sure I wasn't breaking anything along the way and help to diagnose any regressions in the future.

The structural changes that this PR is simplifying came in 0561c75b4d6036e7d2c7e06163a3f0629464db9f.
2023-03-01 12:34:38 -08:00
skia-flutter-autoroll
f315c31f3f Roll Dart SDK from dd211cd297a4 to e5ca587137ad (2 revisions) (flutter/engine#39981)
Roll Dart SDK from dd211cd297a4 to e5ca587137ad (2 revisions)
2023-03-01 18:40:54 +00:00
skia-flutter-autoroll
5177bebc1b Roll Skia from bed6349fac15 to c3018296ee25 (6 revisions) (flutter/engine#39980)
Roll Skia from bed6349fac15 to c3018296ee25 (6 revisions)
2023-03-01 18:13:05 +00:00
skia-flutter-autoroll
a801c2259c Roll Skia from 016ae2f464c1 to bed6349fac15 (1 revision) (flutter/engine#39978)
Roll Skia from 016ae2f464c1 to bed6349fac15 (1 revision)
2023-03-01 15:30:05 +00:00
skia-flutter-autoroll
2977ccae84 Roll Dart SDK from 6095d12c274b to dd211cd297a4 (6 revisions) (flutter/engine#39974)
Roll Dart SDK from 6095d12c274b to dd211cd297a4 (6 revisions)
2023-03-01 09:59:21 +00:00
skia-flutter-autoroll
1306216925 Roll Fuchsia Mac SDK from CyF7Zv5YjfR_wEsCI... to mAGnaEprMOgehiiKs... (flutter/engine#39973)
Roll Fuchsia Mac SDK from CyF7Zv5YjfR_wEsCI... to mAGnaEprMOgehiiKs...
2023-03-01 09:30:32 +00:00
skia-flutter-autoroll
63d6f3899d Roll Skia from ec1cab5c4c3e to 016ae2f464c1 (2 revisions) (flutter/engine#39970)
Roll Skia from ec1cab5c4c3e to 016ae2f464c1 (2 revisions)
2023-03-01 06:34:19 +00:00
skia-flutter-autoroll
204d85df9e Roll Skia from 0b0aef3be61f to ec1cab5c4c3e (1 revision) (flutter/engine#39968)
Roll Skia from 0b0aef3be61f to ec1cab5c4c3e (1 revision)
2023-03-01 05:24:25 +00:00
skia-flutter-autoroll
66ab557395 Roll Skia from 9c10a9973167 to 0b0aef3be61f (3 revisions) (flutter/engine#39966)
Roll Skia from 9c10a9973167 to 0b0aef3be61f (3 revisions)
2023-03-01 02:44:20 +00:00
godofredoc
d94697e894 Remove bringup from fuchsia builds. (flutter/engine#39965)
Remove bringup from fuchsia builds.
2023-03-01 02:15:57 +00:00
dependabot[bot]
ea0c0286b6 Bump github/codeql-action from 2.2.4 to 2.2.5 (flutter/engine#39908)
Bump github/codeql-action from 2.2.4 to 2.2.5
2023-03-01 02:04:05 +00:00
godofredoc
43d972f93b Remove obsolete builders. (flutter/engine#39960)
Remove obsolete builders.
2023-03-01 00:31:02 +00:00
skia-flutter-autoroll
1b7d8daa1b Roll Skia from 8f9cc7033711 to 9c10a9973167 (8 revisions) (flutter/engine#39962)
Roll Skia from 8f9cc7033711 to 9c10a9973167 (8 revisions)
2023-03-01 00:00:56 +00:00
Harry Terkelsen
00328e0fe3 Fix typo in ColorFilter docs (flutter/engine#36448)
Fix typo in ColorFilter docs
2023-02-28 23:57:46 +00:00
Loïc Sharma
d61238974c [Embedder API] Add 'array of pointers' guidance (flutter/engine#39804)
[Embedder API] Add 'array of pointers' guidance
2023-02-28 23:04:11 +00:00
Dan Field
e5c0088683 [Impeller] Start stroke tessellation in compute (flutter/engine#39543)
[Impeller] Start stroke tessellation in compute
2023-02-28 21:48:10 +00:00
skia-flutter-autoroll
f36e45f0ca Roll Skia from 7e0367e830b8 to 8f9cc7033711 (7 revisions) (flutter/engine#39956)
Roll Skia from 7e0367e830b8 to 8f9cc7033711 (7 revisions)
2023-02-28 20:51:30 +00:00
Mouad Debbar
1d28b78f57 [web] Download CanvasKit chromium when possible (flutter/engine#39827)
[web] Download CanvasKit chromium when possible
2023-02-28 20:44:54 +00:00
Michael Goderbauer
0cd5253e58 fix references to Text widget (flutter/engine#39954)
fix references to Text widget
2023-02-28 19:57:38 +00:00
Jonah Williams
833a31300a [Impeller] dont create mipmap when mipcount == 1 (flutter/engine#39950)
[Impeller] dont create mipmap when mipcount == 1
2023-02-28 19:47:07 +00:00
Greg Spencer
c55ce6d9be Reland: Add testing hints (#39868) (flutter/engine#39931)
Reland: Add testing hints (#39868)
2023-02-28 19:39:46 +00:00
Jonah Williams
59191dd6c0 [Impeller] remove emulation of clamp, repeat, and mirror tile modes (flutter/engine#39948)
[Impeller] remove emulation of clamp, repeat, and mirror tile modes
2023-02-28 19:02:46 +00:00
skia-flutter-autoroll
8ed659cce3 Roll Fuchsia Mac SDK from 7eLQAJldHyttOlid3... to CyF7Zv5YjfR_wEsCI... (flutter/engine#39951)
Roll Fuchsia Mac SDK from 7eLQAJldHyttOlid3... to CyF7Zv5YjfR_wEsCI...
2023-02-28 18:15:22 +00:00
skia-flutter-autoroll
851f35fadf Roll Skia from 272946c7c142 to 7e0367e830b8 (5 revisions) (flutter/engine#39949)
Roll Skia from 272946c7c142 to 7e0367e830b8 (5 revisions)
2023-02-28 18:02:01 +00:00
skia-flutter-autoroll
c7114a689d Roll Skia from b36fa840c424 to 272946c7c142 (1 revision) (flutter/engine#39942)
Roll Skia from b36fa840c424 to 272946c7c142 (1 revision)
2023-02-28 09:05:15 +00:00
skia-flutter-autoroll
a5923aa4fa Roll Skia from d34e9e59922c to b36fa840c424 (3 revisions) (flutter/engine#39940)
Roll Skia from d34e9e59922c to b36fa840c424 (3 revisions)
2023-02-28 07:11:57 +00:00
skia-flutter-autoroll
ab8cac02f7 Roll Skia from 7a03a0e52abb to d34e9e59922c (3 revisions) (flutter/engine#39939)
Roll Skia from 7a03a0e52abb to d34e9e59922c (3 revisions)
2023-02-28 05:34:52 +00:00
skia-flutter-autoroll
39495e89d0 Roll Fuchsia Mac SDK from MJVDOc_XyHzPOTAY7... to 7eLQAJldHyttOlid3... (flutter/engine#39938)
Roll Fuchsia Mac SDK from MJVDOc_XyHzPOTAY7... to 7eLQAJldHyttOlid3...
2023-02-28 05:29:18 +00:00
Chinmay Garde
605e76a154 [Impeller] Patch up sundry issues in the Vulkan backend. (flutter/engine#39905)
Kaushik already did most of the great work. This patch gets us to a point where
all the playgrounds tests pass and the common performance optimizations are in
place. All known non-compute Impeller features should be implemented. There are
iOS only performance optimizations that haven’t been opted into because these
are behind define guards. These need to be generalized. Without that, the
performance of this backend will lag behind that of the Metal backend but only
because it is not an apples to apples comparison.

The general rubric was to keep the code and concepts as similar to the Metal
backend as possible.

The list of updates, all to the Vulkan Impeller backend:

* MSAA is wired up.
* Depth and stencil attachments and pipeline states are wired up.
* Got rid of Vulkan specific hacks in the inline pass context that were
  preventing clips from working.
* Storage modes for both device buffer and texture allocation are respected.
  This includes optimal usage of tile memory for device transient attachments.
* Host coherent memory for textures is no longer a requirement with explicit
  mapping management and write flushes.
* Texture uploads should be optimized for the UMA case without needing a staging
  buffer. That entire pipeline has been reworked.
* Textures track their current layout and ensure they get to the right layout
  based on usage without redundant transitions.
* Cube textures are now supported.
* Mipmapping has been reworked to correct image layout errors. With the new
  texture layout transition management, blit passes should be a whole lot easier
  to read and reason about.
* Allocator allocations are named using Vulkan debug utilities and the allocator
  (VMA). Comes in handy when chasing leaks. All of which are chased down.
* Left some handy utilities in there to debug resource leaks after context
  shutdown.  These are validation errors.
* Debug groups are pushed around render pass command encoding as well as the
  entire pass contents. This mimics the behavior of the Metal backend and it
  should be easy to map traces using both backends in Xcode and RenderDoc.
* Command buffer submission allows for tracking the life cycles of all resources
  referenced in the command stream and ensuring that the objects stay alive till
  past the submission of the command buffer. All use-after-free issues due to
  this class of issue have been chased down.
* Command pools are now context global instead of being created per pass.
* Descriptor pool are now context global instead of being created per pass.
  Individual descriptor types are now reference counted and returned to the pool
  when not needed. The pool is still fixed size though (and hence relatively
  large).
* All instances of global waitIdle on the device are removed during normal
  operation. The only times a waitIdle may happen is during swapchain recreation
  and context destruction.
* Swapchain adapt to them going out of date with the underlying surface and
  seamlessly resize as necessary on the next drawable acquisition.
* Playgrounds are resizable.
* Pipeline front face and cull modes are respected.
* Clears for all attachments are respected.
* Maximum textures sizes supported on the device are respected instead of
  hardcoding the minimum Vulkan requirement.

Fixes https://github.com/flutter/flutter/issues/112388
Fixes https://github.com/flutter/flutter/issues/112648
Fixes https://github.com/flutter/flutter/issues/112647 and a few other issues...
2023-02-27 21:14:06 -08:00
Brandon DeRosier
c5c9a0bb62 [Impeller] Use blit for root pass copy (flutter/engine#39933) 2023-02-27 20:08:01 -08:00
skia-flutter-autoroll
873ec421ff Roll Skia from 40d29bfd33c3 to 7a03a0e52abb (8 revisions) (flutter/engine#39929)
Roll Skia from 40d29bfd33c3 to 7a03a0e52abb (8 revisions)
2023-02-28 02:08:14 +00:00
luckysmg
81ca014db1 [Impeller] Share LazyGlyphAtlas across EntityPass (flutter/engine#38244)
[Impeller] Share LazyGlyphAtlas across EntityPass
2023-02-28 02:00:21 +00:00
Brandon DeRosier
a623c8ee4f Fix pylint error (flutter/engine#39934) 2023-02-27 17:23:17 -08:00
Xilai Zhang
97d8b0a936 [gn + codesign] add metadata for path ops (flutter/engine#39698)
[gn + codesign] add metadata for path ops
2023-02-28 00:14:15 +00:00
Xilai Zhang
067d157989 [gn + codesign] add android artifact metadata to legacy build target (flutter/engine#39696)
[gn + codesign] add android artifact metadata to legacy build target
2023-02-28 00:06:46 +00:00
Xilai Zhang
4bf5a04e84 [gn + codesign] move snapshot meta data to generators (flutter/engine#39726)
[gn + codesign] move snapshot meta data to generators
2023-02-28 00:06:43 +00:00
Dan Field
d2b6e2e0a6 Actually print out if xcrun metal fails (flutter/engine#39926)
Actually print out if xcrun metal fails
2023-02-27 23:39:06 +00:00
Brandon DeRosier
e2094f6128 [Impeller] Add texture->texture blits to device capabilities (flutter/engine#39924) 2023-02-27 15:16:00 -08:00
Jackson Gardner
3d9c2fcfc9 Remove unused flag skia_canvaskit_enable_particles (flutter/engine#39925)
Remove unused flag `skia_canvaskit_enable_particles`
2023-02-27 22:21:57 +00:00
Michael Goderbauer
01bb2e24bc Fix shader doc references (flutter/engine#39855)
Fix shader doc references
2023-02-27 22:09:48 +00:00
Jonah Williams
a832a60560 [Impeller] texture coordinates implementation (flutter/engine#39781)
[Impeller] texture coordinates implementation
2023-02-27 22:01:16 +00:00
Jaeheon Yi
203ba859ed [fuchsia] Avoid log spam (flutter/engine#39862)
[fuchsia] Avoid log spam
2023-02-27 21:55:15 +00:00
Brandon DeRosier
f52e760893 [Impeller] Fix test failure for IMPELLER_ENABLE_3D (flutter/engine#39919)
[Impeller] Fix test failure for IMPELLER_ENABLE_3D
2023-02-27 21:36:42 +00:00
skia-flutter-autoroll
51985242f9 Roll Skia from 92f1d2274214 to 40d29bfd33c3 (18 revisions) (flutter/engine#39916)
Roll Skia from 92f1d2274214 to 40d29bfd33c3 (18 revisions)
2023-02-27 21:15:18 +00:00
Dan Field
1d111e1732 [Impeller] Change Path::CreatePolyline from tolerance to scale, and make it required (flutter/engine#39917)
[Impeller] Change Path::CreatePolyline from tolerance to scale, and make it required
2023-02-27 21:12:09 +00:00