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

[ci] Run iOS drive master tests on Apple Silicon #5932

Closed
wants to merge 4 commits into from

Conversation

jmagman
Copy link
Member

@jmagman jmagman commented Jun 7, 2022

In the master drive tests use --enable-software-rendering flag implemented in flutter/flutter#105161

Part of flutter/flutter#104523
See also #5794 and #5693

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 relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
  • I signed the CLA.
  • The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
  • I listed at least one issue that this PR fixes in the description above.
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
  • I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
  • 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.
  • All existing and new tests are passing.

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

@jmagman jmagman self-assigned this Jun 7, 2022
@jmagman
Copy link
Member Author

jmagman commented Jun 7, 2022

@fkorotkov the Run drive step seems to be stuck, it's taking ~4 minutes on x64 but is at 40 minutes with no logs.
https://cirrus-ci.com/task/6181157610979328
https://cirrus-ci.com/task/5618207657558016
https://cirrus-ci.com/task/6744107564400640
https://cirrus-ci.com/task/4518696029782016

Any idea what's up here?

cc @stuartmorgan

@jmagman jmagman changed the title [ci] Run iOS drive tests on Apple Silicon [ci] Run iOS drive master tests on Apple Silicon Jun 7, 2022
@fkorotkov
Copy link
Contributor

Seems like the same hanging symptoms like before. Will try to reproduce locally like before but since you are forcing not to use Metal inside the simulator it means the GPU is crashing when simulator's UI is rendered. Seems like the problem is isolated to the outside of Flutter's environment inside the simulator.

Which means that the original workaround might be a better option. Just add the following command as the first line in create_simulator_script. @stuartmorgan what do you think?

defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferRendererHint 3

@stuartmorgan
Copy link
Contributor

Seems worth trying.

Is there a longer term strategy to address this problem? Relying on an undocumented default is fragile; it could break in any simulator update. Is there a a Radar we can reference in a comment on this hack?

@fkorotkov
Copy link
Contributor

fkorotkov commented Jun 7, 2022

Yes, I reported it in FB10025528 and even got some responses from the Apple devs to provide some extra data.

Also once macOS Ventura will go in public beta it will be worth to try testing it as well. Apple is improving the Virtualization.Framework quite a bit in Ventura.

@jmagman
Copy link
Member Author

jmagman commented Jun 8, 2022

Which means that the original workaround might be a better option. Just add the following command as the first line in create_simulator_script. @stuartmorgan what do you think?

defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferRendererHint 3

Reverted the --enable-software-rendering change, trying FramebufferRendererHint

@stuartmorgan
Copy link
Contributor

It seems like if anything it's even worse now.

@fkorotkov
Copy link
Contributor

@stuartmorgan seems the same. Let me see what could change since May 26th.

@fkorotkov
Copy link
Contributor

I have good news and bad news. I was able to get a hold on a support engineer from Apple who looked into my report and talked to the people behind Virtualization.Framework and related stuff internally.

Bad news is that they don't believe that IndigoFramebufferServices does anything. It seems I was wrong and got a wrong impression that the command passed. I think I might have copy/pasted a command for macos tests instead of ios or something like that.

The support engineer asked me a bit more questions but his general suggestion and a message from the rest of the team was to try out macOS Ventura.

So I tried the private beta of Ventura with the current stable Xcode 13.4.1 and everything worked. This time I've tripple checked that I was running the right ./script/tool_runner.sh drive-examples --ios command and not --macos. I repeated the experiment several times in fresh VMs and every time it passed.

Unfortunately it seems we don't have other options but to wait for macOS Ventura Public Beta in a month or so (I don't think we can legally use macOS Ventura for public CI while it's in private beta). On a bright side we found the issue with master -> main mirroring which caused unwanted builds and we also dropped prices on both old and new macOS instances. Sorry about this blocker. We are doing some bleeding edge stuff here after all.

@jmagman
Copy link
Member Author

jmagman commented Jun 14, 2022

Closing.

@jmagman jmagman closed this Jun 14, 2022
@jmagman jmagman deleted the drive-soft-rendering branch June 14, 2022 18:03
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants