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

[Impeller] Wire-up AndroidSurfaceImpellerVulkan #37249

Merged

Conversation

iskakaushik
Copy link
Contributor

- This enables preliminary support for Impeller + Vulkan on Android.
- Pending multiple fidelity fixes and adding a preference for Vulkan.
- Also noteworthy is flutter/flutter#114531
@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!).

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

@iskakaushik iskakaushik changed the title Wire-up AndroidSurfaceImpellerVulkan [Impeller] Wire-up AndroidSurfaceImpellerVulkan Nov 2, 2022
@iskakaushik iskakaushik self-assigned this Nov 2, 2022
@@ -43,8 +44,15 @@ std::unique_ptr<AndroidSurface> AndroidSurfaceFactoryImpl::CreateSurface() {
jni_facade_);
case AndroidRenderingAPI::kOpenGLES:
if (enable_impeller_) {
// TODO(kaushikiska@): Enable this after wiring a preference for Vulkan backend.
#if false
Copy link
Member

Choose a reason for hiding this comment

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

Hmm, false is a preprocessor define? TIL

@@ -436,10 +436,10 @@ def to_gn_args(args):
gn_args['skia_use_metal'] = True
gn_args['shell_enable_metal'] = True

# Enable Vulkan on all platforms except for Android and iOS. This is just
# Enable Vulkan on all platforms except for iOS. This is just
Copy link
Member

Choose a reason for hiding this comment

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

🥳

@iskakaushik iskakaushik added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 2, 2022
@auto-submit auto-submit bot merged commit c7b2230 into flutter:main Nov 3, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2022
@dnfield
Copy link
Contributor

dnfield commented Nov 3, 2022

GaryQian pushed a commit to flutter/flutter that referenced this pull request Nov 3, 2022
…114640)

