Skip to content

Conversation

@emezeske
Copy link
Contributor

Apple's documentation says that the language version will be set to the most recent version if it's not specified, but this is flat out false in some environments. On Apple Silicon I believe it is true, but I recently ported my app to run as a universal binary, and I have an Intel Mac where in some contexts, Filament's shader compilation fails with errors like:

Compilation failed:

program_source:113:41: error: 'id' attribute requires Metal language standard macos-metal2.0 or higher
constant FrameUniforms* frameUniforms [[id(0)]];
                                        ^~~~~

My app works when running as a standalone executable, but this issue comes up when running as a plugin (dynamically loaded object) inside another application. It appears that the host application can somehow cause the Metal API to assume a different Metal version than the latest.

Setting this explicitly to the minimum version that Filament requires fixes the problem. It also seems like a good idea, because it makes the version requirement explicit -- if a new Filament version is going to use newer Metal API features, it will be clear to everyone what version of Metal is being targeted.

@z3moon z3moon requested a review from bejado November 11, 2025 17:40
… in an environment where it is not set to the latest version (contrary to what the documentation says)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants