-
Notifications
You must be signed in to change notification settings - Fork 86
ci: switch from swiftshader to lavapipe #489
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
base: main
Are you sure you want to change the base?
Conversation
d287070 to
e98b320
Compare
also allow `workflow_dispatch` so we can launch CI pipelines manually on random branches without opening a PR
e98b320 to
80ef47e
Compare
nazar-pc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To avoid throttling you should implement caching (or the action you're using).
I'm installing Lavapipe from https://github.com/mmozeiko/build-mesa releases, which are specifically designed for downloads and there is always a fresh Mesa version there.
Here is a PowerShell script I wrote that includes x86-64 and aarch64 support and does hash verification: https://github.com/nazar-pc/abundance/blob/ee1071d4a6002664b292230e216cfc5ec14bd667/.github/workflows/rust.yml#L271-L332
On Linux it is much simpler and no separate action is needed: https://github.com/nazar-pc/abundance/blob/ee1071d4a6002664b292230e216cfc5ec14bd667/.github/workflows/rust.yml#L265-L268
I hope it is helpful.
|
On Linux we also just install mesa drivers, and Mac uses wgpu's metal backend (and we disable the one Vulkan test for now). So this is primarily about Windows. The action has caching build in, it doesn't seem work on windows. Also it just downloads Swiftshader / Lavapipe without actually adding the registry key / env vars for it to work, we fix it ourselves. We're previously had an action that worked but stopped updating the vulkan sdk at some point. So yea, the state of currently available actions is underwhelming, and I have considered just rolling my own that can be shared by the wider rust-gpu ecosystem and hopefully be more stable. This has literally been a "low effort" attempt at fixing it, but for some reason Windows really doesn't want to load that lavapipe driver, and the loader debug envs are not forwarded to the difftest for some reason. But if it continues being this unstable, I may really start rolling my own. |
swiftshader download has been giving us a lot of download timeouts, from #407:
The install-vulkan-sdk-action doesn't offer the option to forward credentials either. And I don't think you can use retry actions to retry actual actions, they only support commands.
So by far the most low effort "fix" would be to switch to lavapipe and hope their servers don't have weird throttling. And our CI still works.