* 27972e7d5 [fuchsia] mouse-input test (flutter/engine#37221)

* 491032cfc Update docs to mention felt build --host (flutter/engine#37224)

* 51089422d [macOS, multiwindow] Compositor gets FlutterView lazily (flutter/engine#36392)

* 2e89bce45 Enter a scope before calling Dart APIs in ThrowIfUIOperationsProhibited (flutter/engine#37226)

* 7843ae80c [Impeller] Correct the ordering of filters in 'Paint::WithFilters' (flutter/engine#37239)

* 2cbe38be0 Produce both ddc and dart2js platform files. (flutter/engine#37162)

* 2e3bc8052 Apply internal cl for C++20 prep (flutter/engine#37266)

* c183e7701 Roll Dart SDK from 883ab3f70e3d to 94ac8f6cc756 (1 revision) (flutter/engine#37267)

* d21f34673 Roll Fuchsia Mac SDK from BPxzJkBzD8R9GFg1n... to 8OZH-l7aK1-73Hyrf... (flutter/engine#37270)

* edbba9108 Roll Fuchsia Linux SDK from 9P-WnaDSnineZtFz0... to np4MU3wmDOuhlg6CR... (flutter/engine#37269)

* c7b2230e9 [Impeller] Wire-up AndroidSurfaceImpellerVulkan (flutter/engine#37249)

* 73c588119 [Impeller] dont call SPIRV_CROSS_THROW in SkSL backend (flutter/engine#37273)

* 893f5cd30 Roll Skia from f41fa8bffd58 to 78927395bf5c (20 revisions) (flutter/engine#37275)

* 2a7f3d0c1 Roll Skia from 78927395bf5c to fe751b616832 (1 revision) (flutter/engine#37276)

* fbe98c079 Roll Dart SDK from 94ac8f6cc756 to 8e089c61be58 (2 revisions) (flutter/engine#37277)

* 95b9b5d83 [Impeller] Add blit command to copy texture to buffer (flutter/engine#37198)

* 50c0fbc39 Roll Dart SDK from 8e089c61be58 to 866f5cfad18a (1 revision) (flutter/engine#37278)

* 138acebc6 Roll Skia from fe751b616832 to fdfa00287cff (1 revision) (flutter/engine#37279)

* 224b4013f Roll Fuchsia Mac SDK from 8OZH-l7aK1-73Hyrf... to mOXbRSWGSdWRXIefR... (flutter/engine#37282)

* 74f021922 Announce alerts through SemanticsService on Windows (flutter/engine#37173)

* a828fbb4a Roll Dart SDK from 866f5cfad18a to 433f075a852b (1 revision) (flutter/engine#37284)

* 49165f1b0 Roll Fuchsia Linux SDK from np4MU3wmDOuhlg6CR... to -0Xq1c-TncmWBWzqg... (flutter/engine#37285)

* d06616ecf Roll Skia from fdfa00287cff to cf3fa752a958 (2 revisions) (flutter/engine#37288)

* 0b79b5c3f Roll Skia from cf3fa752a958 to af0582c7b223 (5 revisions) (flutter/engine#37290)

* 66b244d9f [Impeller] validate calls to texture in SkSL (flutter/engine#37289)
@chinmaygarde
Copy link
Member

Seems like a bunch of things went up by ~1kb, but the treemap doesn't seem to reflec tthe size increase you were mentioning...

Perhaps the compression is less effective?

@chinmaygarde
Copy link
Member

chinmaygarde commented Nov 3, 2022

Umm, is that the right treemap? I don't see impeller_entity_shaders_vk_data (or something similar) in the large symbols list in the after trace. I do see impeller_entity_shaders_gles_data though.

There is also no VK backend code:

Screen Shot 2022-11-03 at 2 38 46 PM

@iskakaushik
Copy link
Contributor Author

@chinmaygarde could it be the case that this could have gotten tree-shaken away because it's not actually wired yet? The
entry point is behind #if false. https://github.com/flutter/engine/pull/37249/files#diff-033d9ee4b0ca06755bdc597c70b48f7e46d73a5234f9964a982cb383046c0ab4R48

@chinmaygarde
Copy link
Member

Oh, right. Yeah. That makes sense. We should see the size increases after we actually start using it.

@dnfield
Copy link
Contributor

dnfield commented Nov 3, 2022

Probably it.

@iskakaushik iskakaushik deleted the wire-android-surface-impeller-1 branch November 4, 2022 10:57
@zanderso
Copy link
Member

zanderso commented Nov 4, 2022

schwa423 pushed a commit to schwa423/engine that referenced this pull request Nov 16, 2022
shogohida pushed a commit to shogohida/flutter that referenced this pull request Dec 7, 2022
…lutter#114640)

* 27972e7d5 [fuchsia] mouse-input test (flutter/engine#37221)

* 491032cfc Update docs to mention felt build --host (flutter/engine#37224)

* 51089422d [macOS, multiwindow] Compositor gets FlutterView lazily (flutter/engine#36392)

* 2e89bce45 Enter a scope before calling Dart APIs in ThrowIfUIOperationsProhibited (flutter/engine#37226)

* 7843ae80c [Impeller] Correct the ordering of filters in 'Paint::WithFilters' (flutter/engine#37239)

* 2cbe38be0 Produce both ddc and dart2js platform files. (flutter/engine#37162)

* 2e3bc8052 Apply internal cl for C++20 prep (flutter/engine#37266)

* c183e7701 Roll Dart SDK from 883ab3f70e3d to 94ac8f6cc756 (1 revision) (flutter/engine#37267)

* d21f34673 Roll Fuchsia Mac SDK from BPxzJkBzD8R9GFg1n... to 8OZH-l7aK1-73Hyrf... (flutter/engine#37270)

* edbba9108 Roll Fuchsia Linux SDK from 9P-WnaDSnineZtFz0... to np4MU3wmDOuhlg6CR... (flutter/engine#37269)

* c7b2230e9 [Impeller] Wire-up AndroidSurfaceImpellerVulkan (flutter/engine#37249)

* 73c588119 [Impeller] dont call SPIRV_CROSS_THROW in SkSL backend (flutter/engine#37273)

* 893f5cd30 Roll Skia from f41fa8bffd58 to 78927395bf5c (20 revisions) (flutter/engine#37275)

* 2a7f3d0c1 Roll Skia from 78927395bf5c to fe751b616832 (1 revision) (flutter/engine#37276)

* fbe98c079 Roll Dart SDK from 94ac8f6cc756 to 8e089c61be58 (2 revisions) (flutter/engine#37277)

* 95b9b5d83 [Impeller] Add blit command to copy texture to buffer (flutter/engine#37198)

* 50c0fbc39 Roll Dart SDK from 8e089c61be58 to 866f5cfad18a (1 revision) (flutter/engine#37278)

* 138acebc6 Roll Skia from fe751b616832 to fdfa00287cff (1 revision) (flutter/engine#37279)

* 224b4013f Roll Fuchsia Mac SDK from 8OZH-l7aK1-73Hyrf... to mOXbRSWGSdWRXIefR... (flutter/engine#37282)

* 74f021922 Announce alerts through SemanticsService on Windows (flutter/engine#37173)

* a828fbb4a Roll Dart SDK from 866f5cfad18a to 433f075a852b (1 revision) (flutter/engine#37284)

* 49165f1b0 Roll Fuchsia Linux SDK from np4MU3wmDOuhlg6CR... to -0Xq1c-TncmWBWzqg... (flutter/engine#37285)

* d06616ecf Roll Skia from fdfa00287cff to cf3fa752a958 (2 revisions) (flutter/engine#37288)

* 0b79b5c3f Roll Skia from cf3fa752a958 to af0582c7b223 (5 revisions) (flutter/engine#37290)

* 66b244d9f [Impeller] validate calls to texture in SkSL (flutter/engine#37289)
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 needs tests platform-android
Projects
No open projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants