VideoBackends:Metal: Use ios_use_simdgroup_functions with SPIRV-Cross

It defaults to trying to emulate simdgroup functions on iOS
This commit is contained in:
TellowKrinkle 2024-09-29 23:58:23 -05:00
parent c7cbac538a
commit 14feaf4ba8

View File

@ -559,6 +559,9 @@ std::optional<std::string> Metal::Util::TranslateShaderToMSL(ShaderStage stage,
options.platform = spirv_cross::CompilerMSL::Options::macOS;
#elif TARGET_OS_IOS
options.platform = spirv_cross::CompilerMSL::Options::iOS;
// Otherwise SPIRV-Cross will try to compile subgroup ops to quad ops instead
// (And crash because there's no quad_min or quad_max)
options.ios_use_simdgroup_functions = Metal::g_features.subgroup_ops;
#else
#error What platform is this?
#endif