Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@jonahwilliams
Copy link
Contributor

@jonahwilliams jonahwilliams commented Feb 27, 2024

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 ?

@jonahwilliams jonahwilliams changed the title [WIP] Cache entire render target and not just allocations. [Impeller] Cache entire render target and not just allocations. Feb 27, 2024
@jonahwilliams jonahwilliams marked this pull request as ready for review February 27, 2024 06:18

private:
std::shared_ptr<Allocator> allocator_;
struct RenderTargetConfig {
Copy link
Contributor Author

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).

Copy link
Contributor Author

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

Copy link
Contributor

@dnfield dnfield left a 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;
Copy link
Contributor Author

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.

Copy link
Member

@bdero bdero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jonahwilliams jonahwilliams added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 28, 2024
@auto-submit auto-submit bot merged commit 5574bf5 into flutter:main Feb 28, 2024
@jonahwilliams jonahwilliams deleted the test_more_caches branch February 28, 2024 22:27
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Feb 29, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Feb 29, 2024
…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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

autosubmit Merge PR when tree becomes green via auto submit App e: impeller

Projects

None yet

3 participants