summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends
diff options
context:
space:
mode:
authorOatmealDome <OatmealDome@users.noreply.github.com>2024-10-04 17:32:44 -0400
committerGitHub <noreply@github.com>2024-10-04 17:32:44 -0400
commitae14abb2faab4b96c12a70f5a9c136476523b36a (patch)
treed9c67a8c462a0ac8d16a4f7afd7b55830b4e43ed /Source/Core/VideoBackends
parente6f222c86b7396d427180475da50488f1cff6e73 (diff)
parent70f69c3213c144536ab328b514e96fd2f8bd5146 (diff)
Merge pull request #13088 from TellowKrinkle/iOSFixes
VideoBackends:Metal: Fix bbox on newer iOS devices
Diffstat (limited to 'Source/Core/VideoBackends')
-rw-r--r--Source/Core/VideoBackends/Metal/MTLUtil.mm5
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm
index b9a195b555..de073280d7 100644
--- a/Source/Core/VideoBackends/Metal/MTLUtil.mm
+++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm
@@ -309,7 +309,7 @@ void Metal::Util::PopulateBackendInfoFeatures(VideoConfig* config, id<MTLDevice>
{
// Requires SIMD-scoped reduction operations
g_features.subgroup_ops =
- [device supportsFamily:MTLGPUFamilyMac2] || [device supportsFamily:MTLGPUFamilyApple6];
+ [device supportsFamily:MTLGPUFamilyMac2] || [device supportsFamily:MTLGPUFamilyApple7];
config->backend_info.bSupportsFramebufferFetch = [device supportsFamily:MTLGPUFamilyApple1];
}
if (g_features.subgroup_ops)
@@ -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