-
Notifications
You must be signed in to change notification settings - Fork 6k
[Impeller] Add buffer to texture blit for Vulkan. #41706
Conversation
| transition.src_stage = vk::PipelineStageFlagBits::eFragmentShader | | ||
| vk::PipelineStageFlagBits::eTransfer | | ||
| vk::PipelineStageFlagBits::eColorAttachmentOutput; | ||
| transition.dst_access = vk::AccessFlagBits::eShaderRead; |
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.
The mnemonic I use for transitions is "For this resource, all the commands before this may continue to src_access in src_stage and no commands after this proceed past dst_access in dst_stage.". I believe the src accesses here are right. You are waiting for any commands before this blit that write, transfer, specify this resource as color attachment as to finish. But, you are going to be using this as a blit source (I believe these are "transfers" in Vulkan parlance). So commands that read or transfer from it must wait.
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.
Oh, poop. Sorry, its the other way round. What I said was TextureToBuffer.
| vk::AccessFlagBits::eShaderRead | vk::AccessFlagBits::eTransferWrite; | ||
| dst_tran.dst_stage = vk::PipelineStageFlagBits::eFragmentShader | | ||
| vk::PipelineStageFlagBits::eTransfer; |
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.
Needed to update the dst access and stage to incude transfer.
|
@chinmaygarde PTAL |
| // TODO(jonahwilliams): remove ifdef once blit from buffer to texture | ||
| // is implemented on other platforms. |
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.
Remove todo? There's no longer an ifdef.
flutter/engine@4f4486b...1089ce6 2023-06-07 jonahwilliams@google.com [Impeller] Add buffer to texture blit for Vulkan. (flutter/engine#41706) 2023-06-07 chris@bracken.jp [macOS] Add platformview creation parameter support (flutter/engine#42607) 2023-06-07 30870216+gaaclarke@users.noreply.github.com [Impeller] Added a switch to turn on vulkan (flutter/engine#42585) 2023-06-07 skia-flutter-autoroll@skia.org Roll ANGLE from f8220fa3a729 to 15a29438b099 (1 revision) (flutter/engine#42627) 2023-06-07 jacksongardner@google.com Bump Chrome version to 114 for testing (flutter/engine#42623) 2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from d607cbb0db78 to 773765ca1dd2 (7 revisions) (flutter/engine#42624) 2023-06-07 jpnurmi@gmail.com [Linux][a11y] implement AtkText::get_text/string_at_offset() (flutter/engine#38144) 2023-06-07 skia-flutter-autoroll@skia.org Roll ANGLE from 176989ad00cc to f8220fa3a729 (1 revision) (flutter/engine#42621) 2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from ee90e9ae2e62 to d607cbb0db78 (1 revision) (flutter/engine#42618) 2023-06-07 skia-flutter-autoroll@skia.org Roll ANGLE from 1ad4ae4d63bf to 176989ad00cc (1 revision) (flutter/engine#42617) 2023-06-07 dkwingsmt@users.noreply.github.com Revert "[Android] Return keyboard pressed state" (flutter/engine#42616) 2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from bde894438f29 to ee90e9ae2e62 (1 revision) (flutter/engine#42614) 2023-06-07 skia-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from lpbkSRJBMkPs0FM7_... to sEHtHM1iFt79roP-x... (flutter/engine#42613) 2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from cd3e1665dcd1 to bde894438f29 (1 revision) (flutter/engine#42612) 2023-06-07 skia-flutter-autoroll@skia.org Roll ANGLE from 16841d6256da to 1ad4ae4d63bf (1 revision) (flutter/engine#42611) 2023-06-07 bdero@google.com [Impeller] Reland 2: Add Impeller Metal support in the embedder API (#42411) (flutter/engine#42597) 2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from a01f49f539ab to cd3e1665dcd1 (1 revision) (flutter/engine#42610) 2023-06-07 skia-flutter-autoroll@skia.org Roll Fuchsia Mac SDK from atrYtfHWi2cmV9B_C... to ojwVlxZWrbsG4WGSE... (flutter/engine#42609) 2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from 521b8c4bb011 to a01f49f539ab (4 revisions) (flutter/engine#42608) 2023-06-07 skia-flutter-autoroll@skia.org Roll Skia from cef18d10b363 to 521b8c4bb011 (1 revision) (flutter/engine#42605) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from lpbkSRJBMkPs to sEHtHM1iFt79 fuchsia/sdk/core/mac-amd64 from atrYtfHWi2cm to ojwVlxZWrbsG If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC jacksongardner@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. 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
Work towards flutter/flutter#123468
In order to support the usage of BufferView, I generalized the tracked buffer type from DeviceBuffer to Buffer. Should be mostly safe!
I confirmed that this runs correctly under moltenvk but I'm uncertain if there are additional ways to validate.