Skip to content

Add time to first frame for Mac_arm64_ios imitation_game_swiftui #167602

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

Merged
merged 27 commits into from
Jun 12, 2025

Conversation

LouiseHsu
Copy link
Contributor

@LouiseHsu LouiseHsu commented Apr 22, 2025

Partially addresses #154138
Closes #170386

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], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

@LouiseHsu LouiseHsu changed the title more led testing more led testing dont look 🥴 Apr 22, 2025
@matanlurey
Copy link
Contributor

Might not be helpful: but you actually don't need to create a PR to run a LED run, it can just be on any internet accessible Git repo (like your own GitHub or Git on Borg etc).

@matanlurey
Copy link
Contributor

Also would love your feedback on #167613

@LouiseHsu LouiseHsu changed the title more led testing dont look 🥴 Add time to first frame for Mac_arm64_ios imitation_game_flutter Apr 29, 2025
@LouiseHsu LouiseHsu changed the title Add time to first frame for Mac_arm64_ios imitation_game_flutter Add time to first frame for Mac_arm64_ios imitation_game_swiftui Apr 29, 2025
@LouiseHsu LouiseHsu requested a review from gaaclarke June 10, 2025 20:03
@LouiseHsu LouiseHsu marked this pull request as ready for review June 10, 2025 20:03
@LouiseHsu LouiseHsu requested a review from matanlurey as a code owner June 10, 2025 20:03
Copy link
Member

@gaaclarke gaaclarke left a comment

Choose a reason for hiding this comment

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

This is looking good, I just have a few questions and nits.

