-
Notifications
You must be signed in to change notification settings - Fork 6k
[Impeller] Cache entire render target and not just allocations. #50990
Conversation
|
|
||
| private: | ||
| std::shared_ptr<Allocator> allocator_; | ||
| struct RenderTargetConfig { |
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 a subset of the render target properties that we care about for caching (at the entity level).
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.
Its defined here for ... reasons, but I could move this up to the entity cache so its more obvious
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.
Was there a DISABLED test you can re-enable now?
| namespace testing { | ||
|
|
||
| // | ||
| using RendererTest = PlaygroundTest; |
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.
@dnfield See here. For some reasonable using DISABLE_ caused a problem with the test harness so I just commented it out.
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.
LGTM
…144355) flutter/engine@10331db...61510db 2024-02-28 [email protected] Roll Skia from 27171d6a9205 to f0a60bfe98e0 (4 revisions) (flutter/engine#51068) 2024-02-28 [email protected] Prefix flutter in flutter_vma.h import (flutter/engine#51065) 2024-02-28 [email protected] [Impeller] Cache entire render target and not just allocations. (flutter/engine#50990) 2024-02-28 [email protected] Test the `SurfaceTextureSurfaceProducer`-branch in the Android `scenario_app` (flutter/engine#51061) 2024-02-28 [email protected] Revert "[skwasm] Clip pictures if they go beyond the bounds of the window. (#50887)" (flutter/engine#51067) 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
This may be required to fix flutter/flutter#144116 , and in general the safety of the render pass caches.
Because the RenderPass / Framebuffer objects refer to specific attachments, the caches are placed on the resolve texture, which is "real". The stencil/depth and or MSAA textures may be different but that didn't seem to matter on many Android devices. It doesn't seem like its actually valid though, whether or not there is a validation error to catch it.
I can confirm this fixes flutter/flutter#144116 locally.
This change moves the cache one level up to cover the properties of the RenderTarget we care about, and ensures that we always use the same attachment combinations.
Fixes flutter/flutter#141750
Maybe flutter/flutter#144255 ?