godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.83k stars 21.14k forks source link

iOS workflow jobs downloading MoltenVK "Latest" caused issues in production #98791

Open felipejfc opened 2 days ago

felipejfc commented 2 days ago

Tested versions

Any new CI builds using this commit: https://github.com/godotengine/godot/commit/74df6f192a5d123d291a90519805fd340282b97b

I mean it was already there before however the latest release of the VulkanSDK is causing problems with iPhones of "X" family. XS, XR and X

System information

MacOS/iOS

Issue description

So we have our custom Godot build which we use to package and ship our games. It's a mix of 4.3-stable with around 3 small changes and we use our internal CI to build it. The latest build fetched version 1.3.296 build of Vulkan from here: https://vulkan.lunarg.com/sdk/home which caused iphones from X family to crash when using Vulkan renderer. Rolling back to 1.3.290 fixed the issue and I'm now fixing this version in the CI build not to unintentionally update it again.

Steps to reproduce

Build an editor and ios template with latest CI jobs that will fetch this vulkan sdk version and it will crash in iphones from x family.

Minimal reproduction project (MRP)

not applicable.

bruvzg commented 2 days ago

X (A11) was never supported, min. supported GPU should be A12 (XR/XS), at least in theory, it was not tested.

Calinou commented 2 days ago

You probably want to use the Compatibility rendering method when targeting those devices.

felipejfc commented 2 days ago

Supported or not, not locking version of something this important could bring problems in any device at some point. Our use case is we don't use the unsupported VK features that would keep our game from running in these "unsupported" devices so we turn off some checks and it just work from iPhone 7 and up. Also, if XR and XS are supposed to be officially supported, we can say this "issue" is breaking supported devices too.

bruvzg commented 2 days ago

CI configs in this repo are for the testing purpose only, so locking version make little sense. It's here to catch as many issues as possible, not to be used for production builds. In the official production pipeline, version is locked - https://github.com/godotengine/godot-build-scripts/blob/9259edf57137a49fe41acecb8d3ebb800e8b990b/build.sh#L144