21193 Commits

Author SHA1 Message Date
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
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
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
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
Zachary Anderson
a3d5c25a5c Revert "Add testing hints (#39868)" (flutter/engine#39921)
Revert "Add testing hints"
2023-02-27 20:36:03 +00:00
Greg Spencer
2f30f0c6a4 Add testing hints (flutter/engine#39868)
Add testing hints
2023-02-27 20:08:53 +00:00
Jonah Williams
2fb0258c8c [Impeller] move most texture flips to vertex shader (flutter/engine#39872)
[Impeller] move most texture flips to vertex shader
2023-02-27 20:07:05 +00:00
gaaclarke
e52501822b Turned off wide gamut color pixel format for the simulator since it (flutter/engine#39825)
Turned off wide gamut color pixel format for the simulator
2023-02-27 18:19:14 +00:00
Jonah Williams
dc786470e6 [Impeller] dont append to existing atlas if type changed (flutter/engine#39913)
[Impeller] dont append to existing atlas if type changed
2023-02-27 17:02:48 +00:00
Jason Simmons
ad789d08f8 [Impeller] drawAtlas performance improvements (flutter/engine#39865)
[Impeller] drawAtlas performance improvements
2023-02-27 17:01:41 +00:00
skia-flutter-autoroll
5ed35a7f63 Roll Skia from 9b91a4116d13 to 26d0fec03f78 (1 revision) (flutter/engine#39883)
Roll Skia from 9b91a4116d13 to 26d0fec03f78 (1 revision)
2023-02-25 19:12:28 +00:00
Dan Field
2b5621327b [Impeller] Avoid printing inactionable warning from Metal compiler (flutter/engine#39859)
[Impeller] Avoid printing inactionable warning from Metal compiler
2023-02-25 07:51:08 +00:00
Jonah Williams
d1f897af08 [Impeller] all vertex UBOs now named VertInfo, all fragment ubos now named FragInfo (flutter/engine#39869)
[Impeller] all vertex UBOs now named FrameInfo, all fragment ubos now named FragInfo
2023-02-25 05:36:08 +00:00
skia-flutter-autoroll
79d81f93a0 Roll Skia from ce6d48da7883 to 84dbaef3909d (4 revisions) (flutter/engine#39867)
Roll Skia from ce6d48da7883 to 84dbaef3909d (4 revisions)
2023-02-25 02:02:35 +00:00
Jim Graham
7ac53d958d delete DL ops no longer needed after removing SkCanvasRecorder (flutter/engine#39863)
delete DL ops no longer needed after removing SkCanvasRecorder
2023-02-25 01:42:20 +00:00
skia-flutter-autoroll
fe2238aa8e Roll Skia from 11f351576a5e to ce6d48da7883 (9 revisions) (flutter/engine#39864)
Roll Skia from 11f351576a5e to ce6d48da7883 (9 revisions)
2023-02-25 00:08:34 +00:00
skia-flutter-autoroll
b1d09aa802 Roll Skia from ad8cdf1f6239 to 11f351576a5e (8 revisions) (flutter/engine#39858)
Roll Skia from ad8cdf1f6239 to 11f351576a5e (8 revisions)
2023-02-24 22:18:06 +00:00
Mouad Debbar
247f8e802c [web] Glue code for CanvasKit Chromium (flutter/engine#39592)
[web] Glue code for CanvasKit Chromium
2023-02-24 20:33:06 +00:00
skia-flutter-autoroll
7f37bdf0c3 Roll Skia from 94473dfd9bfb to ad8cdf1f6239 (8 revisions) (flutter/engine#39856)
Roll Skia from 94473dfd9bfb to ad8cdf1f6239 (8 revisions)
2023-02-24 20:04:33 +00:00
yaakovschectman
ae5f401e8c Unregister the FlutterWindowsView on its destruction (flutter/engine#39824)
* Test view destruction

* Test engine view set to nullptr

* Formatting
2023-02-24 14:35:47 -05:00
Jim Graham
da247cee08 remove obsolete DisplayListCanvasRecorder and its tests (flutter/engine#39844)
remove obsolete DisplayListCanvasRecorder and its tests
2023-02-24 19:06:05 +00:00
Jim Graham
90da25ef48 uncomment a DL raster cache unittest enhancement now that it is feasible (flutter/engine#39845)
uncomment a DL raster cache unittest enhancement now that it is feasible
2023-02-24 19:00:14 +00:00
skia-flutter-autoroll
f898a9617e Roll Skia from 3f396dc3ef80 to 94473dfd9bfb (5 revisions) (flutter/engine#39853)
Roll Skia from 3f396dc3ef80 to 94473dfd9bfb (5 revisions)
2023-02-24 18:09:23 +00:00
skia-flutter-autoroll
3ecce02e30 Roll Skia from aa36fbbd0c1d to 3f396dc3ef80 (1 revision) (flutter/engine#39849)
https://skia.googlesource.com/skia.git/+log/aa36fbbd0c1d..3f396dc3ef80

2023-02-24 brianosman@google.com Convert trace player tests to use runtime shaders

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,chinmaygarde@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-02-24 15:21:17 +00:00
skia-flutter-autoroll
4225e1433a Roll Skia from e7ed04a6fb12 to aa36fbbd0c1d (3 revisions) (flutter/engine#39846)
https://skia.googlesource.com/skia.git/+log/e7ed04a6fb12..aa36fbbd0c1d

2023-02-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SK Tool from bf66f41a5f8d to 700cadebc6e7
2023-02-24 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 177936ace37d to d9dbc20e6a39 (15 revisions)
2023-02-24 sharaks@google.com Update Skia milestone to 113

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,chinmaygarde@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-02-24 11:13:19 +00:00
Jim Graham
0fa8cbec8a Create DlCanvas interface and implement with DisplayListBuilder and SkCanvasAdapter (flutter/engine#39762)
* Create DlCanvas interface and implement with DisplayListBuilder and SkCanvasAdapter
2023-02-23 22:09:35 -08:00
Jason Simmons
904ab9bfce Revert "Match PlatformConfiguration properties to PlatformDispatcher ones (#39685)" (flutter/engine#39833)
This reverts commit 40867530358e80e71943d11831a58776465fca3a.
2023-02-24 02:45:15 +00:00
skia-flutter-autoroll
4ff72b9198 Roll Skia from fff6c987d803 to c23446d2da26 (10 revisions) (flutter/engine#39831)
https://skia.googlesource.com/skia.git/+log/fff6c987d803..c23446d2da26

2023-02-23 johnstiles@google.com Add matrix index-lookup test.
2023-02-23 johnstiles@google.com Add support for cross-compiling x86-64 binaries on M1 Mac.
2023-02-23 herb@google.com Move make_drawable_sub_run to DrawableSubRun
2023-02-23 ccameron@chromium.org SkJpegGainmapEncoder: Separate out MakeMPF function
2023-02-23 herb@google.com Have TransformedMaskVertexFiller take SkSpan<const SkPoint>
2023-02-23 jlavrova@google.com Fix getGlyphPosition for multiple graphemes glyph
2023-02-23 johnstiles@google.com Update currently-supported macOS version on main Docs page.
2023-02-23 jmbetancourt@google.com plumb transform property observer to CK
2023-02-23 robertphillips@google.com [graphite] Address ASAN complaint
2023-02-23 johnstiles@google.com Change copy_from_indirect_masked to ..._unmasked.

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC brianosman@google.com,chinmaygarde@google.com,michaelludwig@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2023-02-24 01:43:20 +00:00
Michael Goderbauer
b27d0e8465 Fix referenes in docs (flutter/engine#39828) 2023-02-23 15:12:49 -08:00
Tong Mu
dafb738c0a Remove surface check when querying ExternalViewEmbedder (flutter/engine#39803) 2023-02-23 13:51:15 -08:00
pdblasi-google
4086753035 Match PlatformConfiguration properties to PlatformDispatcher ones (flutter/engine#39685)
* Match PlatformConfiguration properties to PlatformDispatcher ones

* Updated PlatformDispatcher to use PlatformConfiguration to back `nativeSpellCheckServiceDefined` and `brieflyShowPassword`
* Updated web PlatformDispatcher/Configuration to match new API

* Added a test to ensure `PlatformDispatcher` and `PlatformConfig` have the same getters with exceptions.

* Removed test that required adding `analyzer` as a dependency.
2023-02-23 21:42:19 +00:00