Vulkan-Samples icon indicating copy to clipboard operation
Vulkan-Samples copied to clipboard

Add Apple Silicon Build

Open tomadamatkinson opened this issue 1 year ago • 6 comments

Description

Adds an Apple Silicon runner to help reduce the chances of #965. There are some considerations with this approach. macos-14 runners are in beta and so it may take considerable time to acquire a runner. Due to the beta and the possible slow provisioning times this might be more hassle than good.

It can't harm to add the runner on a trial basis. If we run into any significant issues we can comment out the newer runner until it is out of beta later in the year

tomadamatkinson avatar Mar 08 '24 21:03 tomadamatkinson

My only concern with this: It seems to take ages for the CI to acquire runners for Apple silicon. Dunno how to find out once CI/CD has finished, but on your initial run it took roughly half a day to get runner for the new targets. I kinda fear that this could heavily increase CI/CD for all PRs.

Is there a way to improve this?

SaschaWillems avatar Mar 11 '24 15:03 SaschaWillems

Completely agree @SaschaWillems. This is also my concern. Im thinking that we should run the macos-14 build only if the branch is main. That way the provisioning times shouldn't affect PRs

tomadamatkinson avatar Mar 11 '24 16:03 tomadamatkinson

Completely agree @SaschaWillems. This is also my concern. Im thinking that we should run the macos-14 build only if the branch is main. That way the provisioning times shouldn't affect PRs

That sounds like a good idea. I also don't think we need to run four different MacOS builds, like the initial PR did.

SaschaWillems avatar Mar 11 '24 20:03 SaschaWillems

That sounds like a good idea. I also don't think we need to run four different MacOS builds, like the initial PR did.

One is Macos amd64 and the other is Macos arm64. Theres still some value there until macos-14 is in general release. We could merge the Build and Test V2 into the build job which save us some runners. I kept this separate to try and encourage moving more of the framework into modules (not quite there yet :) )

On this PR we can see this job is now skipped https://github.com/KhronosGroup/Vulkan-Samples/actions/runs/8239111840?pr=969

On the main of my fork we can see it runs the apple silicon job https://github.com/tomadamatkinson/Vulkan-Samples/actions/runs/8239110561

Should this PR tackle getting rid of duplicate builds? I dont mind doing that, just trying to keep the scope small

tomadamatkinson avatar Mar 11 '24 20:03 tomadamatkinson

I've been thinking about this. I believe iOS is arm64, could we count the CI for that as evidence that macos-14 should work? There's very little differences between the two from a perspective of what gets built.

gpx1000 avatar Mar 19 '24 21:03 gpx1000

My main dev setup for VulkanSamples related development is M1 Studio + M2 Air which I compile 3 times a week on both systems. I can keep track and responsibility for these kind of issues. The M1 can be setup as PR builder and I could script that it runs and report problems to the PR.

I read that I could also set it up as a github runner for this repo specific. Availability would be 16 hours during working days.

jeroenbakker-atmind avatar Apr 10 '24 15:04 jeroenbakker-atmind