-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
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
Metal: Add support for 2017 era iOS devices #99820
base: master
Are you sure you want to change the base?
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
9b3eb4c
to
43cf5cc
Compare
edc5a55
to
0df4009
Compare
@stuartcarnie Does this PR also fall back to vulkan for iOS devices older than 2017? |
Or is there a separate work in progress for that? |
Vulkan won't work on devices prior to 2017 either, as Godot requires image cube map textures, which are only supported on 2017 devices and beyond. |
Gotcha. Does it fall back to compatibility from metal then? |
To put it another way, there should be no reason to require Vulkan / MoltenVK over Metal for Apple mobile devices, as they support the same range of devices. For desktop, Vulkan / MoltenVK is required for x86 hardware. |
Not sure – would have to ask the rendering team if that is the case. |
0df4009
to
aa2562e
Compare
Closes #99682
Add support for Apple4 GPUs.
Tier 2 argument buffers are required for read / write texture support, specifically for iOS, so this PR introduces support for generating shaders and binding without argument buffers for devices that only support Tier 1 argument buffers.
Important
I do not have an Apple4 GPU to test on, but I added an environment variable to allow me to force the shaders to be compiles without argument buffer support and was able to render the editor and complex scenes like the Bistro Demo.
SPIRV-Cross Update
SPIRV-Cross is also updated to the latest, which includes fixes and support for mesh shaders, which will be used for future features.