Skip to content
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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

stuartcarnie
Copy link
Contributor

@stuartcarnie stuartcarnie commented Nov 29, 2024

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.

@bruvzg

This comment was marked as outdated.

@akien-mga

This comment was marked as outdated.

@TCROC

This comment was marked as outdated.

@stuartcarnie

This comment was marked as outdated.

@TCROC

This comment was marked as outdated.

@stuartcarnie

This comment was marked as outdated.

@stuartcarnie stuartcarnie requested a review from a team as a code owner December 15, 2024 18:28
@stuartcarnie stuartcarnie changed the title Metal: Ensure argument buffer tier 2 is specified Metal: Add support for 2017 era iOS devices Dec 15, 2024
@stuartcarnie stuartcarnie force-pushed the issue_99682 branch 3 times, most recently from edc5a55 to 0df4009 Compare December 16, 2024 13:24
@stuartcarnie stuartcarnie self-assigned this Dec 16, 2024
@TCROC
Copy link
Contributor

TCROC commented Dec 16, 2024

@stuartcarnie Does this PR also fall back to vulkan for iOS devices older than 2017?

@TCROC
Copy link
Contributor

TCROC commented Dec 16, 2024

Or is there a separate work in progress for that?

@stuartcarnie
Copy link
Contributor Author

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.

@TCROC
Copy link
Contributor

TCROC commented Dec 16, 2024

Gotcha. Does it fall back to compatibility from metal then?

@stuartcarnie
Copy link
Contributor Author

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.

@stuartcarnie
Copy link
Contributor Author

Gotcha. Does it fall back to compatibility from metal then?

Not sure – would have to ask the rendering team if that is the case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

iOS Mobile Renderer Black Screen
4 participants