-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Impeller] stencil buffer record/replay instead of MSAA storage. #47397
[Impeller] stencil buffer record/replay instead of MSAA storage. #47397
Conversation
I think (hope) we have golden test coverage for this, right? 😄 |
Currently investigating performance on iOS using the backdrop filter perf (Partial repaint disabled). With this change:
Without it
So measurably better! |
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.
Just minor comments.
I really hope this doesn't generally regress Metal in the common case. I'd much rather have this recorder/replay mechanism than the total_pass_reads_
mess.
impeller/entity/entity_pass.h
Outdated
/// | ||
/// These clips are replayed when restoring the backdrop so that the | ||
/// stencil buffer is left in an identical state. | ||
class EntityPassClipReplay { |
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.
EntityPassClipRecorder
?
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.
That is much better
.clear_color = clear_color}, // color_attachment_config | ||
GetDefaultStencilConfig(readable) // stencil_attachment_config | ||
.clear_color = clear_color}, // color_attachment_config | ||
kDefaultStencilConfig // stencil_attachment_config |
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.
Should be able to remove the readable param from CreateRenderTarget now
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
@@ -40,7 +40,7 @@ class InlinePassContext { | |||
std::shared_ptr<CommandBuffer> command_buffer_; | |||
std::shared_ptr<RenderPass> pass_; | |||
uint32_t pass_count_ = 0; | |||
uint32_t total_pass_reads_ = 0; |
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.
Good riddance...
…137656) flutter/engine@db06c2e...a0ac6b4 2023-11-01 [email protected] [Impeller] Include cstdint everywhere that uint32_t is used. (flutter/engine#47533) 2023-11-01 [email protected] [Impeller] Fix nullopt access and simplify coverage computation in GetSubpassCoverage. (flutter/engine#47347) 2023-11-01 [email protected] [Impeller] OpenGLES: Ensure frag/vert textures are bound with unique texture units. (flutter/engine#47218) 2023-11-01 [email protected] Roll Fuchsia Linux SDK from LCfhx_lTRJI51G0zc... to _TyF0etsONe5aqCbM... (flutter/engine#47532) 2023-11-01 [email protected] [Impeller] stencil buffer record/replay instead of MSAA storage. (flutter/engine#47397) 2023-11-01 [email protected] [macOS] Delete FlutterCompositor tests (flutter/engine#47527) 2023-10-31 [email protected] [Impeller] Place Rect statics under the Rect template. (flutter/engine#47529) 2023-10-31 [email protected] Roll Skia from aaa225e0cc6d to 34ef20100acc (1 revision) (flutter/engine#47530) Also rolling transitive DEPS: fuchsia/sdk/core/linux-amd64 from LCfhx_lTRJI5 to _TyF0etsONe5 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] 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
…ge. (flutter#47397)" This reverts commit 04329c5.
…storage. (#51416) Reverts #47397 to fix flutter/flutter#144211 in 3.19. This reverts commit 04329c5.
When restoring from a backdrop filter, replay the clip affecting cmds into a new stencil buffer instead of storing 4x MSAA stencil buffer.
Fixes flutter/flutter#137561
Fixes flutter/flutter#137448
Fixes flutter/flutter#137302
Helps flutter/flutter#137108