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

[Impeller] Switched to static linked libc++ in vulkan validation layers. #48290

Merged
merged 2 commits into from
Nov 21, 2023

Conversation

gaaclarke
Copy link
Member

@gaaclarke gaaclarke commented Nov 21, 2023

fixes flutter/flutter#138535
test coverage: existing integration tests in flutter repo which look for validation layers

I also verified locally that the libc++.so is no longer present and that it runs correctly.

$ find lib/arm64-v8a/
lib/arm64-v8a/
lib/arm64-v8a//libflutter.so
lib/arm64-v8a//libVkLayer_khronos_validation.so

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@gaaclarke gaaclarke marked this pull request as ready for review November 21, 2023 21:08
@gaaclarke gaaclarke requested a review from zanderso November 21, 2023 21:09
Copy link
Member

@zanderso zanderso left a comment

Choose a reason for hiding this comment

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

lgtm

IIRC there is a devicelab test that will cover this change. Does it still pass with this change?

@gaaclarke
Copy link
Member Author

IIRC there is a devicelab test that will cover this change. Does it still pass with this change?

Yep, there is. I ran the equivalent locally.

@gaaclarke
Copy link
Member Author

I locally checked the repo listed in the issue:

aaclarke-macbookpro3:amazon-chime-sdk-flutter-demo aaclarke$ ~/bin/flutter-android-debug-unopt-arm64 build apk --debug

Running Gradle task 'assembleDebug'...                             35.6s
✓  Built build/app/outputs/flutter-apk/app-debug.apk.

@gaaclarke
Copy link
Member Author

gaaclarke commented Nov 21, 2023

I also validated that in the resulting apk there is no external linkage from the validation layers to libc++:

aaclarke-macbookpro3:foo aaclarke$ find lib/arm64-v8a
lib/arm64-v8a
lib/arm64-v8a/libflutter.so
lib/arm64-v8a/libamazon-chime-sdk-machine-learning_jni.so
lib/arm64-v8a/libRSSupport.so
lib/arm64-v8a/libVkLayer_khronos_validation.so
lib/arm64-v8a/librsjni_androidx.so
lib/arm64-v8a/libc++_shared.so
lib/arm64-v8a/libamazon_chime_media_client.so
lib/arm64-v8a/librsjni.so
aaclarke-macbookpro3:foo aaclarke$ /opt/homebrew/Cellar/binutils/2.41/bin/greadelf -d lib/arm64-v8a/libVkLayer_khronos_validation.so

Dynamic section at offset 0x1a7b888 contains 30 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [liblog.so]
 0x0000000000000001 (NEEDED)             Shared library: [libnativewindow.so]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so]
 0x0000000000000001 (NEEDED)             Shared library: [libdl.so]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so]
 0x000000000000000e (SONAME)             Library soname: [libVkLayer_khronos_validation.so]
 0x000000000000001e (FLAGS)              SYMBOLIC BIND_NOW
 0x000000006ffffffb (FLAGS_1)            Flags: NOW
 0x0000000000000007 (RELA)               0x2be8
 0x0000000000000008 (RELASZ)             2641632 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffff9 (RELACOUNT)          110030
 0x0000000000000017 (JMPREL)             0x287ac8
 0x0000000000000002 (PLTRELSZ)           4344 (bytes)
 0x0000000000000003 (PLTGOT)             0x1a9bfc0
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000006 (SYMTAB)             0x330
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000005 (STRTAB)             0x21f0
 0x000000000000000a (STRSZ)              2552 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x1a70
 0x0000000000000004 (HASH)               0x1ae8
 0x0000000000000019 (INIT_ARRAY)         0x1a9b590
 0x000000000000001b (INIT_ARRAYSZ)       744 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x1a9b878
 0x000000000000001c (FINI_ARRAYSZ)       16 (bytes)
 0x000000006ffffff0 (VERSYM)             0x1830
 0x000000006ffffffe (VERNEED)            0x19f0
 0x000000006fffffff (VERNEEDNUM)         3
 0x0000000000000000 (NULL)               0x0

@gaaclarke gaaclarke added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 21, 2023
@auto-submit auto-submit bot merged commit dba80be into flutter:main Nov 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 21, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 22, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 22, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 22, 2023
fluttermirroringbot pushed a commit to flutter/flutter that referenced this pull request Nov 22, 2023
…138861)

flutter/engine@7cf9d90...1ae1d53

2023-11-22 [email protected] Roll Skia from cac28f3634a3 to b6f33389cefa (1 revision) (flutter/engine#48299)
2023-11-22 [email protected] [Impeller] Dont copy the paint until we're sure that the RRect blur optimization will apply. (flutter/engine#48298)
2023-11-21 [email protected] Finish making `shell/platform/linux/...` compatible with `.clang-tidy`. (flutter/engine#48297)
2023-11-21 [email protected] Finish making `shell/platform/android/...` compatible with `.clang-tidy`. (flutter/engine#48296)
2023-11-21 [email protected] Finish making `shell/common/...` compatible with `.clang-tidy`. (flutter/engine#48295)
2023-11-21 [email protected] Roll Fuchsia Linux SDK from Q3HcTitDF90ZOPWDa... to IK4xyRtZkDwqT6pXA... (flutter/engine#48294)
2023-11-21 [email protected] Roll Skia from c6d971f87d12 to cac28f3634a3 (12 revisions) (flutter/engine#48293)
2023-11-21 [email protected] [Impeller] Switched to static linked libc++ in vulkan validation layers. (flutter/engine#48290)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from Q3HcTitDF90Z to IK4xyRtZkDwq

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
@Fernandomr88
Copy link

Did this ship with 3.16.1?

auto-submit bot pushed a commit to flutter/buildroot that referenced this pull request Nov 29, 2023
auto-submit bot pushed a commit that referenced this pull request Nov 29, 2023
caseycrogers pushed a commit to caseycrogers/flutter that referenced this pull request Dec 29, 2023
…lutter#138861)

flutter/engine@7cf9d90...1ae1d53

2023-11-22 [email protected] Roll Skia from cac28f3634a3 to b6f33389cefa (1 revision) (flutter/engine#48299)
2023-11-22 [email protected] [Impeller] Dont copy the paint until we're sure that the RRect blur optimization will apply. (flutter/engine#48298)
2023-11-21 [email protected] Finish making `shell/platform/linux/...` compatible with `.clang-tidy`. (flutter/engine#48297)
2023-11-21 [email protected] Finish making `shell/platform/android/...` compatible with `.clang-tidy`. (flutter/engine#48296)
2023-11-21 [email protected] Finish making `shell/common/...` compatible with `.clang-tidy`. (flutter/engine#48295)
2023-11-21 [email protected] Roll Fuchsia Linux SDK from Q3HcTitDF90ZOPWDa... to IK4xyRtZkDwqT6pXA... (flutter/engine#48294)
2023-11-21 [email protected] Roll Skia from c6d971f87d12 to cac28f3634a3 (12 revisions) (flutter/engine#48293)
2023-11-21 [email protected] [Impeller] Switched to static linked libc++ in vulkan validation layers. (flutter/engine#48290)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from Q3HcTitDF90Z to IK4xyRtZkDwq

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
DenisovAV pushed a commit to DenisovAV/flutter-tvos-buildroot that referenced this pull request May 5, 2024
DenisovAV pushed a commit to DenisovAV/flutter-tvos-engine that referenced this pull request May 5, 2024
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 platform-android
Projects
None yet
3 participants