-
Notifications
You must be signed in to change notification settings - Fork 6k
[Impeller] More sundry fixes to the Vulkan backend. #40603
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. Fixes flutter/flutter#121536 Fixes flutter/flutter#121627 Fixes flutter/flutter#121632 Fixes flutter/flutter#120499
|
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?
|
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.
|
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. Fixes flutter/flutter#121536 Fixes flutter/flutter#121627 Fixes flutter/flutter#121632 Fixes flutter/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)

Fixes flutter/flutter#121536
Fixes flutter/flutter#121627
Fixes flutter/flutter#121632
Fixes flutter/flutter#120499
Fixes flutter/flutter#111610