- Notifications
You must be signed in to change notification settings - Fork6k
[Impeller] More sundry fixes to the Vulkan backend.#40603
[Impeller] More sundry fixes to the Vulkan backend.#40603chinmaygarde merged 6 commits intoflutter:mainfrom
Conversation
* Fix mip-map generation in unit-tests where the command buffer was not submitted.* Cleanup descriptor counts being always 1 in Vulkan code-gen.* Reworked capabilities. Platforms can add to the base capability set.* Vulkan backend picks between more available color and stencil formats.* Descriptor pools are dynamically sized.* Layout transitions are more explicit. Both allocated and swapchain images track their own layouts and redundant transitions are avoided.* Objects active in a pending command buffer are collected but the waits happen on a separate fence waiter. Thread is named "io.flutter.impeller.fence_waiter".* Added queue and command buffer instant markers for better traces.* Command pools and their buffers are now thread local. Fixes sync validation failure.* Debug reports are now more readable and command buffer and queue breadcrumbs will be displayed on a validation report.* Staging buffers are back.* Pipeline caches have been wired up. After 50 frames, the current Vulkan pipeline cache will be written out to disk for subsequent launches. Writes will happen on a background worker.* Runtime stages have been wired up. But the build rules to provide the right stages are still remaining.Fixesflutter/flutter#121536Fixesflutter/flutter#121627Fixesflutter/flutter#121632Fixesflutter/flutter#120499
chinmaygarde commentedMar 24, 2023
The only change here that affects non-Vulkan backends is reworking the capabilities. Rest should just be fixing various functionality and performance issues in the backend. |
jonahwilliams left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
LGTM ship it
dnfield left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Let's go!
I have not tested this but am looking forward to doing so.
zanderso left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
lgtm
Clarifying question. It looks like this change retains the#if flase here:https://github.com/flutter/engine/blob/main/shell/platform/android/platform_view_android.cc#L50. Is that correct? When should that be removed?
chinmaygarde commentedMar 24, 2023
I'm filing followup issues so we can divvy up the remaining tasks. Just want to land this before lighting up new configurations. |
bdero left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
chinmaygarde commentedMar 25, 2023
I've verified the failures from the last attempt are addressed, the tests all pass and I've gone over the non-Vulkan bits to make sure I'm not interfering with any Metal backend stuff with this. Landing. |
* Fix mip-map generation in unit-tests where the command buffer was not submitted.* Cleanup descriptor counts being always 1 in Vulkan code-gen.* Reworked capabilities. Platforms can add to the base capability set.* Vulkan backend picks between more available color and stencil formats.* Descriptor pools are dynamically sized.* Layout transitions are more explicit. Both allocated and swapchain images track their own layouts and redundant transitions are avoided.* Objects active in a pending command buffer are collected but the waits happen on a separate fence waiter. Thread is named "io.flutter.impeller.fence_waiter".* Added queue and command buffer instant markers for better traces.* Command pools and their buffers are now thread local. Fixes sync validation failure.* Debug reports are now more readable and command buffer and queue breadcrumbs will be displayed on a validation report.* Staging buffers are back.* Pipeline caches have been wired up. After 50 frames, the current Vulkan pipeline cache will be written out to disk for subsequent launches. Writes will happen on a background worker.* Runtime stages have been wired up. But the build rules to provide the right stages are still remaining.Fixesflutter/flutter#121536Fixesflutter/flutter#121627Fixesflutter/flutter#121632Fixesflutter/flutter#120499
…23568)*c758114 Roll Dart SDK from 17655a04d99a to a040e32db8f2 (1 revision) (flutter/engine#40612)*274196e Make PathComponent POD, allow querying specific component type counts (flutter/engine#40605)*f598224 [Impeller] Adds golden image tests. (flutter/engine#40366)*f3b880d Roll Dart SDK from a040e32db8f2 to 25d7c5d88496 (1 revision) (flutter/engine#40618)*a5002f6 Roll Fuchsia Linux SDK from jdkyVHuAgQFiwEVQj... to 6JDOgmv1GqjN0MccU... (flutter/engine#40622)*bdee86a Roll Dart SDK from 25d7c5d88496 to 57061b644e84 (1 revision) (flutter/engine#40624)*6b27c10 Roll Fuchsia Mac SDK from Nrn4D-aMBpMe5ngaF... to odB7mmGuAH51yrWgy... (flutter/engine#40625)*1febe9d Roll Skia from 497dc2e1f01f to 17bce5f4f78f (2 revisions) (flutter/engine#40629)*3f90082 [Impeller] More sundry fixes to the Vulkan backend. (flutter/engine#40603)*20cf8eb Roll Skia from 17bce5f4f78f to d06e59e7d041 (1 revision) (flutter/engine#40630)*538c7ea Roll Fuchsia Linux SDK from 6JDOgmv1GqjN0MccU... to smNcvjxC6Ja3FkteX... (flutter/engine#40631)*2b5e95e Roll Fuchsia Mac SDK from odB7mmGuAH51yrWgy... to 34M7LHe2DUL5mebOm... (flutter/engine#40633)*2270e07 Roll Skia from d06e59e7d041 to 009ed54d103d (1 revision) (flutter/engine#40644)*6c5be6a Roll Fuchsia Linux SDK from smNcvjxC6Ja3FkteX... to y4h2rtyt6Mx8xHEte... (flutter/engine#40647)*eefb0be Roll Fuchsia Mac SDK from 34M7LHe2DUL5mebOm... to d30zLnNyJDgYNmKD4... (flutter/engine#40649)*d5e7ff2 [Impeller] Enable RendererTest::TheImpeller for Vulkan. (flutter/engine#40634)*61b92a7 [Impeller] Keep impeller scene build working (flutter/engine#40635)*5be21e2 [Impeller] Fix AtlasContents crash (flutter/engine#40637)*ac76951 [Impeller] Fix accumulating translucency opacity peephole bug (flutter/engine#40639)*1cf3bf1 [Impeller] Fix stroke cap disconnection (flutter/engine#40643)*551f089 [Impeller] Remove verbose validation logs in the Vulkan pipeline cache. (flutter/engine#40651)*567be26 Roll Dart SDK from 57061b644e84 to c1185c030a98 (2 revisions) (flutter/engine#40654)*3ecc5cc Revert Dart SDK to a040e32db8f2 (flutter/engine#40656)*60b6a1f Roll Fuchsia Linux SDK from y4h2rtyt6Mx8xHEte... to v0tCO5SkPScqIBWIr... (flutter/engine#40655)*736b407 Roll Skia from 009ed54d103d to 4d02e783654f (1 revision) (flutter/engine#40657)*256ae60 Roll Skia from 4d02e783654f to 4ca827754bc1 (2 revisions) (flutter/engine#40659)*a3d5d32 Roll Fuchsia Mac SDK from d30zLnNyJDgYNmKD4... to trm3jGwgZopG-wITx... (flutter/engine#40660)*5f517d6 Bump actions/checkout from 3.4.0 to 3.5.0 (flutter/engine#40662)*708bf70 Remove timezone from flutter (flutter/engine#40588)*d21f657 Post 3.0 lint sync (flutter/engine#40394)*d58d7d9 [Impeller] Document EntityPass, make positioning less confusing (flutter/engine#40636)*6c3f5fe Roll Fuchsia Linux SDK from v0tCO5SkPScqIBWIr... to jlj9dbwYl_4cILVwQ... (flutter/engine#40665)*f7d2571 [web] Accepts assetBase through JS config. (flutter/engine#40615)*6cc2f9b Revert "[web] Accepts assetBase through JS config. (#40615)" (flutter/engine#40670)*4eea74c [Impeller] initialize text alpha to 1.0 (flutter/engine#40667)*f7eea0e Roll Skia from 4ca827754bc1 to c55605969a59 (5 revisions) (flutter/engine#40668)*50f8374 [web] Add `js_types` sources to build. (flutter/engine#40597)*d468552 Return an empty JavaScript object as a replacement for exports/module in patchCanvasKitModule (flutter/engine#40582)*36f8473 Simplify SkFontMgr classes for sk_sp (flutter/engine#40627)*cc06014 [Impeller] Fix Impeller Metal wide gamut (flutter/engine#40671)*4bc9341 Revert "[web] Add `js_types` sources to build. (#40597)" (flutter/engine#40685)*9c0d1db Revert "Return an empty JavaScript object as a replacement for exports/module in patchCanvasKitModule (#40582)" (flutter/engine#40686)*8cb0803 Revert "Post 3.0 lint sync (#40394)" (flutter/engine#40687)

Uh oh!
There was an error while loading.Please reload this page.
Fixesflutter/flutter#121536
Fixesflutter/flutter#121627
Fixesflutter/flutter#121632
Fixesflutter/flutter#120499
Fixesflutter/flutter#111610