// Get ID from Info.plist
final ProcessResult plistIDResult = await Process.run(
workingDirectory: testDirectory,
'plutil',
Copy link
Member

Choose a reason for hiding this comment

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

Do we have existing precedent where we assume "plutil" is on the $PATH? Reading it as an XML file in dart seems more robust. That would only break if we have binary plists, I don't think Info.plist is ever binary.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hmm, I saw some examples of plutil being used before I used it so I thought it was okay - like

ProcessResult result = runSync('plutil', <String>[

return inDirectory<List<double>>(testDirectory, () async {
List<dynamic> resultsJson = <dynamic>[];
const String resultsBundleName = 'benchmarkResults.xcresult';
// Get ID from Info.plist
Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

heh oops


testRefID =
// ignore: avoid_dynamic_calls
actionsInvocationRecordJSON['actions']['_values'][0]['actionResult']['testsRef']['id']['_value']
Copy link
Member

Choose a reason for hiding this comment

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

This seems fragile, like the next version of xcode could break it. Do you think there may be a more robust way to hunt this down? I don't have anything in mind, just wondering.

Copy link
Member

Choose a reason for hiding this comment

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

Is there a version in the json somewhere?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

i dont think so, i did a search for "16." and didnt see anything.

Heres a copy of that JSON, its the first value 0~fdOExp-kqULoQEJCNGCibXGdPVKPO3aiB8IcprdkA6Ew5vCaoMM2Kbvs3_z50Fz76b8XCfoNhgdlsty_G6d9RQ==
actioninvocationrecord.txt

'PROVISIONING_PROFILE_SPECIFIER=$provisioningProfile',
]);

final List<double> extractedLaunchTimes = await getMetricsFromXCResults();
Copy link
Member

Choose a reason for hiding this comment

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

nit: The xcresults should be passed in as an argument to getMetricsFromXCResults.

@gaaclarke
Copy link
Member

fyi the "linux analyze failure" is apropos

Copy link
Member

@gaaclarke gaaclarke left a comment

Choose a reason for hiding this comment

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

LGTM I think hunting down things in the JSON file seems fragile, but I don't have a good solution to avoid this being broken in the future.

@LouiseHsu LouiseHsu added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 11, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Jun 11, 2025
Merged via the queue into flutter:master with commit 2697715 Jun 12, 2025
150 of 151 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jun 12, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jun 12, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jun 12, 2025
Roll Flutter from 824868f5d1e6 to f79452e3f4ea (94 revisions)

flutter/flutter@824868f...f79452e

2025-06-12 [email protected] Roll Skia from 38b9f9b0e496 to b41e7017658e (12 revisions) (flutter/flutter#170514)
2025-06-12 [email protected] Fix `Semantics.identifier` on TextField not working on web (flutter/flutter#170395)
2025-06-12 [email protected] Revert "[a11y] Semantics flag refactor step 2: embedder part" (flutter/flutter#170498)
2025-06-12 [email protected] Copy `packages_autoroller` to `dev/packages_autoroller/run`. (flutter/flutter#170495)
2025-06-11 [email protected] Allow the Slider to always show the value indicator. (flutter/flutter#162223)
2025-06-11 [email protected] Update master branch `CHANGELOG.md` for 3.32.3. (flutter/flutter#170492)
2025-06-11 [email protected] Add time to first frame for `Mac_arm64_ios imitation_game_swiftui` (flutter/flutter#167602)
2025-06-11 [email protected] Make `DropdownMenu` TextField reactive to label changes (flutter/flutter#162062)
2025-06-11 [email protected] Roll Dart SDK from b569246d64bc to 9f741ef8a689 (1 revision) (flutter/flutter#170473)
2025-06-11 [email protected] [impellerc] add GLES shader define. (flutter/flutter#170375)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Pause UIScene migration (#170457)" (flutter/flutter#170487)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix DropdownButtonFormField focusing when replacing FocusNode (#166645)" (flutter/flutter#170477)
2025-06-11 [email protected] Pause UIScene migration (flutter/flutter#170457)
2025-06-11 [email protected] iOS tool dylibs do not need entitlements (flutter/flutter#170448)
2025-06-11 [email protected] Adds getters for different formats of build mode name (flutter/flutter#170251)
2025-06-11 [email protected] Remove all code in `conductor/core` that is now unused (flutter/flutter#170454)
2025-06-11 [email protected] Roll Packages from 974f152 to 0b322a2 (9 revisions) (flutter/flutter#170462)
2025-06-11 [email protected] Roll Skia from b78fdc3ba26b to 38b9f9b0e496 (7 revisions) (flutter/flutter#170453)
2025-06-11 [email protected] Fix remaining iconbuttontheme overrides in listtile (flutter/flutter#169029)
2025-06-11 [email protected] Fix DropdownButtonFormField focusing when replacing FocusNode (flutter/flutter#166645)
2025-06-11 [email protected] Add CupertinoRadio widget of the week video (flutter/flutter#170027)
2025-06-11 [email protected] Docs: Update docs for suffix icon interaction behaviour (flutter/flutter#169828)
2025-06-11 [email protected] [ Widget Preview ] Don't try to load previews with compile-time errors (flutter/flutter#170262)
2025-06-11 [email protected] [canvaskit] Manually trigger `input` event in text editing tests for Safari (flutter/flutter#170022)
2025-06-11 [email protected] Tiny clean-up in triage docs (flutter/flutter#170429)
2025-06-11 [email protected] Roll pub packages (flutter/flutter#170444)
2025-06-11 [email protected] [Impeller] Avoid creating paths when rendering arcs (flutter/flutter#170398)
2025-06-11 [email protected] Fix date picker calendar tap targets (portrait mode) (flutter/flutter#169163)
2025-06-11 [email protected] Add SK_SUPPORT_UNSPANNED_APIS staging flag (flutter/flutter#170139)
2025-06-11 [email protected] Roll Dart SDK from 6290dfd1d88a to b569246d64bc (4 revisions) (flutter/flutter#170430)
2025-06-11 [email protected] Roll Skia from 910070084066 to b78fdc3ba26b (33 revisions) (flutter/flutter#170412)
2025-06-11 [email protected] Use pathops module groups (flutter/flutter#169857)
2025-06-10 [email protected] Roll pub packages (flutter/flutter#170399)
2025-06-10 [email protected] Verify old version of Python has the `lib2to3` import available (flutter/flutter#170187)
2025-06-10 [email protected] Use "flutter pub get" to resolve packages when building the docs snippets tool (flutter/flutter#170381)
2025-06-10 [email protected] [engine] Reland: ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170389)
2025-06-10 [email protected] Revert "Add call to Dart_NotifyDestroyed when the flutter view is des… (flutter/flutter#170309)
2025-06-10 [email protected] fix: set versionCodeOverride when split-per-abi is specified (flutter/flutter#169816)
2025-06-10 [email protected] fix: Skip native assets build test (flaky, takes 15m+) (flutter/flutter#170383)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc to be unflaky (flutter/flutter#167631)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc_hot_reload to be unflaky (flutter/flutter#168807)
2025-06-10 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (#170313)" (flutter/flutter#170377)
2025-06-10 [email protected] [a11y] Semantics flag refactor step 2: embedder part (flutter/flutter#167738)
2025-06-10 [email protected] Roll Dart SDK from c26e7ca44805 to 6290dfd1d88a (5 revisions) (flutter/flutter#170363)
2025-06-10 [email protected] Remove `pubspec.lock` files for `flutter_tools` and `widget_preview_scaffold`. (flutter/flutter#170364)
2025-06-10 [email protected] [engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170313)
...
feduke-nukem pushed a commit to Yobari-Timeliners/golub that referenced this pull request Jun 13, 2025
Roll Flutter from 824868f5d1e6 to f79452e3f4ea (94 revisions)

flutter/flutter@824868f...f79452e

2025-06-12 [email protected] Roll Skia from 38b9f9b0e496 to b41e7017658e (12 revisions) (flutter/flutter#170514)
2025-06-12 [email protected] Fix `Semantics.identifier` on TextField not working on web (flutter/flutter#170395)
2025-06-12 [email protected] Revert "[a11y] Semantics flag refactor step 2: embedder part" (flutter/flutter#170498)
2025-06-12 [email protected] Copy `packages_autoroller` to `dev/packages_autoroller/run`. (flutter/flutter#170495)
2025-06-11 [email protected] Allow the Slider to always show the value indicator. (flutter/flutter#162223)
2025-06-11 [email protected] Update master branch `CHANGELOG.md` for 3.32.3. (flutter/flutter#170492)
2025-06-11 [email protected] Add time to first frame for `Mac_arm64_ios imitation_game_swiftui` (flutter/flutter#167602)
2025-06-11 [email protected] Make `DropdownMenu` TextField reactive to label changes (flutter/flutter#162062)
2025-06-11 [email protected] Roll Dart SDK from b569246d64bc to 9f741ef8a689 (1 revision) (flutter/flutter#170473)
2025-06-11 [email protected] [impellerc] add GLES shader define. (flutter/flutter#170375)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Pause UIScene migration (#170457)" (flutter/flutter#170487)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix DropdownButtonFormField focusing when replacing FocusNode (#166645)" (flutter/flutter#170477)
2025-06-11 [email protected] Pause UIScene migration (flutter/flutter#170457)
2025-06-11 [email protected] iOS tool dylibs do not need entitlements (flutter/flutter#170448)
2025-06-11 [email protected] Adds getters for different formats of build mode name (flutter/flutter#170251)
2025-06-11 [email protected] Remove all code in `conductor/core` that is now unused (flutter/flutter#170454)
2025-06-11 [email protected] Roll Packages from 974f1522ee03 to 17c02a5 (9 revisions) (flutter/flutter#170462)
2025-06-11 [email protected] Roll Skia from b78fdc3ba26b to 38b9f9b0e496 (7 revisions) (flutter/flutter#170453)
2025-06-11 [email protected] Fix remaining iconbuttontheme overrides in listtile (flutter/flutter#169029)
2025-06-11 [email protected] Fix DropdownButtonFormField focusing when replacing FocusNode (flutter/flutter#166645)
2025-06-11 [email protected] Add CupertinoRadio widget of the week video (flutter/flutter#170027)
2025-06-11 [email protected] Docs: Update docs for suffix icon interaction behaviour (flutter/flutter#169828)
2025-06-11 [email protected] [ Widget Preview ] Don't try to load previews with compile-time errors (flutter/flutter#170262)
2025-06-11 [email protected] [canvaskit] Manually trigger `input` event in text editing tests for Safari (flutter/flutter#170022)
2025-06-11 [email protected] Tiny clean-up in triage docs (flutter/flutter#170429)
2025-06-11 [email protected] Roll pub packages (flutter/flutter#170444)
2025-06-11 [email protected] [Impeller] Avoid creating paths when rendering arcs (flutter/flutter#170398)
2025-06-11 [email protected] Fix date picker calendar tap targets (portrait mode) (flutter/flutter#169163)
2025-06-11 [email protected] Add SK_SUPPORT_UNSPANNED_APIS staging flag (flutter/flutter#170139)
2025-06-11 [email protected] Roll Dart SDK from 6290dfd1d88a to b569246d64bc (4 revisions) (flutter/flutter#170430)
2025-06-11 [email protected] Roll Skia from 910070084066 to b78fdc3ba26b (33 revisions) (flutter/flutter#170412)
2025-06-11 [email protected] Use pathops module groups (flutter/flutter#169857)
2025-06-10 [email protected] Roll pub packages (flutter/flutter#170399)
2025-06-10 [email protected] Verify old version of Python has the `lib2to3` import available (flutter/flutter#170187)
2025-06-10 [email protected] Use "flutter pub get" to resolve packages when building the docs snippets tool (flutter/flutter#170381)
2025-06-10 [email protected] [engine] Reland: ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170389)
2025-06-10 [email protected] Revert "Add call to Dart_NotifyDestroyed when the flutter view is des… (flutter/flutter#170309)
2025-06-10 [email protected] fix: set versionCodeOverride when split-per-abi is specified (flutter/flutter#169816)
2025-06-10 [email protected] fix: Skip native assets build test (flaky, takes 15m+) (flutter/flutter#170383)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc to be unflaky (flutter/flutter#167631)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc_hot_reload to be unflaky (flutter/flutter#168807)
2025-06-10 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (#170313)" (flutter/flutter#170377)
2025-06-10 [email protected] [a11y] Semantics flag refactor step 2: embedder part (flutter/flutter#167738)
2025-06-10 [email protected] Roll Dart SDK from c26e7ca44805 to 6290dfd1d88a (5 revisions) (flutter/flutter#170363)
2025-06-10 [email protected] Remove `pubspec.lock` files for `flutter_tools` and `widget_preview_scaffold`. (flutter/flutter#170364)
2025-06-10 [email protected] [engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170313)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Time to First frame for SwiftUI
3 participants