-
Notifications
You must be signed in to change notification settings - Fork 6k
Reland: Encode directly to command buffer. #49821
Reland: Encode directly to command buffer. #49821
Conversation
…ine into direct_encoding_vulkan
|
This pull request has been changed to a draft. The currently pending flutter-gold status will not be able to resolve until a new commit is pushed or the change is marked ready for review again. |
|
|
||
| auto texture = | ||
| std::make_shared<impeller::TextureVK>(impeller_context_, texture_source); | ||
| auto texture = std::make_shared<impeller::TextureVK>(impeller_context_, |
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.
This is new. When consuming the external texture we transition it eagerly instead of in the render pass.
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 talked to @johnmccutchan and he said that we only use these textures as sampled images, so this should be safe.
f7525ac to
0a28dfb
Compare
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'm not terribly familiar with the GPU tracer stuff, but the RenderPass changes still LGTM.
| namespace impeller { | ||
|
|
||
| // Warning: if any of the constant values or layouts are changed in the | ||
| // framebuffer fetch shader, then this input binding may need to be |
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.
nit: provide the actual file name
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.
Done
…ine into direct_encoding_vulkan
|
@chinmaygarde what are your thoughts on this vs your advanced blend patch? Im okay revisiting this if it conflicts with advanced blends in the future, but I'd also like to land it for now so i can move onto other things 😄 |
|
I think direct encode should work with the self-deps but I am working on that today. Feel free to land this. I am not going to rebase onto ToT right now. Will reconcile the merge after. |
…141894) flutter/engine@c953c83...f2b441a 2024-01-19 [email protected] Reland: Encode directly to command buffer. (flutter/engine#49821) 2024-01-19 [email protected] Roll Skia from 2536dc6fef1d to c09908c48f14 (6 revisions) (flutter/engine#49899) 2024-01-19 [email protected] [Impeller] Documentation for SurfaceContextVK (flutter/engine#49882) 2024-01-19 [email protected] Adding ignore paths to cache test (flutter/engine#49874) 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 [email protected],[email protected],[email protected] 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://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
The original change was reverted as it broke the GPU tracer reset logic. The previous logic assumed that the first started command buffer would also be the first submitted command buffer. With the direct encoding, this is no longer the case - so we shift the logic so that we reset query pools once at startup and then after the queries are finished being recorded.
This might actually be better in general since we should be doing less work in the frame workload.